子要素が親要素を超えてしまう

PC ベースでスタイリングしていたデザインをモバイルで確認したところ、不要な横スクロールが発生してしまうケースがあります。

body やルートとなる要素に width: 100vw; を指定していても、なお発生する可能性があります。ここでは、代表的な 2 つのケースとその対処法を紹介します。

box-sizing を変更する

width: 100%; は、その要素の幅を親要素と同じ幅に設定します。この状態で、水平方向の padding や border を追加した場合、padding や border の分だけ親要素をはみ出してしまいます。

このような場合は、box-sizing: border-box; を指定することで解決します。border-box を指定すると、width やheight の計算方法が変化ます。 padding や border を含めた合計の要素幅がwidth や height として扱われます。

コメントを残す

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