CSS HappyLife: フッターとかの区切り『|』のサンプル4種
こういうのをCSSでやると、私は「:before擬似要素使いてぇ。(未対応の)IE6うぜー」と思ってしまうのですが、border-leftプロパチを使って何とかしてるのがうまいと思いました。
text-decorationプロパチの代わりにborder-bottomプロパチを使うのはよくありますが、こんな風にborderプロパチって意外と想定外に使えるのですね。
例を挙げると、テストケースC「borderを使って区切っているように見せる」は次のように例が挙げられています。
<ul id="sampleFooter_02">
<li class="sampleFooterHome"><a href="/">Home</a></li>
<li><a href="/">About</a></li>
<li><a href="/">Gallery</a></li>
<li><a href="/">Blog</a></li>
</ul>これに対応するCSSはコチラ。
#main #sampleFooter_02 {
text-align: center;}
#main #sampleFooter_02 li {
display: inline;
list-style-type: none;
margin-right: 6px;
padding-left: 10px;
border-left: 1px solid #999;}
#main #sampleFooter_02 li.sampleFooterHome {
border-left: 0px;
padding-left: 0px;}ただ、これについては”Home”を起点としたツリー構造になっていると考えられるので、まずは以下のようなXHTMLがより適切なのではと思います。
<ul id="sampleFooter_02">
<li><a href="/">Home</a>
<ul>
<li><a href="/">About</a></li>
<li><a href="/">Gallery</a></li>
<li><a href="/">Blog</a></li>
</ul>
</li>
</ul>これに対応するCSSはコチラ。
#main #sampleFooter_02 {
text-align: center;
}
#main #sampleFooter_02 ul {
display: inline;
padding: 0px 0px 0px 6px;
}
#main #sampleFooter_02 li{
display: inline;
list-style-type: none;
margin-right: 6px;
padding-left: 10px;
}
#main #sampleFooter_02 ul li {
border-left: 1px solid #999;
}
#main #sampleFooter_02 li.sampleFooterHome {
border-left: 0px;
padding-left: 0px;
}副作用として、最初のli要素にclass名つける手間も省けますね。
最後は定番ですが、初っぱなに愚痴ったように :before 擬似要素を使ったもの。IE7は:before擬似要素に対応していないので、使いずらいのですが便利です(テストケースBのXHTMLをベースにしてます)
#main #sampleFooter_02 {
text-align: center;
}
#main #sampleFooter_02 ul {
display: inline;
padding: 0px 0px 0px 6px;
}
#main #sampleFooter_02 li{
display: inline;
list-style-type: none;
margin-right: 6px;
}
#main #sampleFooter_02 ul li:before{
content: "|";
padding-right: 6px;
}
#main #sampleFooter_02 li.sampleFooterHome {
border-left: 0px;
padding-left: 0px;
}Popularity: 2% [?]
- キーワード:



読者のコメント
1件