Houn

css-over-container
2019.10.16

Web制作メモ

CSSで親要素の幅を超えて画面幅いっぱいに表示する

メインビジュアルやGoogleマップでよく使いそうなやつですね。画像など(子要素)がサイト幅コンテナ(親要素)からはみ出して画面幅いっぱいに表示されます。

サンプルはこちら

Googleマップをディスプレイ横幅いっぱいにしてみました。

指定方法

まずHTMLファイルにて、画面幅いっぱいに表示させたい要素そのものに対してクラスをあてましょう。(この記事ではwidthMaxというクラス名として解説を進めます)

そして、CSSに下記のように書くことで適用されます。


.widthMax { /* 画面幅いっぱいにしたい要素にあてるクラス */
  margin: 0 calc(50% - 50vw);
}

注意点

画像の横幅は充分にあるか?

画像を画面幅いっぱいにしたいとき、画像そのものの横幅が画面幅より小さい場合は期待通りに表示されません。TinyPNGなどの画像圧縮ツールで容量を軽くしつつ、充分に大きい画像を使います。

Googleマップではiframeタグに直接適用しない


<div class="widthMax">
<iframe src="https://www.google.com/maps/〜省略" width="100%" height="450" frameborder="0" style="border:0;" allowfullscreen=""></iframe>
</div>

Googleマップの場合は「地図を埋め込む」で生成されるiframeタグには直接このクラスを指定しません。iframeタグをまずdivタグで囲って、そのdivタグに適用させます。そして、iframeタグ内のwidthを100%にします。

応用編

こう書けば、右側だけに適用されます。

margin: 0 calc(50% - 50vw) 0 0;

マージンの値指定は上・右・下・左の順にかけますので、2番目=右に指定されていますね。

使いどころとしてこんな感じ。positionと併用して、ちょっとオシャレ感を出したいときに。

overcontainer-right

Share on SNSシェア