2012-06-23 11 views
15

私は各項目がaで区切られたメニューを作っています。これを実現するにはCSSで複数の擬似要素を使用することはできますか?

menu li:before { 
    content: "· "; 
} 

これは膨らみますが、最初の項目の前にもドットが生成されます。したがって、私は:first-child疑似クラスを使用したいと思います。これはできますか?

+0

Webkit atleastで動作します... – Himmators

+1

は、現代のブラウザでうまく動作します。私は一度ホバリング&クラスの後に使用しました。そして、それは目が覚めた。現代のブラウザのために – SVS

+1

ハユレイ!彼らは昔ながらのものになることはありません! – Himmators

答えて

16

あなたができることを確認 - http://jsfiddle.net/WQBxk/

p:before { 
    content: "BEFORE "; 
    display: block; 
} 

p:first-child:before { 
    content: "1ST"; 
    display: block 
} 
​ 

悪い - それは、以下のIE7で動作しません。複数の擬似セレクタのためではなく、非サポートのため:before - http://kimblim.dk/css-tests/selectors/

ちょうどIE8でテストされています。ここで

+2

複数の擬似クラスを使用できますが、複数の擬似要素を使用することはできません。これは、2つの間の区別が重要になる(そして、 "擬似セレクタ"という用語を使用すると潜在的な混乱を招く可能性があります)。 – BoltClock

+0

ねえ、私はこれに似た質問をするつもりでしたが、複数の疑似クラスを使用するこの質問を見たので、これらのコメントで私の質問をすることにしました。 [Here](https://jsfiddle.net/NathanielSantley/nLnjbf50/6/)は私のフィドルです。 「無効なメール!」と表示させたい確かに無効なメールと "有効なメール"の場合は赤で表示されます。有効なメールであれば緑色で表示されます。私が間違っていることはありますか? – NathanielSantley

1

は作業フィドルです:http://jsfiddle.net/surendraVsingh/zRrLF/

<ul> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 

</ul>​ 

CSS:あなたは擬似classes.Theyを使用することができます。もちろん、

li:before{content:'. ';} 
li:first-child:before{content:'@ ';} 
-2

は非常によくIE8とup.Youからサポートされてチェックすることができますここで使用する疑似クラスの互換性http://caniuse.com/#search=after

ドットjを使用したくない場合コンテンツに空のカンマを使用してからdisplay:blockを実行し、heightとwidthも指定してください。

menu li:before { 
    content: ""; 

    display:block; 
    width:50px; 
    height:50px; 
    background:red; 

} 
関連する問題