CSS3 セレクターのトリッキーな組み合わせをいくつか使用すると、使用されている列の数と、そのスタイルに依存するコンテナーの幅を見つけることができます。
div:first-child:last-child {
width: 100%;
}
div:first-child:nth-last-child(2), div:last-child:nth-first-child(2) {
width: 50%;
}
div:first-child:nth-last-child(3), div:first-child:nth-last-child(3) ~ div {
width: 33.33%;
}
div:first-child:nth-last-child(4), div:first-child:nth-last-child(4) ~ div {
width: 25%;
}
ご覧のとおり、可能性のある div の数ごとにルールを追加する必要がありますが、そこにある div の数を検出してそれに応じてクラスを設定する必要はもうありません。
しかし、あなたの場合、別の可能な解決策もあります。などを div と親要素で適切な方法でdisplay: table
使用できます。display: table-cell
次に、親の幅を に設定し100%
、コンテナーの幅をすべて同じ値 (例: 1%
) に設定すると、希望どおりの結果が得られます。