CSS和正则表达式(?)

Som*_*neS 3 css css-selectors

我想知道有没有办法在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)

Chr*_*oph 5

您可以部分匹配属性(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)

  • 事实上,21.3%的中国用户([参考!](http://www.ie6countdown.com/))仍然使用IE6确实**并不意味着*你的*网站的许多用户正在使用IE6.在同一图表中,您可以看到大多数国家/地区的IE6使用率远低于1%.如果您不相信该图表,请查看其他来源,例如[GetClicky](http://www.getclicky.com/marketshare/global/web-browsers/internet-explorer/)或[StatCounter](http ://gs.statcounter.com/#browser_version-ww-monthly-201106-201206)(在StatCounter上IE6甚至不再出现,因为IE6的使用最少). (2认同)