2009-06-05 6 views
2

は、次のHTMLを考えます。最後のdivで、私は下の境界線を配置したいと思います。私はIE7/8をターゲットにしています。私は上の境界がうまく働いている、私は下の境界を得るのを助ける必要があります。CSS/jQueryを使って、ULの最後の李にスタイルを適用する

私が試してみた:

ul > li:last-child > div 
    { 
     border-bottom: solid 1px black; 
    } 

私も最後の型-のを使ってみました。あなたはjQueryのルートを行う必要がありますので、私はCSSのソリューションとjQueryのソリューション

+0

ありがとうパオロ.... htmlが失われたことに気付かなかった – JoshBerke

答えて

7

は、なぜあなたは<li>内部<div>を持っているのですか?それなしで完全に可能です。

とにかく、これはjQueryを使ってそれを行う方法です:

は、ULに下の枠線を適用します。

$('ul > li:last-child > div').css('border-bottom','1px solid black'); 
+0

よく質問してもらえないかもしれませんが、リスト内の色々な背景が異なるため、背景色が必要でした。私は李に背景を置いたときにはうまくいきませんでしたが、今は関係のない問題であったかもしれないと思っています – JoshBerke

+0

私はマークアップを変更する必要がないので、 。助けてくれてありがとう – JoshBerke

+1

last-childと:jqueryの最後の違いを理解してください。ドキュメントの::last-childは、親の最後の子であるすべての要素に一致します。 while:lastは1つの要素にのみマッチします。これは1つ以上の要素と一致します。 – ScottE

2

:last-childを探しています

は、IE7(IE8のわからない)では動作しません。あなたのCSSラインセレクタはjQueryのに働くだろうまでほとんど同じ方法:

$('ul > li:last > div').addClass('someclass'); 
0
$("#yourUL li:last div").css({'border-bottom':'solid 1px black'}); 
+0

これは動作していないようです.... – JoshBerke

+0

私はCSSでエラーが発生しました - 今修正されました。 –

4

は、ここでCSSの唯一の解決策です。クロスブラウザーで動作させるには、ulからパディングを削除し、余白を付けてリストをバンプします。

ul.border {border-bottom:1px solid #000;padding:0;margin-left:40px;} 
ul.border li {border-top:1px solid #000;} 

<ul class="border"> 
    <li>Some content</li> 
    <li>some more content</li> 
    <li>final content</li> 
</ul> 
5

:最後の子は、CSS3であるとは違って:第一子 CSS2で導入され、しばらく何もIEをサポートしていませんでした。私はなぜあなたは「<li>」内の「<div>」が必要かわかりませんが、あなたがそれを必要としない場合は、単に使用することができ、次のjqueryの

$('li').last().addClass('someClass'); 
1

を使用してそれを実装するための最も安全な方法であると信じて:

ul > li:last-child { 

私はそれをテストし、chrome、ie8、firefox、safariで私のために働いています。

+0

last-childはIE7で動作しませんでした....私が李の部を持っていた理由を思い出さないでください。 – JoshBerke

関連する問題