【html css】ヘッダー上部の空白を消す方法

スポンサーリンク

はじめに

f:id:shangtian:20190227214110p:plain

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部分の上の空白を消すことが出来た。 f:id:shangtian:20190227215830p:plain

下の2つのコードは変更後のhtmlとcssの全体のコードです。

gistfbfdf010f5ad0e624d8049808c84bd8d

gist2643ae932fbccf7d07fbc9acf3f14325

余白が出来る理由

おそらく大きく2つあると思われる。1つ目はブラウザがデフォルトで
設定しているcssだとbody部分にmargin: 8px;かかってしまっている。

f:id:shangtian:20190227222320p:plainf:id:shangtian:20190227222324p:plain  

2つ目はheader内にh1タグなどを追加すると、h1のmarginがかかって
しまっている。

このスクリーンショットのmargin部分の絵をみるとtopとbottomは0では無い。そのため空白ができてしまう。 f:id:shangtian:20190227222558p:plain

まとめ

header部分に空白が出来るときはcss

body {
   margin: 0;
}

/* hader部分に入っているh1につけたid*/
#title{
   margin: 0;
}

とすれば解決する。

参考文献

css ヘッダー上部の空白を消す - Qiita

【HTML・CSS】 ページ上部の隙間(余白、空白)を消す(埋める、詰める)方法 | 8cmプログラミング