このような複雑な CSS セレクターを使用する代わりに、古いブラウザーではサポートされていないという欠点があるため、検討すべき回避策があります。セレクターを使用せずに、望ましい結果であると私が信じるものを達成する方法の小さな例をまとめました。
以下の例では、各行に 6 つの要素があり、各要素を区切るマージンがありますが、各行の最初の要素の前または最後の要素の後にマージンはありません。
マークアップ:
<div class="foo">
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="bar">A</div>
<div class="clear"></div>
</div>
CSS:
.foo {
background-color: #ccc;
width: 180px;
margin: 0 -10px;
}
.bar {
background-color: #888;
float: left;
margin-left: 10px;
width: 20px;
}
.clear {
clear: both;
}
実際の例
それはあなたが望むものではないかもしれませんが、少なくともあなたが適応し、さらに発展するための出発点として機能します.
アップデート:
私の例で使用されている余分な要素の代わりに使用できるフロートをクリアするより良い方法があります (単純にするために使用しました)。興味がある場合は、これに関するSO の質問があります。