首页 >web前端 >css教程 >嵌套 CSS @media 规则在所有浏览器中一致工作吗?

嵌套 CSS @media 规则在所有浏览器中一致工作吗?

Susan Sarandon
Susan Sarandon原创
2024-12-15 12:28:11990浏览

Do Nested CSS @media Rules Work Consistently Across All Browsers?

在 CSS 中嵌套 @media 规则,重新审视

最初的问题探讨了涉及嵌套 @media 规则的 CSS 代码片段的渲染不一致各种浏览器。以下是基于当前浏览器支持状态的更新分析:

CSS3 中的嵌套 @media 规则

根据 CSS3 中的 CSS 条件规则模块,嵌套 @media规则现已完全支持。以下语法有效:

@media print {
  #navigation { display: none }
  @media (max-width: 12cm) {
    .note { float: none }
  }
}

浏览器支持

现代浏览器,包括 Firefox、Safari、Chrome、Microsoft Edge 和 Opera,现在支持嵌套 @media CSS Conditional 3 中定义的规则。Internet Explorer 不支持此功能。

原始内容问题

原始问题中的代码演示了嵌套的 @media 规则在浏览器中无法一致工作。这是由于 CSS2.1 缺乏对嵌套的支持,而 CSS2.1 是当时旧版本浏览器支持的规范。

分辨率

对于支持嵌套的浏览器不支持嵌套@media规则,解决方法是删除嵌套并编写多个@media规则分别:

@media screen and (min-width: 480px) {
    body {
        background-color: #6aa6cc;
        color: #000;
    }
}

@media screen and (min-width: 768px) {
    body {
        background-color: #000;
        color: #fff;
    }
}

带有媒体条件的@import

带有媒体条件的@import语句一致工作的原因是因为它有条件地应用样式表,而不是因为它可以在 @media 内嵌套

结论

根据 CSS Conditional 3 规范,嵌套 @media 规则现在在现代浏览器中得到广泛支持。对于不支持此功能的旧版浏览器,一个简单的解决方法是使用单独的 @media 规则。

以上是嵌套 CSS @media 规则在所有浏览器中一致工作吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn