CSS3セレクターを使用して、最後の子以外のすべてをどのように選択しますか?
たとえば、最後の子だけを取得するにはになりますdiv:nth-last-child(1)
。
CSS3セレクターを使用して、最後の子以外のすべてをどのように選択しますか?
たとえば、最後の子だけを取得するにはになりますdiv:nth-last-child(1)
。
回答:
あなたは使用することができ否定擬似クラスの:not()
に対して:last-child
擬似クラス。CSSセレクターレベル3が導入されたため、IE8以下では機能しません。
:not(:last-child) { /* styles */ }
div
OPの例)に追加します
&:not(:last-child) { /* styles * }
は、影響を与える要素の内部で使用できます。
すべてのdivにスタイルを適用し、:last-childを使用して最後のdivを再初期化できます。
例えばCSSで:
.yourclass{
border: 1px solid blue;
}
.yourclass:last-child{
border: 0;
}
またはSCSSで:
.yourclass{
border: 1px solid rgba(255, 255, 255, 1);
&:last-child{
border: 0;
}
}
Nick Craverのソリューションは機能しますが、これを使用することもできます。
:nth-last-child(n+2) { /* Your code here */ }
CSS TricksのChris Coyierがこのための素晴らしい:nthテスターを作りました。
:not
疑似は非常に高価であると言う人もいます。そのため、可能な限り回避することをお勧めします。
IE9が登場すると、より簡単になります。ただし、多くの場合、問題を:first-childを必要とするものに切り替え、要素の反対側(IE7 +)をスタイルできます。
使用ニックcraverのソリューションselectivizrは、クロスブラウザのソリューションが可能になります(IE6 +)
最後から要素を見つけるには、
<style>
ul li:nth-last-of-type(3n){ color:#a94442} /**/
</style>
.nav-menu li:not(:last-child){
// write some style here
}
このコードはすべてにスタイルを適用する必要があります