• ベストアンサー

「見出し画像+小見出し」と「見出し画像+小見出し」の並べ方

「見出し画像(文字と同じ大きさ程度)+小見出しのtext」をいくつか縦に並べたいのですが、その間隔をCSSで設定したいと思います。 ■画像A+小見出しtext (この間隔を制御したい) □画像B+小見出しtext (この間隔を制御したい) ★画像C+小見出しtext....以下同じ 「画像+小見出し」をdivでまとめて、それに対して「下方向margin」を与えて間隔を制御したのですが、このやり方は間違った方法なのでしょうか?正しいCSSを学びたいのですが、どなたか教えていただけますか?

  • CSS
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

主題に対する回答を忘れてました。 別に下marginでも上marginでも両方ででもmarginで制御する事は間違いではありません。 ただし両方のmarginが指定されている場合、上下marginは相殺されますので注意が必要です。(参考URL) 以下3つは最初の見出しの前と、最後の見出しの後ろのmarginを除けばお互いのmarinは同じ2emになります。 ・見出し {margin-top:2em;margin-bottom:2em;}/*2em+2emで間が4em・・・にはならない。*/ ・見出し {margin-top:0;margin-bottom:2em;} ・見出し {margin-top:2em;margin-bottom:0;} 実際には見出しと見出しの間には内容が存在すると思われるので、その内容との兼ね合いと最初と最後の見出しの前後に確保したいmarginを考慮して好きなような割合で上下marginを指定すればよいかと思います。

参考URL:
http://www.y-adagio.com/public/standards/tr_css2/box.html#collapsing-margins
sakanayakin
質問者

補足

ありがとうございます。<ul>と<li>、もしくは<dl>と<dt><dd>でやることも考えたのですが、その場合行間の制御がなんだかうまく行かなかったので<div>にしてみました。ちなみに、もしsteel_grayさんなら何を使いますか?参考までに教えていただけると嬉しいのですが。とりあえずWinのIEとNN、MacのIEとNNで動作確認ができるので試してみます。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

「見出し」というからには<Hn>なのかな?と、感じていました。 どうマークアップするのが適切かは具体的にどんな書類なのかわからないと判断つかないですね。

sakanayakin
質問者

お礼

大変参考になりました。ありがとうございます。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

1.面倒でも正式な仕様書(参考URLは邦訳だけど)を読む。 2.あくまで正しいHTMLがあってのCSS。CSSの為にHTMLを捻じ曲げない。(divやspanを追加するのはやむなし。) 3.IEで確認しない。最終的にはIEでも確認するにしても、Firefox/Netscape/Mozillaのどれかで基本的に作る。(動作が異なる場合、IEの方が妙に都合よく誤った動作をする場合がおおいので) これらに気をつければ概ね正しいCSSを書けていると思います。(絶対ではありませんが。) (4.うまくデザインできない時はCSSもまだまだ過渡期と割り切って時にはすっぱり諦める事も大事かも。)

参考URL:
http://www.y-adagio.com/public/standards/tr_css2/toc.html
sakanayakin
質問者

補足

早速の回答ありがとうございます。一応、WinのFirefox/NN/IE、MacのNN/IEで動作確認をして問題なかったのですが、とんでもなく間違ったことをしているのかと心配で質問させてもらいました。URL参考にします。

