• ベストアンサー

「dt」「dd」の内容を一列で表示させる方法を教えてください。

はじめまして。 CSSで作成しているんですが、よく「dl」「dt」「dd」を使って一列に 日付  ○○○○○○ というのを見かけるんですが、やり方がわからず困っています。 どうすればいいのでしょうか? また、「dl」を使うと「p」のように上下?に大きな空白が出来てしまうんですが、これを回避する方法はありますでしょうか? といいますか、よく見かけるものでは空白などできておらず、むしろ行間に画像を入れて小さな空白を作っているように思うんですが・・・ こちらも合わせて教えていただけると幸いです。 どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#56882
noname#56882
回答No.8

#5、#6です。お返事が遅くなりまして申し訳ありません。 .box-aの中にあるmargin-top: 30px;と#rightの中にあるmargin-top: 10px;が 上部に○○px分の余白を取っていることになります。 <div class="box-a"> <div class="day"> <dt>2007.11.12</dt> <dd>○○○○○○○○</dd> <dt>2007.11.12</dt> <dd>○○○○○○○○</dd> </dl> </div> </div> と書いてしまうと30px分の余白が出来てしまうのです。 「margin-top: 30px;」を取るとその余白は出来なくなると思いますよ。 > firefoxだと2行分までとはいかないまでも空白がありました。 .day dl{ margin: 0px; padding: 0px; width: 330px;/*幅(任意ですがdtとddのwidth+margin30pxの合計になるようにしてください)*/ } .day dt{ clear: both; float: left; width: 80px;/*日付の幅(任意)*/ padding: 1px;/*文字周りの余白(表記しなくてもいいです)*/ } .day dd{ width: 200px;/*テキストの幅(任意)*/ margin: 0 0 0 30px;/*日付とテキスト間の幅(30px分幅を取っています)*/ padding: 1px;/*文字周りの余白(表記しなくてもいいです)*/ } と表記すると余白が少なく表示されると思います。

nanashiya
質問者

お礼

ありがとうございます! 早速試してみます! 私ももっと勉強して、教えれるぐらいになりたいです・・・

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

  • CHI-512
  • ベストアンサー率69% (63/91)
回答No.7

こんにちは。 横から失礼します。 こんなソースはいかがでしょう? .box-a { zoom: 100%; } .box-a:after { content: " "; clear: both; height: 0; display: block; visibility: hidden; } .box-a dl { margin: 0px; padding: 0px; } .box-a dt { float: left; clear: left; width: 100px; } .box-a dd { margin-left: 130px; } <div class="box-a"> <dl> <dt>タイトル</dt> <dd>あいうえおあいうえお</dd> <dt>タイトル</dt> <dd>あいうえおあいうえお<br />あいうえおあいうえお<br />あいうえおあいうえお</dd> <dt>タイトル</dt> <dd>あいうえおあいうえお</dd> </dl> </div> 参考になれば幸いです。

全文を見る
すると、全ての回答が全文表示されます。
noname#56882
noname#56882
回答No.6

#5です。 <div class=box-a>はのCSS記述はどのようにされていますか? (正しい指定は<div class="box-a">です。「"」を忘れないようにしてくださいね) それを書いてくださると何故起きるのかわかるかもしれません。 <div class="box-a">を一度削除して#5で記述した通りにされてみてはどうでしょうか?

nanashiya
質問者

お礼

深夜遅くの度重なる回答、本当にありがとうございます。 box-aについてですが .box-a { width: 550px; height: 250px; float: left; margin-top: 30px; background-image: url(img/info-bg.gif); background-repeat: no-repeat; } としています。 試しにbox-aを消してみましたがやはり同じような現象が起きました。 ちなみにさらにdiv id="right"で囲んでいるんですがこちらは #right { width: 550px; margin-left: 15px; margin-top: 10px; height: 280px; background-repeat: no-repeat; background-image: url(img/infomation.gif); } となっています。 ひょっとするとこちらが原因でしょうか? 難しいです・・・

