うぇぶもよう

親要素の幅に関係なくブラウザ幅いっぱいに要素を表示する方法

デザインしてるときに、**「ここだけブラウザの端から端まで背景を伸ばしたい!」**って場面ありませんか?

でも、要素が親要素に囲まれていると、width: 100% にしても親の幅に制限されちゃうんですよね。

今回は、親要素の幅に左右されず、ブラウザ幅いっぱいに表示する方法をご紹介します!


どういうときに使うの?

例えばこんなとき👇

サンプル

See the Pen
親要素の幅に関係なくブラウザ幅いっぱいに要素を表示する方法
by webmoyou (@yydliugt-the-animator)
on CodePen.

よくある失敗例

<div class="wrapper">
  <div class="full-bg">背景を横いっぱいにしたい</div>
</div>
.wrapper {
  max-width: 960px;
  margin: 0 auto;
}

.full-bg {
  background: #d8f2d1;
  padding: 30px;
  width: 100%;
}

この場合、.full-bgwidth: 100%.wrapper の幅を基準にしてしまうので、結局中央寄せのまま背景がはみ出ない…!

解決法:position: relative;left/right を使う!

.full-bg {
  background: #d1f1f2;
  padding: 30px 0;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

仕組みのポイント

注意点

まとめ

モバイルバージョンを終了