コニファ・ロゴ

csstest: css・定義リストのdtとddを同じ位置できれいな横並びにする[1]

定義リストは、dlタグで括られた中に、dt(定義する用語や項目など)とdd(その説明文)を並べて配置した形で構成されます。普通に記述すると、dtの後で改行され、全角で3文字分の左マージンをあけて、ddが表示されます(1)。このレイアウトは見やすいとは言いがたく、場合によってはスペースを多く消費してしまうことから、dtとddを同じ位置で横に並べるレイアウトが好まれるようです(2)。

この横並びの方法は、floatを使うのが普通です。ddを複数表示する場合は、dtのwidth、またはddのmargin-leftを指定、もしくは両方を使ってきれいに並べることができます。

ところが、複数のddがあり、かつ、これを続けて表示したい場合、(2)の方法ではうまくいきません。そこでfloatのかわりにtable-cellを使います(3)。dtのwidthは10em(この場合)、ddのmargin-leftは0かごく小さくします。

注意点は、横にtable-cellを続けて並べるため、dlのwidthをoverflowすると、すべてのddでテキストが桁あふれします(4)。さらに、各ddのテキスト量が違うと、折り返しがばらばらになって汚くなってしまいますので、ddのwidthを決め、paddingを使ってcellどうしを離します。

このページの補足→「css・定義リストのdtとddを同じ位置できれいな横並びにする[2]

(1)通常の定義リスト

2014年05月07日
[dd1要素内容]ダミーテキストダミーテキスト
2014年04月18日
[dd1要素内容]ダミーテキストダミーテキスト
[dd2要素内容]ダミーテキストダミーテキスト
2014年04月03日
[dd1要素内容]ダミーテキストダミーテキスト
[dd2要素内容]ダミーテキスト
[dd3要素内容]ダミーテキスト

.dlwrap1 dl {
	width: 100%;
	color: #3366ff;
	font-size: 14px;
	margin: 4px 0;
	}
.dlwrap1 dl dt {
	color: #777;
	font-weight: bold;	
	}

 

(2)floatを使った横並び

2014年05月07日
[dd1要素内容]ダミーテキストダミーテキスト
2014年04月18日
[dd1要素内容]ダミーテキストダミーテキスト
[dd2要素内容]ダミーテキストダミーテキスト
2014年04月03日
[dd1要素内容]ダミーテキストダミーテキスト
[dd2要素内容]ダミーテキスト
[dd3要素内容]ダミーテキスト

.dlwrap2 dl {
	width: 100%;
	color: #3366ff;
	font-size: 14px;
	margin: 4px 0;
	}
.dlwrap2 dl dt {
	float: left;
	clear: left;
 	width: 10em;
	color: #777;
	font-weight: bold;	
	}
.dlwrap2 dl {
	margin-left: 10em;
	}

 

(3)table-cellを使った横並び

2014年05月07日
[dd1要素内容]ダミーテキストダミーテキスト
2014年04月18日
[dd1要素内容]ダミーテキストダミーテキスト
[dd2要素内容]ダミーテキストダミーテキスト
2014年04月03日
[dd1要素内容]ダミーテキスト
[dd2要素内容]ダミーテキスト
[dd3要素内容]ダミーテキスト

.dlwrap dl {
	display: table;
	color: #3366ff;
	font-size: 14px;
	margin: 4px 0;
	}
.dlwrap dl dt {
	display: table-cell;
 	width: 10em;
	color: #777;
	font-weight: bold;
	}
.dlwrap dl dd {
  	display: table-cell;
	}

 

(4)table-cellを使った横並び・overflow

2014年04月01日
[dd1要素内容]ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
[dd2要素内容]ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
[dd3要素内容]ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト

.dlwrap5 {
	display: table;
	color: #3366ff;
	font-size: 14px;
	margin: 4px 0;
	}
.dlwrap5 dl dt {
	display: table-cell;
 	width: 10em;
	color: #777;
	font-weight: bold;
	}
.dlwrap5 dl dd {
	width: 15em;
	display: table-cell;
	padding-left: 20px;
	}

 

戻るボタン