横並びにしたdtとddの高さがそろわなくて困っています。
ーーー HTML ーーー
<dl>
<dt>お名前</dt>
<dd>じゅげむ</dd>
<dt>分類</dt>
<dd>質問</dd>
<dt>内容</dt>
<dd>ちょっとわからないことがあるんですが…〜…よろしくお願いします</dd>
</dl>
ーーー CSS ーーー
dl {width: 500px;}
dt {width: 99px;
float: left;
clear: left;
background: #ccc;
border-bottom: solid #999 1px;
border-right: solid #999 1px;}
dd {width: 400px;
margin: 0 0 0 100px;
background: #666;
border-bottom: solid #999 1px;}
上記のような構成のものを、表のように並べたいと思っています。
dtは増減することはなく、ddが可変になるため、ddの高さに揃えてdtの高さを揃えたいです。
上記の書き方でできなかったので、dlにdisplay: table;、dtとddにdisplay:table-cell;を入れてみたのですが、dlの上下に不要なマージンが入ってしまい(margin: 0 0;にしても消えませんでした)ダメでした。
なるべくJSを使わずに揃えたいのですが、他にいい方法はありますか?
みんなの回答 5 件
tableレイアウトにするのが一番良いかと。
もしくは、heightline.jsを使ってみてはどうでしょう。
見た目を綺麗に整列する!ブロックレベル要素の高さを揃えるJS3選 | 株式会社LIG
http://liginc.co.jp/web/js/jquery/22340表ならテーブルでいいんじゃん。
なんで無理に定義リストにするのか。
定義リストにしちゃうとのちのち<dt>部分がなしのコンテンツとか入ってきちゃうと文法間違いになっちゃうよ。
Bootstrapのdl.dl-horizontal解析してみたら?
CSS · Bootstrap
http://getbootstrap.com/css/#type-listsこうやればできるんじゃないかしら。坊や。
dl {
width: 500px;
border: 1px solid #999;
border-top: 0;
line-height: 1.5;
background-color: #666;
overflow: hidden;
}
dt {
float: left;
width: 130px;
padding: 10px;
border-top: 1px solid #999;
font-weight: bold;
}
dd {
margin-left: 150px;
padding: 10px;
border-top: 1px solid #999;
border-left: 1px solid #999;
background-color: #ccc;
}
トピ内容のテキストなら定義リストが妥当だろうね。
単に見た目を表っぽくしたいってだけじゃないか?
これくらいなら、JS使わなくてもいけるよ。
dl {}
dt {
clear: both;
float: left;
width: 5em;
background: #ccc;
}
dd {
margin: 0 0 0 6em;
background: #666;
border-bottom: solid #999 1px;
border-left: solid #999 1px;
}
※ddにはfloat,width等指定しないのがポイント。単位も出来ればem推奨。
関連するトピックス