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