はじめに
header部分をcssでmargin-top:0;にしても何故か余白が出来きてしまう
ときの原因と対処法が分かったので紹介しておきます。
ちなみにQRコードを生成するサイトを作成中です。
今回の問題はQRコード生成サイトを作る過程で発生しました。
空白が出来てしまう
cssでmargin-topをゼロにしてもheader部分の上が空白になっていしまう。
header { background-color: #EAE14E; height:50px; margin-top: 0; }
空白が空いてしまっているときのcssとhtmlのコード。
gistc115522307128fed193d322cd55d1bd8
gist4139689ab8b6c098a6b3ef407b133133
解決法
body部分のmarginを0に設定しておく
body { margin: 0; }
header内にあるh1タグにid名を振る。今回はid="titile"とした
<header> <h1 id="titile">QR code generator</h1> </header>
このidを降ったh1タグにcssでmargin-topをゼロにする
#title { margin-top: 0; }
これでheader部分の上の空白を消すことが出来た。
下の2つのコードは変更後のhtmlとcssの全体のコードです。
gistfbfdf010f5ad0e624d8049808c84bd8d
gist2643ae932fbccf7d07fbc9acf3f14325
余白が出来る理由
おそらく大きく2つあると思われる。1つ目はブラウザがデフォルトで
設定しているcssだとbody部分にmargin: 8px;かかってしまっている。
2つ目はheader内にh1タグなどを追加すると、h1のmarginがかかって
しまっている。
このスクリーンショットのmargin部分の絵をみるとtopとbottomは0では無い。そのため空白ができてしまう。
まとめ
header部分に空白が出来るときはcssで
body { margin: 0; } /* hader部分に入っているh1につけたid*/ #title{ margin: 0; }
とすれば解決する。