2014-09-24 4 views
0

Я ищу способ в css для выбора любого элемента с классом, который соответствует началу строки. Я знаю правила [class * = "string"] и [class^= "string"], но это не совсем то, что я ищу.^= соответствует только первому классу, поэтому любые предыдущие классы его сломают. И * = ищет любую часть строки, а не только начало.Сопоставьте любой класс css, начинающийся со строки

http://codepen.io/anon/pen/HiJjL

HTML: 

<div class="asdf col-6">match</div> 
<div class="col-6">match</div> 
<div class="x-col-6">dont match</div> 

CSS: 

[class *= "col-"] { 
    color:red; 
} 
[class ^= "col-"] { 
    font-weight:bold; 
} 

Перо иллюстрирует проблему. Первый селектор слишком широк, второй слишком узкий. Конечно, я могу обойти это с помощью * = и быть осторожным с другими именами классов, но мне было любопытно, если это возможно.

+1

Посмотрите на приведенный ответ на [этот вопрос SO] (http://stackoverflow.com/questions/13352080/match-all-class-selectors-that-begin-with). Я думаю, это может относиться к вашему вопросу. – Icemanind

+0

@icemanind, вы были правы. Я использовал селектор, подобный этому div [class^= "col-"], div [class * = "col-"] – bluncker

ответ

1

CSS

span[id^='string_'] {} 

HTML

<span id="string_example">string example</span> 
+0

Это действительно не отвечает на вопрос вообще. – bluncker

+0

Ответ подходит к вопросу, проблема в том, что классы не хорошо отформатированы. Очистите имена классов, и вы получите его работу. – John

0

Я не знаю, у такой возможности, но я также думаю, что это не правильный путь. Лучшим решением было бы добавить к элементу несколько классов.

<div class="asdf col col-6">match</div> 
<div class="col col-6">match</div> 
<div class="x-col-6">dont match</div> 

Таким образом, вы можете сказать, что это ДИВ является «цв» (столбец?) И, более конкретно, это «Col-6».

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