首先通过选择器或媒体查询对样式进行分组

Grouping styles by selector or media query first

假设我们有一个包含两个 类、a 和 b 的样式表,每个样式表都在某个断点处发生变化:

.a {
  //styles
}

.b {
  //styles
}

@media (max-width: 768px) {
    .a {
      //mobile styles
    }
    .b {
      //mobile styles
    }
}

这些按断点分组。是否更喜欢按选择器对它们进行分组?即:

.a {
  //styles
}

@media (max-width: 768px) {
  .a {
    //styles
  }
}

.b {
  //styles
}

@media (max-width: 768px) {
  .b {
    //styles
  }
}

第二个看起来有点丑,但可以很容易地用 scss nested media queries 纠正。我对前一种模式的担忧是,它可以鼓励开发人员编辑一部分样式,而无需查看样式更改如何影响其他断点处的对应样式。但是,对于处理仅在特定屏幕尺寸下出现的问题的开发人员而言,前者可能更有用。

很想听听关于这种分组冲突的任何想法或思想流派 - 我一直在寻找关于 Smashing Magazine 或 CSS 技巧的任何资源,但没有找到任何东西。

经过大量研究,我个人得出了这个答案

  1. 在不同的断点处保持同一选择器的样式对开发人员体验来说是好的 - 它使CSS更易于维护,以便能够在断点处看到选择器的行为每个断点都在同一个地方。
  2. 在 vanilla CSS 中,执​​行此操作的模式可能有点丑陋和笨拙 - 如果不缩小,它还可能由于重复的媒体查询而导致一些性能问题。 裁定:避免在原版中对选择器及其媒体查询对应物进行分组CSS - 这可能比它的价值更麻烦。
  3. 如果您使用 SCSS,绝对将您的媒体查询嵌套在您的选择器中。它干净且更易于维护。通过正确的编译,您可以避免重复的媒体查询,从而避免前面讨论的性能问题。 Learn more here