現在、独学でADOBE DREAM WEAVER CS 5.5でwebサイトを作成していますが、
headerとcontentの間に10pixcelほどの隙間ができてしまいます。「デザイン」ビューには
表示されないのですが、「ライブ」ビューやIE9やchromeでも隙間ができてしまっています。
これを防ぐ方法はなにかありませんでしょうか?コードは下記となります。
【HTML】---------------------------------------------------------
<html>
<body>
<div id="container">
<div id="header">
<img src="a.png" width="1000" height="150">
</div><!-- /#header -->
<div id="content">
<p>aaa</p>
<p>aaa</p>
<p>aaa</p>
</div><!-- /#content -->
</div><!-- /#container -->
</body>
</html>
【CSS】---------------------------------------------------------
body{ background-color: #CCC;
font: 16px/24px 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'MS Pゴシック','MS PGothic',sans-serif;
color: #000;
}
#container {
margin:0 auto;
width: 1000px;
}
#header {
margin: 0 auto;
padding: 0 auto;
}
#content {
width:1000px;
margin: 0 auto;
padding: 0 20;
background-color: #666;
}
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
それなら、画像がベースラインになっているからだと思います。
http://www.htmq.com/style/vertical-align.shtml
初期値がbacelineです。のでアルファベットのgjpqは下に少し出る設定です。それらがなくても、画像を想定のベースラインそろえて配置します。下にピョコンと出ている想定分あいてしまって見えるわけです。
そこで下ぞろえを指定すれば、希望の隙間がない状態になると思います。
セレクタ{vertical-align:bottom;}
vertical-alignをbottomに変更したら、直りました!!またこの方法以外にheaderのサイズが指定してなかったので指定してみると、その方法でも直りました!!bacelineについて画像であってもgjpqがあることを想定して一応その分下に余白を作っておくということでしょうか??HTMLとCSSの組み合わせで解決の方法が何通りもあり、単純な自分としてはこういうことが混乱のもとになってしまいます。実はまだ他にもいろいろお伺いしたいことがあるのですが、今自分で試行錯誤しています。またどうしてもわからないことがあれば、お伺いをしたいと思います。勉強になりました!本当にありがとうございました!!
No.3
- 回答日時:
div内の要素のマージンが利いているだけです。
HTMLは文書構造だけを記述しましょう。
【引用】____________ここから
DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
どのような名称が良いかは、新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )
<body>
<div class="header">
<h1><img src="a.png" width="1000" height="150" alt="タイトル"></h1>
</div>
<div class="section">
<h2>見出し</h2>
<p>aaa</p>
<p>aaa</p>
<p>aaa</p>
</div>
<div class="footer">
<h2>文書情報</h2>
</div>
</body>
・・・
div.header,div.section,div.footer{margin:0 auto;width:100%;max-width:840px;}
h1,h2,p{margin:0 auto;line-height:1.4em;}/* 上下のマージンを0 */
p{text-indent:1em;}
この、margin:0 auto;でそのマージンは消えて、divドオシが密着するはずです。
同じ設定は、グループ化して記述する。
継承するプロパティは親ブロックに記述する。
HTMLは文書構造、スタイルシートはプレゼンテーションときちんと分けましょう。
←構造とプレゼンテーションの分離 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
上記コードは質問のために少し簡素化したもので、実際に作っているwebサイトで、インスペクタモードで確認すると隙間はheaderに起因しているものでした。bacelineをbottomに変更したり、headerのサイズを写真のサイズに固定したら、隙間は消えました。
今回は自分のCSSとHTMLの認識不足を痛感させられました。リンクしていただいたサイトなども拝見させて頂きましたが、「なんとなくわかったような気がする」という状態で実際はちゃんと理解できていないのが現状です。実際にサイトを作りながら、勉強していきたい思います。今回は本当にありがとうございました。
No.2
- 回答日時:
旧IE非対応で良いなら:
#content p:first-child{ margin-top:0;}
style属性で1個目のPだけに直接書くなら:
<div id="content">
<p style="margin-top:0;">aaa</p>
#content { } に border-top を設置する方法もあるし、
#content p { } でmarginをリセットしてpaddingに変更するとか色々・・・
p:first-chaildというCSSは初めて見ました。ちょっと自分にはまだレベルが高いようです。。。すみません。質問させて頂いたコードではPタグのmarginが原因だったようです。しかし上記コードは質問のために少し簡素化したもので、実際に作っているwebサイトで、インスペクタモードで確認すると隙間はheaderに起因しているものでした。1000X150pixcelの写真が原因だと思い、写真を外しても隙間は消えませんでした。header idのmarginやpaddingもすべて0になっています。header内に起因した隙間だが、marginやpadding以外に隙間や間隔を空けるものがあるかどうかわからず、行き詰ってしまっています。もう少し自分でいろいろ触ってみます。何かお気づきのことがありましたら、助言いただけるとうれしいです。ありがとうございました。
No.1
- 回答日時:
headerとcontentの間に10pixcelほどの……
ではなく、おそらくcontent内部の問題かと思います。
#content p{margin:0;}
を加えてみてはいかがでしょうか?
今回のような問題の場合、構造を視覚的に表示すると、原因となっている場所が判明しやすいです。アウトラインを示す表示モードにブラウザを変えたり、cssで一時的に*{border 1px solid red}などとし、問題の空間がどこの領域に属するのかを見て見られてはいかがでしょうか?
その上で今回の場合、content内と判明すれば、その最初の中身と容易に想像がつくと思います。
回答ありがとうございます。今実際にためしてみました。確かに今回こちらに書いたコードはPタグが原因だったようです。こちらに書いたコードは少し簡素化したものなのですが、実際に今自分で作っているサイトはヘッダがあり、ナビゲーションバーがあり、その下にコンテンツがある状態です(1カラム)。それで、ヘッダの写真にアウトラインをつけてみたら、そのheader内の写真下のところに、隙間ができていました。写真が原因だと思い、写真を外しても隙間は消えませんでした。インスペクタモードで確認をしても、やはり、別のBOXのpaddingやmarginが影響している状態ではありませんでした。写真の大きさは1000 X 150pixcelで間違いないのですが。。。
もう少し自分でがんばってみます。何かお気づきの点がありましたら、教えて頂けるとうれしいです。アウトラインなどでの確認の方法はとても参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既存画像(gif または png)の背...
-
XREA使用で作成したHTMLファイ...
-
FC2ホームページの変更に仕方
-
友達にドッキリをしたくて、ホ...
-
横にリンク先を3つ並べたいのです
-
ホームページビルダーを複数の...
-
jQueryで画面サイズによってス...
-
CSSと無料掲示板を組み込んだサ...
-
ホームページビルダー22でリン...
-
ネットに上げる画像について
-
ワードプレスで、画像の横に文...
-
HTMLリンク飛びがうまくいかない
-
ホームページビルダー19文字化け
-
ホームページの画面文字を濃く...
-
HTMLで、ホームページが作れる...
-
ページの内容コピペ 範囲が広い...
-
ホームページビルダー15で作っ...
-
ビフォアーアフターのページは...
-
今さらですがHPを作成するに当...
-
ホームページ制作で教えてくだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのborderが実際の領域より上...
-
flexboxでフッターが、本文に重...
-
HTMLで、何故か左右のfloatの高...
-
CSSのdivで何故かボックスセン...
-
同じピクセル、解像度のPC表示...
-
div内の classのリンクのつけ方
-
htmlの文字が縦書きになる
-
【ヒトの神秘】美男美女から何...
-
htmlのolやulなどlistにtitleや...
-
widthやheightの数値に単位(px...
-
div要素が重なってします
-
smallにtext-allignが効かない
-
含む含まないという概念自体の...
-
リストマーカーをボックス内に...
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
<h1>、<h2>と<p><div>の行間を...
-
css初心者 フレックスボックス...
-
ボタンをセル内一杯に表示させ...
-
<table>の高さ固定。情報増加時...
おすすめ情報