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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

2438閲覧

dt ddがどうやってもそろわない

yunappachi

総合スコア17

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/11/02 10:55

dt dd タグでメニュー表みたいなものを作っているんですがdtのところがどうしても長くなります。長い分は改行で表示したいと思っているんですがddが上につまってしまってきれいに揃いません。
何か方法があるでしょうか?今のソースは下記のような感じです。

<style type="text/css"><!-- dt{ width:200px; border-bottom:1px solid #ccc; float:left; clear:both; } dd{ width:500px; margin-left:200px; border-bottom:1px solid #ccc; } --></style> <dl> <dt>長い項目長い項目長い項目長い項目<dt> <dd>380円</dd> <dt>短い項目<dt> <dd>380円</dd> <dt>長い項目長い項目長い項目長い項目</span><dt> <dd>420円</dd> <dt>短い項目<dt> <dd>380円</dd> <dt>短い項目<dt> <dd>380円</dd> </dl>

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

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

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

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

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

guest

回答3

0

ベストアンサー

まず一番まずいのは<dt>のとじタグがなくもう一度<dt>が記載されていること
これはdtタグのあとに空のdtタグが置かれている状態。
なにをやってもずれるでしょう。

CSSだけでどうしても高さをあわせないといけない場合は
dt+ddごとにdlを置くことです。

プログラムで処理していいならたとえばjQueryでこう

css

1 2dt{ 3display:block; 4width:200px; 5float:left; 6clear:left; 7border-bottom:1px solid #ccc; 8} 9dd{ 10width:500px; 11display:block; 12border-bottom:1px solid #ccc; 13}

javascript

1 2$(function(){ 3 $('dt').each(function(){ 4 $(this).next('dd').height($(this).height()); 5 }); 6}); 7

HTML

1<dl> 2<dt>長い項目長い項目長い項目長い項目</dt> 3<dd>380円</dd> 4<dt>短い項目</dt> 5<dd>380円</dd> 6<dt>長い項目長い項目長い項目長い項目</span></dt> 7<dd>420円</dd> 8<dt>短い項目</dt> 9<dd>380円</dd> 10<dt>短い項目</dt> 11<dd>380円</dd> 12</dl>

投稿2017/11/02 12:15

yambejp

総合スコア114829

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

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

0

dlに幅指定してあげれば良いです。

私なり、作ってみたところ、「float:left;」や「clear:left;」にするより、「display: flex;」にした方が良いです。

私が作ったコードは、質問者が掲示したhtmlコードをもとにCSSを作りました。
その前にhtmlコードに

<dt>長い項目長い項目長い項目長い項目</span><dt>


</span>が残っていますので、削除してください。

CSSは、

dl { display: -ms-flexbox; /* IE10 */ display: -webkit-box; /* Android4.3以下、Safari3.1〜6.0 */ display: -webkit-flex; /* Safari6.1以降 */ display: flex; -ms-flex-wrap: wrap; /*IE10*/ -webkit-flex-wrap: wrap; /* Safari6.1以降 */ flex-flow: wrap; width: 550px; margin: 20px auto; } dt, dd { border-bottom: 1px solid #ccc; } dt { width: 200px; margin-right: 0; padding-left: 3em; } dd { width: 100px; margin-left: -50px; }

投稿2017/11/05 00:48

amaryllis

総合スコア179

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

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

0

dlに幅指定してあげれば良いです。

私なり、作ってみたところ、「float:left;」や「clear:left;」にするより、「display: flex;」にした方が良いです。

私が作ったコードは、質問者が掲示したhtmlコードをもとにCSSを作りました。
その前にhtmlコードに```

<dt>長い項目長い項目長い項目長い項目</span><dt> ```←</span>が残っていますので、削除してください。

CSSは、

dl { display: -ms-flexbox; /* IE10 */ display: -webkit-box; /* Android4.3以下、Safari3.1〜6.0 */ display: -webkit-flex; /* Safari6.1以降 */ display: flex; -ms-flex-wrap: wrap; /*IE10*/ -webkit-flex-wrap: wrap; /* Safari6.1以降 */ flex-flow: wrap; width: 550px; margin: 20px auto; } dt, dd { border-bottom: 1px solid #ccc; } dt { width: 200px; margin-right: 0; padding-left: 3em; } dd { width: 100px; margin-left: -50px; }

投稿2017/11/05 00:43

amaryllis

総合スコア179

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問