2011-07-20 14 views
2

私はアイテムのリストにボーダー半径を追加したいと思いますが、各アイテムにスタイルを適用したくありません。今、私のスタイルは奇妙なリスト要素を1つの色で、偶数の要素はより暗い色を持っています。 liにborder-radiusを適用すると、各行に表示されますが、最初の項目と最後の項目にのみ適用します。これら2つのリスト項目だけに特別なIDやクラスを作成せずに、これをどうやって行うのですか?ここでリスト要素上のボーダー半径?

が私のHTMLとCSSです:

<section id="list"> 
<ul> 
     <li>Song 1</li> 
     <li>Song 2</li> 
     <li>Song 3</li> 
    </ul> 
</section> 

ul{ 
list-style:none; 
padding-left:0px; 
width:600px; 
} 

ul li:nth-child(odd){ 
background: rgba(12,147,0,0.4); 
} 

ul li:nth-child(even){ 
background: rgba(12,147,0,0.7); 
} 

li{ 
padding:15px; 
border-radius: 20px; 
} 
+0

あなたの最初の 'UL李:n番目の子(さえ)は' 'UL李することを意図したn番目-child(even):ホバリング '、私は確信しています。実際には、2つのホバールールはセレクタ 'ul li:hover'に単純に凝縮することができます。 – BoltClock

+0

ボーダー半径については、リスト全体の上端と下端を四捨五入したいだけですか? – BoltClock

+0

私は間違ったコードを書いて以来、私の投稿を編集して以来、答えの最初の部分は無関係です。しかし、はい、私はリストの上部と下部の角を丸く丸くしたい。 –

答えて

3

使用:first-child:last-child

li:first-child, li:last-child{ 
    padding:15px; 
    border-radius: 20px; 
} 
+1

私はそういう擬似クラスを適用するだけではないと思います。結果は非常に厄介です:http://jsfiddle.net/BoltClock/AQYTF – BoltClock

+1

あなたは私がそれを理解するのを助けました。次のように書かれた場合:li { パディング:15px; } li:first-child { border-top-left-radius:20px; border-top-right-radius:20px; } li:last-child { border-bottom-left-radius:20px; border-bottom-right-radius:20px; } –

+0

また@BoltClock:そのリンクに感謝します。それは非常に便利です。 –

関連する問題