CSS 和正则表达式(?)

标签 css css-selectors

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

相关文章:

css - 类 ="c1 c2"的 css 选择器是什么

javascript - 如何从单击按钮时拖入拖放区的 div 获取 javascript 的 id

html - 使用@font-family 的 Lato 字体未出现

css - 如何使用 CSS 选择器选择除 first 和 last 之外的所有子项

html - 使用多个类来设置 CSS 样式

css - 使图像在 div :hover but not if another image in that div is hovered? 上可见

php - 在较新的 PHP 版本中使用具有相同 CSS 选择器名称的 PHP 变量的问题

javascript - 动态创建 "ul"和 "li"并配置 "radio button"的错误消息

html - CSS,如何在每列的 Angular 落添加图片

CSS 动画 Div 从左到右的宽度