css - 您可以在媒体查询表达式中放入什么?

标签 css media-queries

在以下媒体查询中,样式声明中定义的样式将在通过屏幕查看且最小宽度为 480 像素宽时应用(正确?):

@media screen and (min-width: 480px) {
    #leftsidebar {width: 200px; float: left;}
    #main {margin-left:216px;}
}

您还可以在该表达式语句中添加什么?

例如,我想以 URL 片段为条件:

@media screen and (document.location.hash=="#about") {
    #leftsidebar {width: 200px; float: left;}
    #main {margin-left:216px;}
}

@media screen and (document.location.hash=="#services") {
    #leftsidebar {width: 200px; float: left;}
    #main {margin-left:216px;}
}

@media screen and (document.location.hash=="#contact") {
    #leftsidebar {width: 200px; float: left;}
    #main {margin-left:216px;}
}

最佳答案

What can you put into a media query expression?

您只能放置一个媒体功能。规范中记录了唯一可用的媒体功能(MQ3MQ4)。

For example, I would like to condition on the URL fragment:

不幸的是,这对于媒体查询来说是不可能的,尽管这听起来像是一个有趣的用例,而不必求助于将 URL 片段应用于 htmlbody 或某些其他任意包装元素。不过,鉴于 URL 片段不是设备媒体的一部分本身,而是 URL 的一部分,我不确定它与媒体查询的匹配度如何。此功能更适合在其自己的规则中(例如现已消失的 @document)或作为选择器的一部分。

我能想到的最接近的纯选择器替代方案(前置 :root:has(#about:target):root:has(#services:target) , etc to every selector) 在 Selectors 4 中,甚至不能用于 CSS,所以这真是太糟糕了。

关于css - 您可以在媒体查询表达式中放入什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45778086/

相关文章:

html - 让 child 适应 parent

css - MVC4 移动应用程序背景图片

html - 仅使用媒体查询将悬停状态应用于桌面版本(没有平板电脑和手机)

css - 媒体查询断点像素规范

javascript - 在 Chrome 中按比例调整图像大小

css - 显示不同大小的 div 框

html - 将一个元素向左对齐,一个向屏幕中心对齐,并垂直对齐两者 - CSS

css - 打印时,不应应用现有样式

google-chrome - 在 Chrome 中使用 css 媒体查询调整窗口大小时浏览器闪烁白色

html - 未应用媒体查询