文章や画像を左右2つに分けてレイアウトする場合、
テーブルタグを使ってデザインすると楽だけど、なんとなく気持ち悪い。
あと個人的に、左に商品名を入れて右にその説明を入れる事が多いので、定義リスト(dl,dd,dtのリストタグ)でそれを表現すれば、タグ的に「左が定義・右がその説明」という事になるので、微々たるものだろうけどSEO的にも好ましいんじゃないだろうか、と考えた。
ということで、
今後のコピペ用に定義リストとスタイルシートでそれを実現したものを覚え書きとして残しておく事にする。
デモとコード1
まずはデモ。
一応レスポンシブデザインちっくにはなってると思われw
html
<dl class="dlist"> <dt>いちじく</dt> <dd>いちじくの色は…<br>いちじくの形は…<br>いちじくの味は…</dd> <dt>人参</dt> <dd>人参の説明</dd> <dt>山椒</dt> <dd>山椒の説明</dd> </dl>
CSS
.dlist{
width:100%;
border:1px solid #333;
border-top:0;
}
.dlist dt,.dlist dd{
padding:10px;
}
.dlist dt{
width:30%;
border-top:1px solid #333;
float:left;
}
.dlist dd{
border-top:1px solid #333;
border-left:1px solid #333;
overflow:hidden;
}
デモとコード2
そして、これをランキングっぽくするために、無理やりolリストタグっぽくしてみた。
CSS
.dlist{
width:100%;
border:1px solid #333;
border-top:0;
counter-reset:dno;
}
.dlist dt,.dlist dd{
padding:10px;
}
.dlist dt{
width:30%;
border-top:1px solid #333;
float:left;
}
.dlist dd{
border-top:1px solid #333;
border-left:1px solid #333;
overflow:hidden;
}
.dlist dt{
counter-increment: dno;
}
.dlist dt:before {
content:counter(dno);
background: url(oukan.gif);
background-position: top center;
display: inline-block;
width:24px;
text-align: center;
}
とりあえず、上記2つとも左側(dt)の縦幅が短い場合のCSSなので、右側(dd)の縦幅が短い場合はborderの上下左右を逆にしなきゃいけないので注意。

コメント