Sass-类名通配符

ass CSS

小小小宇宙

2020-03-23

是否可以使用通配符类名?

例如,我有几个div的.div-one.div-two.div-three等有我的方式,使用下面的SASS选择所有与该名称的div或者是它最好只是为了给一个类,每个封面上的所有和独特的课程?

.div-*{}

第3102篇《Sass-类名通配符》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
Stafan 2020.03.23

从理论上讲,公认的答案是很酷的,但是到目前为止,最新的Chrome是:

对于CSS规则:

[class^="div-"]

标记

class="div-something other-class"

匹配,而:

class="other-class div-something"

不匹配

¯_(ツ)_ /¯

小宇宙 2020.03.23

一点,但我注意到,在将此规则嵌套在Sass中时,需要将“&”号放在右方括号中。

这不起作用:

.zoomed {
  & [class*=" aspect-"] {
    margin-bottom: $spacer * 4.0;
  }
}

但这确实是:

.zoomed {
  &[class*=" aspect-"] {
    margin-bottom: $spacer * 4.0;
  }
}

注意与号的位置。

泡芙 2020.03.23

在CSS中,您可以将属性选择器与结合使用^

div[class^="div-"]==>选择所有“ div-”开头divclass属性值

例:

div {
  height: 20px;
  margin-bottom: 5px;
  border: 1px solid black;
}

div[class^="div-"] {
  border-color: red;
}
<div class="div-one"></div>
<div class="div-two"></div>
<div class="other"></div>
<div class="div-three"></div>

更新资料

正如@FreePender所说,如果CSS类不是该属性值中的那个,则它将无法正常工作。另一个解决方案是将属性选择器与结合使用*

div[class*="div-"]==>选择所有divclass属性值包含“div-”

这样,它也可以匹配一个名为CSS的类nodiv-one,但是这种情况通常不会发生。

div {
  height: 20px;
  margin-bottom: 5px;
  border: 1px solid black;
}

div[class*="div-"] {
  border-color: red;
}
<div class="div-one"></div>
<div class="div-two"></div>
<div class="other"></div>
<div class="myclass div-three"></div>

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android