CSS 子要素を親要素からはみ出して画面いっぱいに表示させる方法とWindowsブラウザの注意点
目次
どのようなデザインなのか
上の画像のように一部のコンテンツのみ背景色が画面いっぱいに広がって表示させるデザイン。
コーディングする際に、いくつか方法と注意点があるのでご紹介します。
親要素からはみ出して画面いっぱいに表示させる方法 その1
まずは幅を指定した要素の中に<section>を入れ、画面いっぱいに広げたい要素のみ marginとpadding を使用する方法です。
HTMLの構造がシンプルなため、使用する頻度は高いのですが注意点があります。
HTML
<div class="containt">
<div class="inner">
<section class="box1">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</section>
<section class="box2">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</section>
<section class="box3">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</section>
</div>
</div>
CSS
.containt{}
.inner{
width: 1000px;
margin: 0 auto;
}
.box2{
margin: 0 calc(50% - 50vw);
padding: 0 calc(50vw - 50%);
background-color: gold;
}
WindowsのEdge・Chromeではみ出た時の対処法
width: 100vw;を指定する場合と同様に、この方法では Windows の Edge・Chrome などスクロールバーが表示させれるブラウザではスクロールバーの分だけ横にはみ出してしまいます。
CSSで親要素にoverflow-x: hidden;を指定することで対処が可能です。
.containt{
overflow-x: hidden;
}
親要素からはみ出して画面いっぱいに表示させる方法 その2
それぞれの<section>ごとに幅を指定した要素を入れる方法です。
その都度 指定が必要なため手間ですが特定のブラウザで不都合がでる心配がありません。
HTML
<div class="containt">
<section class="box1">
<div class="inner">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</div>
</section>
<section class="box2">
<div class="inner">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</div>
</section>
<section class="box3">
<div class="inner">
<h2>タイトル</h2>
<!-- コンテンツの内容が入ります -->
</div>
</section>
</div>
CSS
.inner{
width: 1000px;
margin: 0 auto;
}
.box2{
background-color: gold;
}
いかがだったでしょうか。日々勉強!
Our Signature Products, Born from Insight.
提案から生まれた、
MARBLEの代表プロダクト
お客様の課題を起点に、MARBLEが自ら構想し、
仕組みからデザイン、開発、運用まで一貫してつくり上げたプロダクト群です。
業務改善、運営効率化、新たな顧客体験の創出など、
企業の事業成長に直結する“実装された解決策”を形にしています。
-
01 入退場システム
Entry System
全国15店舗、会員数50万人以上のこども向けパークで稼働する入退場・決済・顧客管理システム。
受付の効率化と回転率の向上を実現し、運営データの一元管理を可能にしています。 -
02 自動配送システム
Delivery Routing
50台のトラック、年間350日の配送を最適化する自動ルート生成システム。
紙のFAXで届く約500件の配送情報をデジタル化し、最適ルートを自動で算出することで、大幅な業務効率化を実現しました。 -
03 会話型コマース連携
Auto Routing
ライブチャットでの接客からEC購入までを一つの導線でつなぐ会話型コマースシステム。
リアルタイムの対話で顧客の購買意欲を高め、高いコンバージョン率につながる仕組みを構築しています。