CSSの最後の子(-1)


161

リストの最後の子を選択できるcssセレクターを探しています。

<ul>
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li> <!-- select the pre last item dynamically no matter how long this list is -->
     <li>6</li>
</ul>

静的メソッド:

ul li:nth-child(5)

動的な方法:

ul li:last-child(-1)

もちろんこれは検証しません。また、nth-last-childは動的な方法を提供していないようです。JavaScriptにフォールバックできますが、見落としたcss方法があるかどうか疑問に思っています


11
通常「セカンドラスト」と呼ばれます。また、「最後から2番目」という派手な言葉もあります。
BoltClock

2
@BoltClock「最後から2番目」という言葉が大好きです。さあ、Facebookのぎこちないアップデートで使用します。
Andrew Barber


2
最後から2番目に言及した皆さんに感謝します。これは、「css最後から2番目」でGoogleに1位を示しました。
chakeda

回答:


303

あなたは、することができます使用します:nth-last-child()。実際、他:nth-last-of-type()に何を使えばいいのか分かりません。"動的"の意味がわかりませんが、リストに子が追加されたときに、スタイルが新しい最後の2番目の子に適用されるかどうかを意味する場合は、そうです。インタラクティブなフィドル。

ul li:nth-last-child(2)

うまくいきました!コードインタープリター(jsfiddle)はそれを検証しませんでした。バグを彼らの側で推測してください!ありがとう
Hedde van der Heide

4
@デビッド・アレン:私は彼がすでに使用しようとしているならば、彼は気には思わない:nth-child(5):last-child。このようなコメントは、質問に回答するか、自分で保管する必要があります。
BoltClock

1
彼はサポートなしの問題について知らないかもしれません。強調表示しているだけです。jQueryを使用して回答を提供しましたが、JavaScriptが無効になっているユーザーには機能しないと喜んで言います。しかし、JSを無効にするよりも多くの人々がIE7 / 8を使用しています
David Allen

1
@ David、selectivrzまたはmodernizrプラグインでこの問題を修正できると思います。ドキュメントを表示する必要があります
Hedde van der Heide

@ArgsKwargs素晴らしいコメントselectivizrについて聞いたことがない。nth-last-childをサポートしているかどうかをお知らせください
David Allen

1

PHPでその要素にクラスのラベルを付けることができない限り、jQueryを使用することをお勧めします。

jQuery(document).ready(function () {
  $count =  jQuery("ul li").size() - 1;
  alert($count);
  jQuery("ul li:nth-child("+$count+")").css("color","red");
});

6
Johnが誰もそれを使用していないと思っている:nth-last-child()からいってjQueryが実装されないのは実にうんざりしています。
BoltClock

私はむしろpythonでラベル付けしたい;-) ontopic:まあcssはこのようにうまく見えます、おそらくjsfiddleも誰もそれを使用していないと思います:-)
Hedde van der Heide

@ArgsKwargs:なぜそれがjsFiddleで機能しないのか不思議です。それを解釈するのはブラウザ次第です。独自のCSSエンジンはありません。
BoltClock

@BoltClockはそれが機能することを誤解しないでください。コードヘルパー(カラービジュアライゼーション)は閉じられていないものを示すだけです(そのため、私も試していませんでした)
Hedde van der Heide

閉じられていないコードはないと思います。しかし、私は「色の可視化」についてあなたが何を意味しているのかを知っています
デビッド・アレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.