2014-09-24 188 views
0

我正在寻找在CSS的方式来选择具有一类字符串的开头匹配任何元素开始任何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

看那upvoted回答为[该SO问题](http://stackoverflow.com/questions/13352080/match-all-class-selectors-that-begin-with)。我认为这可能适用于你的问题。 – Icemanind 2014-09-24 22:36:54

+0

@icemanind,你是对的。我用一个选择喜欢这个div [^类=“同事”],DIV [*类=“同事”] – bluncker 2014-09-24 22:47:35

回答

1

CSS

span[id^='string_'] {} 

HTML

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

这真的没有回答这个问题的。 – bluncker 2014-09-26 15:59:10

+0

答案符合的问题,问题是类格式不正确。清理类名,你会得到它的工作。 – John 2014-09-26 20:45:43

0

我不知道过这种可能性,但我也认为这是不正确的做法。更好的解决方案是将多个类添加到元素。

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

这样,你可以知道div是'col'(column?),更具体地说,它是'col-6'。