CSS Selector Generator | CSS のセレクタ一覧を一発で自動生成!

09

06月2008年

[使える CSS テクニック] CSS で DL を float して表組みのように表現する

nagai 17:43 PM

  • はてなブックマークに登録
  • livedoorクリップに登録
  • Yahoo!ブックマークに登録
  • deliciousに追加

使える CSS テクニック第 5 回、「CSS で DL を float して表組みのように表現する」です。

何かと便利な定義リストですが、今回は dt と dd を並列に並べて、テーブルのように表示する方法をご紹介します。
よく使われる定番の方法で、難しいものではないですが、少しだけクセがあります。

ベーシックなテーブル

まずは下のような、会社紹介などに使われる汎用的なテーブルです。
基本的に dt に float を設定して、dd は dt に乗っかる形になります。

[サンプル]

会社名
株式会社シーブレイン
住所
横浜市中区尾上町 5-77-2 馬車道ウエストビル 8F
電話番号
045-650-6210

[HTML]

<dl>
<dt>会社名</dt>
<dd>株式会社シーブレイン</dd>
<dt>住所</dt>
<dd>横浜市中区尾上町 5-77-2 馬車道ウエストビル 8F</dd>
<dt>電話番号</dt>
<dd>045-650-6210</dd>
</dl>

[CSS]

dl {
	margin: 0 0 15px;
	padding: 0 10px 10px;
	border: 7px #EEEEEE solid;
}
dl dt {
	float: left;
	width: 7em;
	padding: 10px 0;
	font-weight: bold;
	text-indent: 1em;
	line-height: 150%;
}
dl dd {
	padding: 10px 0 10px 7em;
	line-height: 150%;
	border-bottom: 1px #CCCCCC solid;
}
  • ポイント
  1. dt には float:left; を指定し、dd には padding-left に dt の width以上の値を設定します。
  2. dt には width を指定する必要があるため、padding で左右余白の調節できません。
    text-indentでインデントを調整します。
[ IE での注意点 ]
hasLayout が true になっている場合、dd の margin、padding、また background が正しく表示できません。
zoom:normal; などを設定して hasLayout の値を false にしておく必要があります。

ページの先頭へ

グラフィカルなテーブル

さらに細かく指定すれば、グラフィカルな表現も可能です。

[サンプル]

ミスター・ブルー
エディ・バンカー
ミスター・オレンジ
ティム・ロス
ミスター・ピンク
スティーヴ・ブシェミー
ミスター・ブラウン
クエンティン・タランティーノ

[HTML]

<dl>
<dt id="blue">ミスター・ブルー</dt>
<dd>エディ・バンカー</dd> <dt id="orange">ミスター・オレンジ</dt>
<dd>ティム・ロス</dd> <dt id="pink">ミスター・ピンク</dt>
<dd>スティーヴ・ブシェミー</dd>
<dt id="brown">ミスター・ブラウン</dt>
<dd>クエンティン・タランティーノ</dd>
</dl>

[CSS]

dl {
	padding: 20px;
	background: url(img/bg_dl.gif) no-repeat 0 0;
}
dl dt {
	float: left;
	width: 140px;
	margin-bottom: 10px;
	padding: 10px 0;
	font-weight: bold;
	color: #FFFFFF;
	text-indent: 1em;
	line-height: 150%;
	background-position: 0 0;
	background-repeat: no-repeat;
}
dl dd {
	margin-left: 140px;
	margin-bottom: 10px;
	font-weight: bold;
	color: #666666;
	padding: 10px 0;
	text-indent: 1em;
	line-height: 150%;
	background: url(img/bg_dd.gif) no-repeat 0 0;
}

/* 背景イメージ設定 */
dl dt#blue {
	background-image: url(img/bg_dt_blue.gif);
}
dl dt#orange {
	background-image: url(img/bg_dt_orange.gif);
}
dl dt#pink {
	background-image: url(img/bg_dt_pink.gif);
}
dl dt#brown {
	background-image: url(img/bg_dt_brown.gif);
}

定義リストをフラットに並べて表示する方法は、表組み以外でも、ニュースリリースや更新履歴のパーツ等いろいろと利用できます。
数種類のパターンを用意しておけば、様々な箇所で役に立つでしょう。

次回は「第 6 回 CSS を使った見栄えの良い表組み(table)」です。お楽しみに!

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1571
###はmt-tb.cgiに変更してください。

コメントを投稿

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

特集

RECENT COMMENTS

ishida on CSS Nite in Ginza, Vol.49「バシャログ LIVE」 で紹介したDreamweaverの正規表現クエリーを公開します
>市川さん コメントありがとうございます。 前提条件の部分
ichikawa on 1.2.3で整えるPHP開発環境【STEP.1】 XAMPPをインストール
いつもバシャログ。をご覧いただきありがとうございます。 >
市川 on CSS Nite in Ginza, Vol.49「バシャログ LIVE」 で紹介したDreamweaverの正規表現クエリーを公開します
どういう前提での使用例なのか、わかりませんが、 タグを明示的
studio-8ch on 1.2.3で整えるPHP開発環境【STEP.1】 XAMPPをインストール
いつも記事を大変興味深く、拝見いたしております。 是非、A
sakai on [使える CSS テクニック] CSSで実現するプルダウンメニュー
>とらのすけさん コメントありがとうございます。 CSS