3

我想知道有没有办法在 css 文件中做类似正则表达式替换的事情?

例如:我有很多这样的选择器:

 #div_23
 #div_45
 #div_8

假设我不能使用类来添加样式,有没有办法在 CSS 文件中做这样的事情:

 #div_[0-9] {background:#000000}
4

2 回答 2

5

您可以部分匹配属性(css2.1 doc / css3 doc) - 但请注意,这些规则相当慢。特别是在您的情况下,您必须使用超慢属性选择器来匹配在使用#.

我更喜欢使用带连字符的 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_
于 2012-07-26T09:23:26.853 回答
4

试试[id^=div_]这个应该有帮助

于 2012-07-26T09:15:57.887 回答