2013-06-05 11 views
7

ですが、私はCSSセレクタは、すべてのケースを扱うことができるかどうかを確認したいので、私はちょうどicon-をごちゃ混ぜicon- *複数のクラス値がある場合は、cssワイルドカードクラスセレクタを使用できますか?

<a class="icon-a icon-large scrollTo" href="#a"></a> 
<a class="icon-large icon-b scrollTo" href="#b"></a> 
<a class="icon-large scrollTo icon-c" href="#c"></a> 

含むクラスを持つすべてのアンカーを選択することができますCSSセレクタ。

クラスicon- *を含むすべてのアンカーのスタイルを変更したいと考えています。このコードは機能していないようです。

a [class^="icon-"], a [class*=" icon-"] { 
    text-decoration: none; 
    color: #1BA1E2; 
} 

Javascriptは私の唯一のオプションですか?あなたは間違った選択を使用していた

+0

'color:#PINK;'# 'が多すぎますか? – bwoebi

+1

スペースを含むクラスを作成することはできません。したがって、2番目のセレクタは意味をなさないものです。 – Barmar

+2

@Barmar:ただし、スペースを含む値を持つclass *属性*を持つことができます。これはマークアップ内にあります。スペースはクラス名を区切るために使用されます。 – BoltClock

答えて

20

からa [class]descendantとしてclass持つすべてのアンカーです。

基本的には、で始まるまたはそれを含む<a>に由来する要素が対象となります。 a[class] - あなたが欲しい

が始まるか、そのクラス自身含むすべてのアンカーを選択することです:

a[class^="icon-"], a[class*=" icon-"] { 
    text-decoration: none; 
    color: #1BA1E2; 
} 

jsFiddle example here.

+1

私は完全なCSSのnoobです。ありがとう! 2番目のセレクタは実際に必要ですか?私はこのコードをfont-awesomeからコピーして、何かを無効にしようとしてから何が行われているのか正確にはわかりません。 – atp03

+1

@ user1133619:最初のセレクタはより適切なセレクタであり、両方ともこのコンテキストで同じことをします。 – Adrift

5

はい - しかし、あなたのタイプセレクタの間にスペースを削除する最初の必要性属性セレクタおよび属性値のスペースは、

a[class^="icon-"], a[class*="icon-"] { 
text-decoration: none; 
color: pink; /* get rid of the # */ 
} 

http://jsfiddle.net/c8YdD/1/

+1

そして今質問はそれが明らかに*ではないピンクの "#1BA1E2"に変わったのですか? – BoltClock

+1

心配しない人、私はそれがあなたではないことを知っています! +1 – lifetimes

関連する問題