如何在没有冗余 SCSS 的情况下对具有相同 class 的元素进行分组
how to group elements with same class without redundancy SCSS
我有这个样式,我想把它分组,这样多余的字符集就会消失。
[class*='col'] h1,
[class*='col'] h2,
[class*='col'] h3,
[class*='col'] h4,
[class*='col'] h5,
[class*='col'] h6,
[class*='col'] .h1,
[class*='col'] .h2,
[class*='col'] .h3,
[class*='col'] .h4,
[class*='col'] .h5,
[class*='col'] .h6 {
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
也许你可以用 :is()
把它写得更干净 CSS pseudo-class 它可以用一个更干净的选择器来完成。
例如,您可以通过以下方式定位某个容器元素内的所有标题
[class*='col'] :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6)
{
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
大多数浏览器现在都支持 :is(),但请记住,大多数 2020 年之前制造的浏览器不支持没有前缀的它,因此如果您需要支持旧版浏览器,请谨慎使用它。
如果您想要 SASS 解决方案,您可以使用此 mixin
@mixin headings {
[class*='col'] h1,
[class*='col'] h2,
[class*='col'] h3,
[class*='col'] h4,
[class*='col'] h5,
[class*='col'] h6,
[class*='col'] .h1,
[class*='col'] .h2,
[class*='col'] .h3,
[class*='col'] .h4,
[class*='col'] .h5,
[class*='col'] .h6 {
@content;
}
}
像这样使用它:
@include headings {
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
我有这个样式,我想把它分组,这样多余的字符集就会消失。
[class*='col'] h1,
[class*='col'] h2,
[class*='col'] h3,
[class*='col'] h4,
[class*='col'] h5,
[class*='col'] h6,
[class*='col'] .h1,
[class*='col'] .h2,
[class*='col'] .h3,
[class*='col'] .h4,
[class*='col'] .h5,
[class*='col'] .h6 {
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
也许你可以用 :is()
把它写得更干净 CSS pseudo-class 它可以用一个更干净的选择器来完成。
例如,您可以通过以下方式定位某个容器元素内的所有标题
[class*='col'] :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6)
{
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
大多数浏览器现在都支持 :is(),但请记住,大多数 2020 年之前制造的浏览器不支持没有前缀的它,因此如果您需要支持旧版浏览器,请谨慎使用它。
如果您想要 SASS 解决方案,您可以使用此 mixin
@mixin headings {
[class*='col'] h1,
[class*='col'] h2,
[class*='col'] h3,
[class*='col'] h4,
[class*='col'] h5,
[class*='col'] h6,
[class*='col'] .h1,
[class*='col'] .h2,
[class*='col'] .h3,
[class*='col'] .h4,
[class*='col'] .h5,
[class*='col'] .h6 {
@content;
}
}
像这样使用它:
@include headings {
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}