我想知道有没有办法在 css 文件中执行类似正则表达式替换的操作?
例如:我有很多这样的选择器:
#div_23
#div_45
#div_8
假设我不能使用类来添加样式,有没有办法在 CSS 文件中做这样的事情:
#div_[0-9] {background:#000000}
最佳答案
您可以部分匹配属性 ( css2.1 doc/css3 doc ) - 但是请注意,这些规则相当慢。特别是在您的情况下,您必须使用超慢的属性选择器来匹配使用 #
时速度非常快的 id。
我更喜欢使用带连字符的 ID 和类,我发现它们更具可读性,这样您就可以使用以下匹配器:
[att|=val]
适用于您的情况:
#div-23
#div-45
#div-8
#div
都会匹配
[id|=div]{background:#000000}
但是,CSS3 提供了以下属性选择器(所有主流浏览器都支持),这将非常适合您的情况:
[att^=val]
所以你可以这样写:
[id^=div_]{background:#000000}
匹配
#div_23
#div_45
#div_8
/* and */
#div_
关于CSS 和正则表达式(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11666051/