css - 在选择器中定义 CSS 媒体查询

标签 css less media-queries

如果不是在媒体查询中定义 css 选择器(示例 1),而是在 css 选择器中定义媒体查询(示例 2),是否存在任何问题(性能是我的主要关注点)。

示例 1 - 媒体查询中的 css 选择器

@media (min-width: 600px) {
  .foo { ... }
  .bar { ... }
  .hello { ... }
  .world{ ... }
}

@media (min-width: 1000px) {
  .foo { ... }
  .bar { ... }
  .hello { ... }
  .world{ ... }
}

@media (min-width: 1500px) {
  .foo { ... }
  .bar { ... }
  .hello { ... }
  .world{ ... }
}

示例 2 - css 选择器中的媒体查询

.foo {
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

.bar {
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

.hello {
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

.world{
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

您可能想知道“为什么要这样做?”。 LESS 在跨内部媒体查询扩展类以及范围变量方面存在一些限制。

最佳答案

简短的回答,没有。在 CSS 选择器中定义媒体查询没有性能问题。

但是让我们深入...

如 Anselm Hannemann 的精彩文章所述 Web Performance: One or Thousands of Media Queries以您现在的方式添加媒体查询不会造成性能损失。

只要在每个选择器中使用同一组媒体查询,除了您的 CSS 文件可能有点大之外,不会对性能造成重大影响。

.foo {
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

.bar {
  @media (min-width: 600px) { ... }
  @media (min-width: 1000px) { ... }
  @media (min-width: 1500px) { ... }
}

但是,确实您使用了多少不同媒体查询。不同的是不同的 min-widthsmax-widths 等等。

关于css - 在选择器中定义 CSS 媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28871612/

相关文章:

css - Windows 上的 CSS 更少

javascript - 使用 less.js 获取更少的变量列表

android - CSS 媒体查询不适用于三星 Galaxy

html - 设备屏幕@media 查询

html - CSS页脚,留在页面底部而不是屏幕底部

jquery - 音频不一致 - 非常令人费解

css - 如何设置 bootstrap col-lg-* 类的样式?

css - 媒体查询移动菜单和普通菜单

javascript - Bootstrap Scrollspy - 如何获取滚动列表的下拉列表?

javascript - 如何在 .animate 命令期间暂时禁用悬停?