質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

1回答

21000閲覧

ddが複数あって、かつdtとddが横並びのリスト

Cystidia

総合スコア16

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2017/04/16 03:07

編集2017/04/16 03:26

お世話になります。

dtが1つ、その下に複数のddが並ぶリストのCSSで行き詰まっています。
例えば

HTML

1<dl> 2 <dt>夏と言えば</dt> 3 <dd>かき氷</dd> 4 <dd>海水浴</dd> 5 <dd>オオクワガタ</dd> 6 <dd>夏休み</dd> 7 <dt>冬と言えば</dt> 8 <dd>大雪</dd> 9 <dd>冬期うつ</dd> 10 <dd>燃料費高騰</dd> 11 <dd>スリップ事故</dd> 12 <dd>センター試験</dd> 13 <dd>日照不足</dd> 14 <dd>忘年会</dd> 15</dl>

というリストがあり、dtとddが横並びになるように

CSS

1dl{ 2} 3dl dt{ 4 display:block; 5 width:120px; 6 height:240px; 7 border:0; 8 margin:0; 9 padding:0; 10 float:left; 11 clear:left; 12 font-weight:bold; 13} 14dl dd{ 15 display:block; 16 float:left; 17 border:0; 18 margin:0; 19 padding-left:20px; 20}

のようなCSSを書けば、複数個のddを横並びに表示することができますが、dtのheightを固定しているため、ddの個数によってはやたら下の空白が大きくなってしまったり、逆に下の方のddがdtの真下にはみ出てしまったりします。かといって、dtのheightをautoにしたり指定を外したりすると、ddが2行以上の時はdtの真下にはみ出ます。
dtとddが共に1つずつの場合、dtに float:leftとclear:leftを指定+ddのmargin-leftを相応に指定すればよいようですが、ddが複数になるとお手上げです。
divで左右に分けてdt→h4、dd→liにするのも考えましたが、負けを認めたような気がしてならないです。

良いアイデアがあれば、ご紹介いただけると嬉しいです。

1点書き忘れたので追記です。

複数のdd「も」横並びにしたいと思っております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/04/16 03:48

追記部分についてもう少し詳しく記述してください。
Cystidia

2017/04/16 04:14

言葉足らずで申し訳ありません。ddが複数あるとき、これらを縦1列に並べるのではなく、横に(例えば1行に4つとか)並べていきたいということです。
guest

回答1

0

ベストアンサー

CSS

1dl { 2 padding-left: 6em; 3} 4dl dt, 5dl dd { 6 float: left; 7 margin: 0; 8} 9dl dt { 10 clear: left; 11 float: left; 12 margin-left: -6em; 13} 14```**動くサンプル:**[https://jsfiddle.net/yvf21u4c/](https://jsfiddle.net/yvf21u4c/)

投稿2017/04/16 04:24

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Cystidia

2017/04/16 05:02

ありがとうございます! これならddが複数あって、かつ複数行になっても横並びになりました。 早速実装してみたのですが、1点新たな問題が出てしまいました。 ddに横幅指定がない(widthもpaddingもつけない)場合はこれでよいのですが、dd間の見栄えを整えるために何らかの方法で横幅を指定すると、1行目(=dtと並んでいる行)のみ、インデントがかかったように(かけてません)ddの項目が右にずれてしまいます。 先程頂いたjsfiddleのサンプルを、上記のように編集しました。
Cystidia

2017/04/16 05:08

自己レスです。 本番のCSSに同じコードを書いたら、上手くいきました!! 先程の「新たな問題」は、なかったことにして下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問