最初の2つと最後の2つを除く要素のすべての子をどのように選択するかは非常に興味があります。CSSは最初の2つと最後の2つを除くすべての子要素を選択します
I've a methodですが、それは厄介で判読不能です。 8つの疑似セレクタを必要としないはるかに明確な方法が必要です。
:not(:nth-child(1)):not(:nth-child(2)):not(:nth-last-child(1)):not(:nth-last-child(2)) {
background: purple;
}
ええ、それはかなり恐ろしいです。これは文字通り、すべての要素を選択します。第1または第2の最初または最後ではありません。疑似セレクタを積み重ねるのではなく、準変数として2
を使用するメソッドが必要です。
I thought of another one(まだ汚い):
:not(:nth-child(-1n+2)):not(:nth-last-child(-1n+2)) {
background: purple;
}
私の場合、(n + 2)は最初の要素だけを選択します。しかし(n + 3)はそれを修正する。 –
ええ、「n + 2」には2番目のものが含まれます。ちょうど1つ: 'ではない'と2と3、それは奇妙に見える=) – Rudie
OK、私は質問の最初と最後の2つの*部分を誤解しました。私の答えとフィドルを更新しました。 – MarcinJuraszek