在css中使用正则表达式?

Ank*_*kit 107 css regex

我有一个带有div的html页面,其ids1,s2等形式.

<div id="sections">
   <div id="s1">...</div>
   <div id="s2">...</div>
   ...
</div>
Run Code Online (Sandbox Code Playgroud)

我想将css属性应用于这些section/div的子集(取决于id).但是,每次添加div时,我都必须像这样单独添加css.

//css
#s1{
...
}
Run Code Online (Sandbox Code Playgroud)

有什么像css中的正则表达式,我可以用来将样式应用于一组div.

ste*_*eax 169

您可以管理选择那些没有任何形式的正则表达式的元素,如前面的答案所示,但要直接回答问题,是的,您可以在选择器中使用正则表达式:

#sections div[id^='s'] {
    color: red;  
}
Run Code Online (Sandbox Code Playgroud)

这表示在#sections div中选择任何div元素,其ID以字母's'开头.

请看这里的小提琴.

这里有W3 CSS选择器文档.

  • 从这里: https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors ,它并不是真正的正则表达式,而是 id 开头的简单匹配。 (4认同)
  • 你让我今天很开心。我希望在搜寻器中包括一些高级CSS选择器,以使其可用户配置。^ =就像沙漠中的水一样。 (2认同)

uru*_*ong 29

作为这个答案的补充,您可以使用它$来获得最终匹配并*获得中间匹配.

匹配所有.col-md,.left-col,.col等.

[class*="col"]
Run Code Online (Sandbox Code Playgroud)

匹配所有.col-md,.col-sm-6等.

[class^="col-"]
Run Code Online (Sandbox Code Playgroud)

匹配所有.left-col,.right-col等.

[class$="-col"]
Run Code Online (Sandbox Code Playgroud)


ani*_*son 23

ID用于唯一标识元素.应用于它的任何样式也应该对该元素是唯一的.如果你想要应用于许多元素的样式,你应该向它们添加一个类,而不是依赖于ID选择器......

<div id="sections">
   <div id="s1" class="sec">...</div>
   <div id="s2" class="sec">...</div>
   ...
</div>
Run Code Online (Sandbox Code Playgroud)

.sec {
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者在您的特定情况下,您可以选择父容器中的所有分区,如果其中没有其他内容,则如下所示:

#sections > div {
    ...
}
Run Code Online (Sandbox Code Playgroud)


Tim*_*ora 9

首先,有许多方法可以匹配HTML文档中的项目.应谨慎使用ID匹配.

首先从此参考开始,查看一些可用的选择器/模式,您可以使用这些选择器/模式将样式规则应用于元素.

http://www.w3.org/TR/selectors/

大多数这些选择器将与IE 9和所有其他现代浏览器一起使用; 重要的选择器在IE 8中工作(结果将因IE 7及更低版本而异).

其次,除非您确实需要通过ID明确命名项目,否则请考虑使用层级选择器.这使代码更清晰.

匹配所有div直接后代的s #main.

#main > div
Run Code Online (Sandbox Code Playgroud)

匹配所有div直接或间接后代的#main.

#main div
Run Code Online (Sandbox Code Playgroud)

匹配第div一个直接后代#sections.

#main > div:first-child
Run Code Online (Sandbox Code Playgroud)

将a div与特定属性匹配.

#main > div[foo="bar"]
Run Code Online (Sandbox Code Playgroud)


Aur*_*osa 5

您可以为每个 DIV 添加一个类,并以这种方式将规则应用于该类:

HTML:

<div class="myclass" id="s1">...</div>
<div class="myclass" id="s2">...</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

//css
.myclass
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

  • 同样作为一般规则,我尽量不使用 ID 选择器来设计样式。它调整了特异性,因此它们更难被覆盖,在我的经验中,这通常会带来更多伤害。我使用 id 的...只是不用于应用 css。 (3认同)