スマートフォンサイトでよくある2列のリンクリストで、最後が1つの場合は自動で幅100%にする方法が少し悩んだので実装方法をメモしておきます。
サンプルコード
まずは特に対応しない場合です。
HTML
<ul class="linklist"> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> </ul> <ul class="linklist"> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> <li class="linklist_item"> <a href="">リンクリスト</a> </li> </ul>
CSS
.linklist {
margin-bottom: 50px;
overflow: hidden;
border-top: #cccccc 1px solid;
border-left: #cccccc 1px solid;
}
.linklist_item {
width: 50%;
float: left;
}
.linklist_item a {
display: block;
padding: 10px;
border-bottom: #cccccc 1px solid;
border-right: #cccccc 1px solid;
}
リンクが偶数個の場合は問題ないですが、奇数個の場合に最後の1つが左寄りで右側が空いてしまいます。
特に対応しない場合のデモページ
:last-childと:nth-child(odd)を合わせて使用することで対応できました。
CSS
.linklist {
margin-bottom: 50px;
overflow: hidden;
border-top: #cccccc 1px solid;
border-left: #cccccc 1px solid;
}
.linklist_item {
width: 50%;
float: left;
}
.linklist_item:last-child:nth-child(odd) {
width: 100%;
}
.linklist_item a {
display: block;
padding: 10px;
border-bottom: #cccccc 1px solid;
border-right: #cccccc 1px solid;
}
コメントが承認されるまで時間がかかります。