2016-11-21 56 views
1

我的类名称是动态生成的,我试图使用一种preg_match将样式应用于它们。是这样的可能吗?使用*匹配将规则应用于多个类

<style> 
    .*_class { 
     border: 1px solid red; 
    } 
</style> 

<div id="a_class">a</div> 
<div id="b_class">b</div> 
<div id="c_class">c</div> 

回答

2

您需要为此使用属性选择器。

[id$="_class"] { 

} 

上面说,与id_class结束什么应该被选中。有关更多信息,请参见attribute selectors at MDN

+0

只是注意,属性选择比原生类选择效率要低得多。 –

+0

根据提供的标记,选择器实际上应该将属性'id'而不是'class'作为目标。 '[id $ =“_ class”]' – Ricky

+1

@Ricky好吧,它应该是'id $ ='LoL。 –

0

也许重新考虑你的类是如何生成的。虽然Praveen's answer将工作并直接回答问题,但属性选择器可能效率低下。您可能需要考虑利用每个元素可以拥有多个类的事实。例如。

.class {color:#F00;} 
 
.a.class {font-weight:bold; font-size:2em;}
<div class="a class">a</div> 
 
<div class="b class">b</div> 
 
<div class="c class">c</div>

+0

不幸的是我不能控制类名。我只能改变CSS。 –

+1

选择器效率低下只是一个制约因素,如果您要在复杂性和页面加载方面建立Amazon或Facebook规模的网站。网络流量的前5%网站可能真的受益于这种担忧。 – TylerH