首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态媒体查询

动态媒体查询
EN

Stack Overflow用户
提问于 2013-04-18 18:50:58
回答 3查看 7.2K关注 0票数 7

我目前正在使用js/jq调整大小事件,当水平菜单(宽度可变)变得对屏幕太大时,将css规则应用于该菜单。但是,在应用新规则之前,菜单会立即换行。

理想情况下,我希望测量菜单宽度并更改媒体查询的断点!

代码语言:javascript
复制
@media screen and (min-width: THIS-VALUE){
    New Rules
}

这个是可能的吗??

提前谢谢。

Chris GW Green

EN

回答 3

Stack Overflow用户

发布于 2013-04-18 20:50:29

您可以创建通过测量菜单宽度(使用js/jQuery)以编程方式激活的媒体查询规则:

代码语言:javascript
复制
  document.querySelector('style').textContent +=
     "@media screen and (min-width:400px) { div { color: red; }}"

然而,媒体查询并不是为了在页面或屏幕中元素的宽度变化时激活的-更多的是通过更改视口/窗口本身和其他因素来激活的。(完整的名单可以在here上找到)

你还没有发布你的菜单代码,所以很难理解你正在经历的“环绕”,但如果你的水平菜单正在“离开屏幕”,那么你最好将菜单设置为视口的百分比(%)宽度,并使用一系列媒体查询来重新绘制菜单,并在某些屏幕宽度处更改/删除子元素等

票数 4
EN

Stack Overflow用户

发布于 2013-04-18 18:55:55

尝试meta标签,而不是媒体查询。在meta标签中,您还可以使用min-width属性。

就像meta是一个html标签一样,你可以随心所欲地改变它的值:

代码语言:javascript
复制
var element = document.getElementByTagName('meta')[0];

element.setAttribute('content','Value');

Example use of meta tag

票数 0
EN

Stack Overflow用户

发布于 2021-08-15 04:52:20

您可以使用matchMedia来实现这一点。

我给出了一个使用示例in this answer

我假设你只需要测量菜单宽度一次。这个解决方案应该可以很容易地适应这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16080961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档