2016-05-30 4 views
1

私はこのhttps://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectorsregexを使ってクラスを選択する能力はありますか?

のように、ページ内の要素を選択するために、ワイルドカードを使用する能力があることを知っている。しかし、私はこの

div.col-*-2-* { 
 
    color: green; 
 
}
<div class="col-1-1-1">Don't select</div> 
 
<div class="col-1-2-1">Select</div> 
 
<div class="col-3-2-3">Select</div> 
 
<div class="col-4-2-1">Select</div> 
 
<div class="col-5-3-2">Don't select</div>

のようなクラス名に正規表現を使用したいです
+3

このようなクラスは使用しないでください。クラス名を構築し、解読しようとする人生の残りの部分を費やします(そして、とにかくそれを行うことはできません)。代わりに、2番目の数字が "type"を参照する場合は、例えば 'type-2'などと呼ばれる別のクラスを使用します。次に' .type-2 {color:green; } '1。 –

+0

返信ありがとうございますが、私はCSSコードを減らしたいと思います。そのために、クラス名にワイルドカードを使用する方法を検索します。 – Mostafa

+1

これは悪い習慣です。別のアプローチを見つけてください。 –

答えて

6

あなたの質問は素晴らしいです。しかし答えはNOです。

あなたが述べたようなCSSの正規表現についての使用法はありません。 @RickHitchcockを1として

[class="col-1-2-1"],[class="col-2-2-1"], 
[class="col-3-2-1"],[class="col-4-2-1"], 
[class="col-5-2-1"]{ 
     color: green; 
    } 

:あなたはこのように使用することができ、あなたのコメントを1として

[class*="col-1-2-"],[class*="col-2-2-"],[class*="col-3-2-"],[class*="col-4-2-"],[class*="col-5-2-"]{ 
 
    color: green; 
 
}
<div class="col-1-1-1">Don't select</div> 
 
<div class="col-1-2-1">Select</div> 
 
<div class="col-3-2-3">Select</div> 
 
<div class="col-4-2-1">Select</div> 
 
<div class="col-5-3-2">Don't select</div>

:あなたのソリューションのために

、あなたは次のように使用することができます答え、あなたはあなたのrequirmentを満たすためにこのように実装することができます:

[class^="col-"][class*="-2-"][class$="-1"]:not([class^="col-2"]) { 
    color: green; 
} 

脚注:@torazaburoとして

は、奇妙な構築クラス名を使用し、それらに対処するための正規表現のようなものをしようとしないでください。代わりに、複数のクラスを使用して、要素を直接指定することができます。

+0

大変お礼、ありがとうございます。でも、col-wildcard-wildcard-1のような3番目の変数を選択したいのです。 – Mostafa

+0

私の答えが更新されました。 –

+0

もう一度私の答えを更新しました。 –

関連する問題