おそらく自分自身の質問に答えているのでしょうが、非常に興味があります。
CSS では親の個々の子を選択できることは知っていますが、親に一定数の子がある場合、コンテナーの子のスタイルを設定するサポートはありますか。
例えば
container:children(8) .child {
//style the children this way if there are 8 children
}
奇妙に聞こえるかもしれませんが、マネージャーに調べるように言われ、自分では何も見つからなかったので、検索を終了する前に SO に頼ることにしました。
ベストアンサー1
説明:
元の質問の以前の表現が原因で、数人の SO ユーザーが、この回答は誤解を招く可能性があると懸念を表明しました。CSS3 では、親ノードの子の数に基づいてスタイルを適用することはできません。ただし、子ノードの兄弟の数に基づいてスタイルを適用することはできます。
元の回答:
驚くべきことに、これは純粋に CSS3 で可能になりました。
/* one item */
li:first-child:nth-last-child(1) {
/* -or- li:only-child { */
width: 100%;
}
/* two items */
li:first-child:nth-last-child(2),
li:first-child:nth-last-child(2) ~ li {
width: 50%;
}
/* three items */
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
width: 33.3333%;
}
/* four items */
li:first-child:nth-last-child(4),
li:first-child:nth-last-child(4) ~ li {
width: 25%;
}
コツは、最後から n 番目の子でもある最初の子を選択することです。これにより、兄弟の数に基づいて効果的に選択が行われます。
この技術の功績は André Luís (発見者) と Lea Verou (改良者) に帰属します。
CSS3 って本当に好きじゃないですか?
CodePenの例:
出典: