完成イメージ

幅を広げるには色んなパターンがありますが、実際に見てもらうのが早いと思います、下の具体例をご覧ください。
※レスポンシブの設定はしていないのでPCでの閲覧推奨です。

100vw container | CODE PEN

See the Pen 100vw container by netamame (@netamame) on CodePen.

実装方法

CSSの /* POINT! */ と書いた部分を使用して、ウィンドウサイズ幅いっぱい(画面幅いっぱい)に要素を広げています。

親要素(ここでは.wrapper)に overflow: hidden; を当てる理由

width: 100vw はスクロールバーの幅を含むため、overflow: hidden; がないと水平スクロールが生まれてしまいます。上のCodePenで試してみて下さい。

<div class="wrapper">
	<div class="container">
        <div class="fit">ここはコンテナー内に収まります</div>
        <div class="wide-full">ここは画面幅いっぱいに広がります</div>
        <div class="wide-fit">背景は画面幅いっぱい・コンテンツはコンテナ幅</div>
        <div class="wide-right">ここは右側だけ広がります</div>
        <div class="wide-left">ここは左側だけ広がります</div>
	</div>
</div>
.wrapper{
	overflow: hidden;/* POINT! */
}

.container{
    background: lightgray;/* ライトグレー */
    width: 100%;
    max-width: 900px;
    margin-inline: auto;
    padding: 20px 60px;
}

/* コンテナ内に収めます */
.fit {
	background: darkgray;/* ダークグレー */
	padding: 20px;
}

/* 画面幅いっぱいに広げます */
.wide-full {
    background: lightcoral;/* レッド */
    margin-top: 20px;
    padding: 20px;
    margin-inline: calc(50% - 50vw);/* POINT! */
    width: 100vw;/* POINT! */
}

/* 背景は画面幅いっぱい・コンテンツはコンテナ幅 */
.wide-fit {
    background: lightsalmon;/* オレンジ */
    margin-top: 20px;
    padding: 20px calc(50vw - 50% + 10px);/* POINT! */
    margin-inline: calc(50% - 50vw);/* POINT! */
}

/* 右側だけ広げます */
.wide-right {
    background: cornflowerblue;/* ブルー */
    margin-top: 20px;
    padding: 20px;
    margin-right: calc(50% - 50vw);/* POINT! */
}

/* 左側だけ広げます */
.wide-left {
    background: lightseagreen;/* グリーン */
    margin-top: 20px;
    padding: 20px;
    margin-left: calc(50% - 50vw);/* POINT! */
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です