nanashiya
質問者

補足

何度もすみません。 たった今ブラウザで確認したところ、上の空白はなくなっていました! ただ、firefoxとIEだと見え方か少し異なってくるんですね・・・ IEだと隙間なく表示されるんですが、firefoxだと2行分までとはいかないまでも空白がありました。 できれば間をとった距離が欲しいんですが(笑 本当難しいです・・・

全文を見る
すると、全ての回答が全文表示されます。
noname#56882
noname#56882
回答No.5

試しに書いてみましたが…。ご参考までにお願い致します。 CSS部分例 .day dl{width: 330px;/*幅*/} .day dt{clear: both; float: left; width: 80px;/*日付の幅*/ padding: 2px;/*文字周りの余白*/} .day dd{width: 200px;/*テキストの幅*/ margin: 0 5px 0 30px;/*日付とテキスト間の幅(30px分幅を取っています)*/ padding: 2px;/*文字周りの余白*/} html部分例 <div class="day"> <dl> <dt>2007.11.12</dt> <dd>○○○○○○○○</dd> <dt>2007.11.12</dt> <dd>○○○○○○○○</dd> </dl> </div> > 「p」のように上下?に大きな空白が出来てしまうんですが これは今回では「padding」で文字の周りに小さな余白を作っています。 ご参考になりましたら幸いです。

nanashiya
質問者

お礼

ありがとうございます! これを見て何となくですが、クラスについて一歩前進したような気がします・・・ 一度自分のファイルに移して返信しながら研究してみたいと思います、 本当にありがとうございました!

nanashiya
質問者

補足

早速やってみました! 一行にやるやり方は、おかげ様でばっちりできたんですが、空白についてやはりできませんでした・・・ ちなみに空白というのは「dl」タグの上の部分がどうしても改行2行分ほど空いてしまうのです。 <div class=box-a> <div class=day> <dl>・・・・・ としたんですがなぜか始まりの日付の部分がbox-aの改行2行分下から始まってしまいます。 padding30px分くらいあいて始まってしまいます。 ここの空白部分を調節したいんですが・・・ もしご存知でしたらどうかよろしくお願いいたします。 何度もすみません・・・

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

outbraveさんが全部答えを書いてくれたみたいですが、 「float:leftということは、「dt」「dd」をdivで囲って、やるということでしょうか」 と聞くあたりCSSについてあまり理解なされていませんね? divを使う必要はありませんよ。一度リファレンスなどを購入なさってみてはいかがでしょうか。 セレクタやプロパティなど基本的なことを理解しておいた方が後々壁にぶつかることがなくなります。 ちなみにflortでもinlineでもどっちでも可能です。場合によって使い分けてください。 偉そうに書いてみましたが、私も勉強中の身です。 お互い頑張りましょう。

nanashiya
質問者

お礼

セレクタやプロパティ。。。 ほんと何も分かってないです(汗 ひとまずなんでもdivで囲って作っています。 一度ちゃんと勉強してみます! 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • outbrave
  • ベストアンサー率60% (231/380)
回答No.3

dl { margin: 0; } 上下の間隔は、margin で調整できます。

全文を見る
すると、全ての回答が全文表示されます。
  • outbrave
  • ベストアンサー率60% (231/380)
回答No.2

dt, dd { display: inline; margin: xxxx; padding: xxxx; } ブロックをインラインに変更すればよいかと。

nanashiya
質問者

お礼

ありがとうございます。 インライン・・・まだまだ勉強が必要です。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

float: left;でなりませんか? あと空白はCSSで制御していないからでは?

nanashiya
質問者

お礼

ありがとうございます。 float:leftということは、「dt」「dd」をdivで囲って、やるということでしょうか? CSSの制御方法なども教えていただけると幸いです。 どうかよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • dl,dt,ddタグでdtに対して、rowspan

    お世話になっております。 表題の通り、 dl,dt,ddタグでdtに対して、rowspanってできませんか? cssは記述しておりませんが、 現在、テーブルのように2列並んだ状態です イメージ(http://www.geocities.jp/eijispace/2011/0810.html) <dl> <dt>天気</dt> <dd>晴れ</dd> <dt>天気</dt> <dd>曇り</dd> <dt>天気</dt> <dd>雨</dd> </dl> これを天気の部分は縦に一つに纏めて表示したいのです。 tableタグでも良いのですが、 レスポンシブ化を計っており、 ウインドウサイズが小さくなると、 一列に表示ということがしたく、 ウインドウサイズが小さくなると jsか何かで、rowspanを0にする という方法でも良いのですが、 jsは余り使わず、mediaクエリで何とかならないものか考えております。 ご教授お願いします

    • ベストアンサー
    • CSS
  • floatさせたdtの内容が多い場合、ddの背景と高さが合いません

    サイトの新着情報を<dl><dt><dd>で組んでいます。 罫線の上に左に画像、右に日付と新着内容が並んでいるように 見せたいのですが、<dt>を左にfloatし<dd>を回り込ませ、 <dd>に罫線の画像を背景で設定た場合、<dd>の内容が少ない時、 罫線画像が左の<dt>の画像と高さが合いません。 <dd>にClearfixを設定すると、モダンブラウザでは<dt>の高さと <dd>の罫線画像の高さが合い、希望通りの表示になりました。 しかし、IE6と7ではモダンブラウザと同じ表示にはなりません。 float以外の方法でも構いませんので、IE6以降とモダンブラウザ ともに<dl><dt><dd>で上記希望の表示を実現させる方法がありましたら、 アドバイス頂けないでしょうか、よろしくお願いしますm(__)m ソースは以下になります。 [HTML] <dl class="news"> <dt><img src="img/photo.jpg" width="50" height="50" /></dt> <dd><span>2009.01.01</span><br /> <a href="#">新着情報のテキストが入ります。</a></dd> <dt><img src="img/photo.jpg" width="50" height="50" /></dt> <dd><span>2009.01.01</span><br /> <a href="#">新着情報のテキストが入ります。</a></dd> <dt><img src="img/photo.jpg" width="50" height="50" /></dt> <dd><span>2009.01.01</span><br /> 新着情報のテキストが入ります。</dd> </dl> [CSS] #index dl.news { padding: 8px 15px; border: #999 1px solid; } #index dl.news dt { width: 50px; float: left; clear: left; } #index dl.news dd { margin: 0 0 6px; padding: 0 0 8px 57px; background: url(../img_cmn/linet.gif) repeat-x bottom; line-height: 125%; } #index dl.news dd:after {/* clearfix */ content: "."; display: block; visibility: hidden; height: 0.1px; font-size: 0.1em; line-height: 0; clear: both; }

    • ベストアンサー
    • HTML
  • 定義リスト dl dd dt

    困っています。お願いします。 このソースのレイアウトとしましては、 dl1、dl2、dl3と横に並んでいます。 各dtに画像、ddにテキストです。 このカタチが2行続いています。 3行目は、三列の一番左にdl7が置かれるかたちです。 全体としては、 dl1 dl2 dl3 dl4 dl5 dl6 dl7 という感じです。 dl1~dl7まで全て、同じサイズの画像とddにテキストが入っています。 問題はレイアウトではなく、リンクです。 dl1~dl7のdtの中の画像には全てリンクがはれるのですが、 dd部分の一部テキストにはリンクがはれません。 リンクがはれるのは、dl5、dl6、dl7です。 後はリンクを設定しても、リンクがはれない状態です。 いろいろ試してみたのですが、原因がわかりません。 一つ思うことは、dl1、dl2、dl3、dl4の下にはdl4、dl5、dl6があるわけなので、何か下にあるとリンクが効かないのかなあとも思います。 どなたか、教えて頂きたいです。 分かりづらい説明で申し訳ないのですが、宜しくお願い致します。 <dl id="dl1">   <dt id="dt1">     <a href="#"><img src="img/image1.jpg" /></a>   </dt>   <dd class="dd1">     <a href="#">ああああ</a>   </dd> </dl> <dl id="dl2">   <dt id="dt2">     <a href="#"><img src="img/image1.jpg" /></a>   </dt>   <dd class="dd1">     <a href="#">いいいい</a>   </dd> </dl> このカタチをdl7まで繰り返し、htmlに記述します。 次にcssです。 #dl1 { position: relative; width: 170px; height: 170px; padding: 10px 10px 0px 35px; margin: 0px 0px 0px 0px; float: left; } #dt1 a img { text-decoration: none; border-style: none; } #dt1 a:hover img { visibility: hidden; text-decoration: none; border-style: none; } #dt1 a { display: block; width: 170px; height: 170px; background-position:left top; background-repeat:no-repeat; text-decoration: none; } #dt1 a:hover { background-image: url(img/image1-2.jpg); text-decoration: none; } こちらも同様に、dt7まで繰り返しcssを指定。 cssの中身は、画像にホバーしたら、画像が切り替わるようになっています。 次に、テキストのdd部分のcssです。 こちらはクラス指定で、dl1~dl7までの各dd使用。 .dd1 { width: 170px; height: 40px; margin: 0px; color: #ffffff; font-size: 12px; line-height: 16px; padding: 0; } .dd1 a { padding: 0; margin: 0; text-decoration: none; color: #ffffff; } .dd1 a:hover { text-decoration: underline; color: #ffffff; } 長々と失礼いたしました。

    • ベストアンサー
    • HTML
  • <dt>に隙間を入れる方法

    <DL class="goo"> <DT>あああ</DT> <DD>いいい</DD> <!-- この間 --> <DT>AAA</DT> <DD>BBB</DD> </DL> というHTMLを書きましたが、<DD>いいい</DD>と<DT>AAA</DT>の間を入れることがCSSでできません。どうしたら隙間をいれることができるのでしょいうか?

    • ベストアンサー
    • HTML
  • webデザイン dl dt ddの横並び指定

    初歩的な質問失礼します。 webサイトの「ニュース」や「インフォメーション」の記述によくある dl dt dd要素を使って、「日付、日時」をdtに、「内容、イベント」をddにマークアップして、floatで横並びにするレイアウトを作成していて、他のサイトを研究しながらなんとか形にできたのですが、正直ポイントがつかめていません。 なんとなく、(1) floatは<dt>に指定する。       (2)<dt>と<dd>の横の余白は、<dd>に<dt>幅分+空けたい分のpadding-leftを指定する。 (3)bottomにborderを指定したい場合は、<dd>に指定すると<dt>のbottomにもborderが表示される。 この三点はポイントなのかなー、と思ったのですが(いや、全然違うし。ってとこがあったら是非教えてください!!どうしてそうなのかも理由がよくわかってないんです。) 上下の余白の取り方もpaddingとmarginをいろいろ試して(結果両方使いました。) 思うような形に出来たのですが、全然理由がわかりませんでした。 dt ddを横並びにした時の左右、上下の余白の取り方を理由も含めて説明していただけないでしょうか?? よろしくお願いします!

    • ベストアンサー
    • CSS
  • 入れ子にしたddタグをcssで制御できません。

    入れ子にしたddタグのマージンをcssで指定してみましたが、うまくいきません。 </dd> <dl>  <dt>111111</dt>   <dd>22222222222222222</dd>   <dd>33333333333</dd>  <dt>444444</dt>   <dd>5555555</dd>    <dl>     <dt>66666666</dt>      <dd>777777777</dd>    </dl>  </dd> </dl> のようにddの中にまたdlから始まるのを入れ子にしました。 それで、cssで .hoge dd{ color:#FFFFFF; margin:10px; } とすると、ddタグの文字が白くなります。それはわかるのですが、上の入れ子の例の777777のように入れ子になったddだけにスタイルシートを掛けたいのです。 試しに .hoge dl dt dd dl dt dd{ color:#FFFFFF; margin:10px; } や、 .hoge dd dl dt dd{ color:#FFFFFF; margin:10px; } を試してみましたが、うまくいきませんでした。 どうしたら、入れ子の中のddだけにスタイルシートを適用できるようになりますでしょうか。もしくは、このようなddを入れ子にする方法は使わないのでしょうか。

    • ベストアンサー
    • HTML
  • ddタグを上手に使うには?

    はじめまして。 現在、いわゆる新着情報の箇所を <dl> <dt>日付</dt> <dd>詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細詳細</dd> </dl> のように書いているのですが、<dd>が2行構成になったときどうしても2行目から<dt>の下側に回り込んでしまいます。 <dt>にfloatはどうしても1行で書きたいからつけているのですが、これを解決する方法はありますでしょうか? わかりにくいかもしれませんが、どうかよろしくです。

    • ベストアンサー
    • HTML
  • jqueryについて、$("+dd",this)について教えていただけ

    jqueryについて、$("+dd",this)について教えていただけませんでしょうか 【参考サイト】 http://ascii.jp/elem/000/000/498/498710/index-6.html 上記のページのアコーディオンメニューを作る記述において、 $(function(){ $("dd:not(:first)").css("display","none"); $("dl dt").click(function(){ if($("+dd",this).css("display")=="none"){ $("dd").slideUp("slow"); $("+dd",this).slideDown("slow"); } }); }); の if($("+dd",this).css("display")=="none") の部分の"+dd"に何故、+が付くのでしょうか。 確かに上記の様に記述をすると上手く動作をしますので、正しいのだと 思うのですが、そうなる理由が解らなくて混乱してしまっています。 thisが示す$("dl dt")の下層の要素を指定するための記述ならば、 if($("this dd").css("display")=="none") として、$("dl dt")の下層にあるddという様な指定は出来ないのでしょうか。 まだ、ほとんどjqueryの記述ルールを把握していないので、お恥ずかしいのですが、 何卒、宜しくお願いいたします。

  • CSSについて質問です (IDセレクタ)

    CSS初心者です。困っております。 <dl id="info"> <dt>文章1</dt> <dd> <p>文章2</p> </dd> <dt>文章3</dt> <dd> <p>文章4</p> </dd> </dl> 上記のCSSで文章1と3の色を変えたい場合、 下記はどれが正しいのでしょうか? このIDセレクタがどうも、いまいちよくわかりません。 なぜ、#の前に置いたり置かなかったりするのでしょうか? dl#infoData dt{ color:#663300; } #infoData dt{ color:#663300; } わかる方よろしくお願い致します。

  • 画像の横にテキスト表示

    <dl> <dt>画像</dt> <dd>テキスト1</dd> <dd>テキスト2</dd> <dd>テキスト3</dd> </dl> 上記のhtmlで画像とテキストの表示をしたく思っております。画像を基準にテキストは全て 画像の右側に表示させたいのですがどのようなcssをかけば実現できるでしょうか? ********** テキスト1 *      * テキスト2 * 画像  * テキスト3 *      * ********** のようなイメージを想定しております。 ddが1つであればfloatで問題ないのですがddが複数ありddのみは縦に続けたいのですが方法がわからず つまずいている状態です。詳しい方いらっしゃいましたら宜しくお願い致します。

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • サークル仲間との飲み会でHしてしまった私。好きになってしまい、好意を伝えたが振られ辞めるか悩む。
  • 辞めたい理由は、ヤリマン認定や自己嫌悪に陥ること。でも、他の仲間に会いたいし周りの詮索も怖い。
  • 客観的なアドバイスが欲しい。また、同じことを繰り返さないための戒めとして何をしたらいいか知りたい。
回答を見る