2012-03-03 11 views
1

を選択し、私は、リストからタグを二を選択するために、これを使用しようとしています:第二子

.container li a:first-child + a { ... } 

動作するようには思えません。理想的に純粋なCSSの方法がありますか(a:nth-child(2)以外)、どこに間違っているのか誰にでも見られますか?

+0

'+'演算子は2つのだけの隣接する要素のために働きます、それらの間に何もすることはできません – knittl

+3

いいえ、あなたのHTMLを見るまであなたが間違っていた場所を見ることはできません。 – BoltClock

答えて

5

はそれらが:first-childと隣接兄弟セレクタを無効にすることができるので、あなたの<li>は、実際には2つの<a>その最初の2人の子供としての要素、およびそれらの周りではない、いくつかの他の要素を持っていることを確認してください。あなただけに関係なく、あなたの<li>にある要素の他のどのような種類の二<a>要素を選択したい場合は

、このセレクタを使用します。

.container li a:nth-of-type(2) 

をする場合、あなたの<li>意志だけ正確に2つの<a>の要素を持っている、あなた

.container li a ~ a 

それとも、を見つけることが意味した:一般的な兄弟のボーナスIE7/IE8のサポートのために~をコンビネータ使用することができます(リストはおそらく<ul>または<ol>を参照している可能性があるため)<li>の2番目の<a>要素ではなく、2番目の<li>の要素が存在しますか?もしそうなら、あなたはこれらのセレクタのいずれかをお勧めします:ちょうど使用

.container li:first-child + li a 
.container li:nth-child(2) a 
+2

または、あなたは '.container li a〜a〜a 'を使って次の要素のスタイルを逆にすることができます。 – BoltClock

+1

「a〜a」に+1して「a〜a〜a」についてコメントします – FelipeAls

+0

@Felipe Alsacreations:私は[この質問にタグを付ける]あなたを覚えているようです。(http://stackoverflow.com/revisions/3225891/3) [CSSセレクタ]を使って、いつか戻ってきます...私はCSSセレクタにかなり敬意を表していますので、私はあなたに感謝します。そして、私は最終的に私がかなり不明瞭と考えるもののために金のバッジを得るつもりだと思いますタグ今夜。だから、ありがとう! :) – BoltClock

3

:nth-of-type

.container li a:nth-of-type(2) { 
    /* ... */ 
} 

ここでの問題は、最初の<a>は最初の子ではない、または第二<a>であることをおそらくそれに隣接していない。それにかかわらず、:nth-of-typeは正しい方法です。


あなたは<li>につき1 <a>を持っている場合、あなたはおそらく.container li:nth-of-type(2) aを意味します。

4

私はあなたのアンカーは、リスト項目の中にされている疑いがある:

<ul class="container"> 
    <li><a href="">...</a></li> 
    <li><a href="">...</a></li> 
    <li><a href="">...</a></li> 
</ul> 

その場合は、あなたがにスタイルを書き換える必要があります:

.container li:first-child + li a { ... } 
+1

これはOPが常に質問でHTMLコードを提供する必要がある理由です – BoltClock