2016-11-21 2 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' not' 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

Смежные вопросы