这实际上取决于具体情况,即您是否有样式依赖项。
例如,#box
如果应用了边框半径,您需要一些填充,如果浏览器不支持它,您不需要任何填充。在这种情况下,您可以这样做:
.border-radius #box {
border-radius: 5px;
padding: 5px;
}
(忽略缺少供应商前缀。)
但是,例如,如果你有一个微妙的渐变,它只是增强了外观并且没有任何依赖它,你可以这样做:
#box {
background: white linear-gradient(...);
}
支持它的浏览器会显示它,不支持它的浏览器只会显示退化的白色外观。
另一个例子,你想要一个不同的边框颜色,这取决于 box-shadow 是否成功应用。如果支持 box-shadow,您可以设置 box-shadowless 样式并覆盖它:
#box {
border-color: gray;
}
.box-shadow #box {
box-shadow: black 0 0 5px;
border-color: white;
}
你可以反过来做,但在我看来,先给出退化的风格,然后增强它更有意义。您会看到,在此示例中无需使用.no-box-shadow
,因为无论如何我都覆盖了边框颜色。此外,如果您发现带有灰色边框的 box-shadow 在视觉上可以接受,您可以将 box-shadow 样式放在#box
(而不是.box-shadow #box
) 下。
总而言之,没有必要为了“一致”而将代码与类混杂在一起,您只需要考虑样式的语义即可。此外,如果您的样式过于依赖 JavaScript 生成的类,想象一下关闭 JavaScript 后您的页面会是什么样子。