関連するQ&A

  • 見出し<h3>にリンクを追加すると背景画像が表示されない

    h3の見出しに<a>を追加するとh3に設定していた見出し画像がIEで表示されなくなってしまいました。 FireFoxではきちんと表示されているので IEのバグかと思っているのですが、 もし解決方法がありましたら、アドバイスいただければ幸いです。 [HTML] <div class="contents"> <h3><a>見出し</a></h3> </div> [CSS] .contents h3 { background: url(../images/marker_blue_square.jpg) no-repeat 0 0.1em; padding:0 0 0 25px; margin-left:2.2em; margin-top:1em; font-size:medium;} 色々と試してみたんですが、 たとえば、以下のように見出しの文章の一部にリンクを張ると 見出しの背景画像がきちんと表示されました。 [HTML] <div class="contents"> <h3>見<a>出し</a></h3> </div> また、CSSに以下を追加してみたんですが 背景画像が二重になって表示されてしまいました。 [CSS] .contents h3 a { background: url(../images/marker_blue_square.jpg) no-repeat 0 0.1em; padding:0 0 0 25px; margin-left:2.2em; margin-top:1em; font-size:medium;} よろしくお願いします。

  • cssで見出しの両側に文字を表示したい

    css+htmlでWebページを作成しています。 その中で見出し(H3タグ)の両側に、右寄せ左寄せで文字を表示したいのです。 (完成イメージは画像参照)。 ソース全文載せましたが、見出しの下に右寄せと左寄せの文字が、表示されてしまいます。 見出しの両側に表示させるにはどうしたらよいですか? よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title></title> <STYLE TYPE="TEXT/CSS"> <!-- div.heading { width: 450px; background-color: #e0e0e0; border: #e0e0c0 solid; border-width: 1px 1px 2px; margin-left: auto; margin-right: auto; } /* --- 見出し --- */ div.heading h3 { margin: 0; padding: 7px 7px 4px; border-bottom: 4px #9825e1 solid; font-size: 100%; line-height: 100%; text-align: center; } span { float: left; width: 100px; text-align: center; } span.back { float: left; } span.next { float: right; } }--> </STYLE> </head> <body> <!--全体(wrapper) Start--> <div class="all-wrapper"> <div class="main-wrapper"> <div class="heading"> <h3>見出し</h3> <span class="back"><a href="#">BACK</a></span><span class="next"><a href="#">NEXT<aa></span> </div> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • 見出しの下の画像に文章を回りこませたい。

    バンドのHPを作っている初心者です汗 見出しを今まで作っていて、その後、メンバーの紹介文を書き込んでいたのですが、 この度、画像も埋め込もうと思って、画像左寄せで回りこませようとしているのですが、 どうあがいても回り込みません。align指定でも駄目です。 どなたかご教示お願いします。 見出しの外部CSSの構文は以下です。 h1{ font-size: 100%; border-left: 5px #d95483 solid; padding-left: 10px; margin-bottom: 15px; }

  • 横並びのカラム内で画像の高さを基準にして合わせたい

    お疲れ様です。 横並びのアルバムについて質問です。columnボックスに見出し<h4>と画像、説明文の<p>が入っています。見出しの文字数と説明文の長さは一定ではないので、column内の要素の位置がそれぞれ違います。 これを画像の頭部分で高さを揃えることはcssだけで実現できるでしょうか。 見出しと説明文どちらかがなければcolumnにinline-blockを指定してあげればよいのですが。 お知恵を貸していただければと思います。 ※画像の大きさは一定です。 <div class="column4"> <div class="column"> <h4>■ダミーテキスト</h4> <div class="image"><img src=".img" alt=""></div> <div class="text"><p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p></div> </div> <div class="column"> <h4>■ダミーテキスト</h4> <div class="image"><img src=".img" alt=""></div> <div class="text"><p>ダミーテキストダミーテキストダミーテキストダミーテキスト</p></div> </div> <div class="column"> <h4>■ダミーテキスト</h4> <div class="image"><img src=".img" alt=""></div> <div class="text"><p>ダミーテキストダミーテキストダミーテキストダミーテキスト</p></div> </div> <div class="column"> <h4>■ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</h4> <div class="image"><img src=".img" alt=""></div> <div class="text"><p>ダミーテキスト</p></div> </div> </div>

    • ベストアンサー
    • CSS
  • 【CSS】CSSでh1タグに背景を指定し、画像の中の任意の場所に文字を書き込みたいのですが、うまくいきません

    【質問】CSSでH1タグに背景を指定し、画像の中の任意の場所に文字を書き込みたいのですが、上下に余計な空白ができてしまい困っています。 【狙い】高さ32pxの3枚の画像ABCを縦につなぎ合わせた、高さ96pxの一枚の画像(=***)をCSSでH1の背景にし、H1の内容に応じてHTML上でclassを変えて、背景をAにしたりBにしたり変えられるようにする。 【コード】 CSS h1 {height: 32px;background-image: url(***);} .a h1{background-position: 0 0;} .b h1{background-position: 0 -32px;} .c h1{background-position: 0 -64px;} .a,.b,.c{margin: 0;padding: 0;} /*-↓画像のタテの中心に文字を並べるためにpaddingをとります-*/ h1 .subject{padding-top:9px;margin: 0;} HTML <div class="b"> <!--←A,B,Cに画像を切り替えます。//--> <h1><div class="subject">助けてください( T_T)</div></h1> </div> 【現状】 IE7 H1の下に余計な空白ができてしまいます。 FireFox3 H1の上下に余計な空白ができてしまいます。 どうすればよいのでしょうか?どこを修正すればよいのでしょうか、また 代替案があれば教えてくださるとありがたいです。

    • ベストアンサー
    • HTML
  • <H>タグの見出しと<P>タグの本文の間隔について

    初めてのホームページ作成に挑戦してます。 スタイルシートでデザインを調整しているのですが、 <H>タグの見出しと<P>タグの本文の間隔をCSSで二つの要素のマージンを0、パディング0にしても文字一つ分の間隔が空きます。ある一定の間隔以上縮めることができません。 また<H>タグと<TABLE>タグの間隔も<P>タグ以上に大きく間隔が開いてしまいそれ以上縮めることができなくて困ってます。 こういうものなんでしょうか? <DIV>タグなら間隔を好きなように調節でます。全て<DIV>タグで見出しも本文も書きたいくらいです。表は無理ですが・・・。

    • ベストアンサー
    • HTML
  • インラインスタイルシートで見出しを飾りたい

    インラインスタイルシートのみで http://css.eweb-design.com/1402_kh.html の左・下枠を表示のような見出しを作りのですが。 現状解らずに <div style="font-size: 36px; line-height: 37px; color: rgb(102, 102, 102); border-left: 10px solid rgb(204, 204, 204); width: 600px; text-align: left; padding: 0px 0px 0px 20px; border-bottom-color: #cc9999; margin-bottom: 10px;"><strong>Size</strong></div><hr> にしています。 可能であればどのようにすればよいでしょうか?

    • ベストアンサー
    • HTML
  • ホームページ作成中。画像の表示

    初めてホームページを作成している者です。 Webサイトから商用のホームページのテンプレートをダウンロードして、HTMLとCSSで作成している途中です。(IEで確認。) 画像をテンプレートのものから自作の画像に切り替えようとしたのですが、表示されません。 画像はテンプレートの画像と同じディレクトリに入っているし、相対パスや拡張子は間違ってはないと思います。 元の画像はGIFの2.54KBで大きさは290×65です。 切り替える画像はGIFの4.67KBで大きさは290×65です。 HTML文は↓になっています。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-style-Type" content="text/css" /> <link rel="stylesheet" href="base.css" type="text/css" /> <title>あなたのサイト名などお書きください</title> </head> <body> ・ ・(省略) ・ <div id="header"><h1><a href="index.html"><img src="images/logo.gif" alt="" /></a></h1></div > CSS文で関係ありそうなのは↓です。 <冒頭の関係ありそうな部分> @charset "Shift_JIS"; body { margin:0; padding:0; line-height:1.6; letter-spacing:1px; } a { color:#98534B; text-decoration:none; } a:hover { text-decoration:underline; } img { border:0; vertical-align:bottom; } <この画像の部分> div#header h1 { margin:0; padding:10px 0; font-size:2em; color:#333; } div#header h1 a { color:#9B0000; } div#header h1 a:hover { color:#D30000; text-decoration:none; } 何が表示されない原因となっているのでしょうか?

    • ベストアンサー
    • HTML
  • dreamweaverで画像の右に文字を回り込ませると背景色も上にあがってしまいます。

    すみません。ちょっと分かりにくいのでタグを貼り付けます。 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> <style type="text/css"> <!-- #contents { background-color: #FFC; width: 750px; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; } .photo { display: block; float: left; } --> </style> </head> <body> <div id="contents"><img src="file:///C|/Documents and Settings/administrator.JITSUGYO/デスクトップ/佳山/dreamweavercs3 cd-rom/lesson01/images/item_02.jpg" width="250" height="200" class="photo" /> 作家さんがひとつひとつ丁寧に心をこめて作り上げた器は見ているだけでも心がなごみます。器をひとつ変えるだけで食卓の雰囲気ががらりと変わり、ちょっと贅沢な気分があじわえます。 </div> </body> </html> 「これからはじめるdreamweaverの本」を購入し、その通りにやったときは問題なかったんです。 自分で画像を用意して、テキストを打ち、divを挿入。そしてdivにcssルールを設定(このときに背景色を設定)したまではよかったのですが、その次に「.photo」に対して回り込みの設定をしたら、おかしくなります。たしかに画像の右側にテキストが表示されるのですが、どうやらdivの範囲(?)もテキストと一緒に上にいってしまい、せっかく指定した背景色までテキストにくっついていってしまっている感じです。 画像の右側にも背景色が表示されないのはどうしてなんでしょうか?どなたかお分かりの方いらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • HTML
  • 初心者です 画像横に文字を入れたい css

    web制作を始めたばかりの初心者です。 画像右側に文字を入れたいのですが、うまくいきません。 本当にはじめたばかりでなんとなくcssの意味が分かりかけたところです。 どうぞご教示ください。 html <ul>     <li><a href="index.htm"><img src="画像"width=""height=""></a></li>     <div class="text">文字列</div> <li><a href="index.htm"><img src="画像" width=""height=""></a></li>    <div class="text">文字列</text> </ul> </div> css .site ul {margin: 0; padding: 0; list-style: none} .site li a {display: block; padding: 5px; font-size: 14px; text-decoration: none} .site li a img {border: none } .site a:after {content: ""; display: block; clear: both} .site img {float: left; width: 250px} .site .text {float: none; width: auto; margin-left: 60px; padding-left: 15px; color: #000000; font-size: 18px}

専門家に質問してみよう