2012-11-12 8 views
133

CSS3のセレクタに「ワイルドカード」を使用することはできますか?すべてのクラスセレクタにマッチするか?

例えば、

<div class="myclass-one"></div> 
<div class="myclass-two></div> 
<div class="myclass-three"></div> 

...そして魔法...一度に赤にすべてのdivの上

可能
.myclass* { color: #f00; } 

を設定しますか?

答えて

273

次は、トリックを行う必要があります。

div[class^='myclass'], div[class*=' myclass']{ 
    color: #F00; 
} 

編集:追加されましたワイルドカード(*)デビッド

+26

myclass' 'で始まるクラスは' class'属性内に含まれる*最初の*クラス名でもある場合のみ。 ['div [class * = myclass] {/ * ... stuff ... * /}'](http://www.w3.org/TR/selectors/#selectors)を試してみてください。 –

+19

さらに優れています。衝突を防ぐためにdiv {class * = 'myclass'}、div [class^= 'myclass'] ' –

+1

が合意しました。私はホワイトスペースの前に書いたバージョンを自分のコメントに編集しようとしていました。あなたはすでにその詳細を追加しているのを見た! =) –

11

により示唆されるようにそれはしかし、私は示唆し、質問に直接答えではないのですがほとんどの場合、各要素に複数のクラスを設定するだけです。

<div class="myclass one"></div> 
<div class="myclass two></div> 
<div class="myclass three"></div> 

この方法で、すべてのmyclass要素のルールを設定し、次にonetwo、およびthreeのより具体的なルールを設定できます。同じスタイルを適用するには、共有クラスにCSSの呼び出しに続いて

<div class="myclass myclass-one"></div> 
<div class="myclass myclass-two"></div> 
<div class="myclass myclass-three"></div> 

を::

.myclass { color: #f00; } 

.two { font-weight: bold; } 

etc. 
+1

接頭辞を探すのではなく複数のクラスを使うことで、特異度とセレクターのスピードでいくつかの戦いをやめます。属性セレクタは遅いですが、実際にはクラスに比べて非常に特殊です。 +1 – Rowan

+0

私はそれを手に入れます。私はWordPressを使用しています。これは、 'slug'に基づいて同様の名前のクラスを割り当てます。したがって、関連する各ページにクラスを追加しようとするよりも、属性解決策が簡単になります。 – jchwebdev

+0

何か?この回答には3つのアップフォートがあり、同じ方法を含む[正確に同じ時刻に追加された](http://stackoverflow.com/a/13352135/253468)には-4があります。 – TWiStErRob

3

あなたは簡単そう... div要素に複数のクラスを追加することができます

.myclass {...} 

そして、次のような他のクラスを引き続き使用できます:

.myclass-three {...} 

それとも、このようなCSSでより具体的にしたい場合:

.myclass.myclass-three {...} 
+0

私はこの答えが*それ*悪いとは思わない。私は別のクラスをmyclassに編集するだけです... class = "myclass myclass-one" – TMB

+0

これは上記のようになりました – TMB

+0

私は上記のスレッドを見ませんでした... – TMB

関連する問題