次のコードを記述して、最初と最後の列にそれぞれ左マージンと右マージンがない3列のレイアウトを作成しました(定義上、3つの列は動的に生成されるのとまったく同じクラスになります-最後を参照してください段落):
#content {
background-color:#edeff4;
margin:0 auto 30px auto;
padding:0 30px 30px 30px;
width:900px;
}
.column {
float:left;
margin:0 20px;
}
#content .column:nth-child(1) {
margin-left:0;
}
#content .column:nth-child(3) {
margin-right:0;
}
.width_33 {
width:273px;
}
HMTL:
<div id="content">
<cfoutput query="IndexView" group="pName"> <!--loop one to create the columns -->
<div class="column width_33"> <!-- Columns -->
<h3>#IndexView.pName#</h3>
<ul>
<!---LOOP two--->
<cfoutput>
<li>
#IndexView.titles#
</li>
</cfoutput>
</div>
</cfoutput>
</div>
問題は、このコードがInternet Explorer7および8で機能しないことです。IE(この場合)で使用できる唯一の疑似クラスは「最初の子」ですが、これによって3番目と最後の列の右マージンが削除されるわけではありません。このコードをIE7/8で動作させる方法を知っている人はいますか?
重要な注意点:3つの列はクエリループを介して動的に生成されるため、各列のクラス属性は同じになります。