この問題、すっごーーーーーく苦労しました。
4pxのはみ出しを探す作業が大変すぎました。
悩んでいる方もいると思いますので共有させていただきます。
要素がはみ出しているか確認する方法
デベロッパーツールを使用して確認します。
一番簡単なのが、下記の方法です。
①デベロッパーツールの要素(htmlコードがかいてあるところ)の<body>タグをクリック
②コンソールをクリック
③コンソールの中に「document.documentElement.scrollWidth」を記入
→ 出てくる数字は、ページ全体の幅
④コンソールの中に「document.documentElement.clientWidth」を記入
→ 出てくる数字は表示エリア(デバイスの幅)
そのあとに確認する方法
デベロッパーツールを使用し、HTMLのコードを一つ一つ確認する方法です。
コンテンツの親要素をhoverして、画面左に表示される数値を確認します。
表示幅よりも大きいと、そこに問題があることになります!
私が苦労して見つけたはみ出し
解決方法は、width: 100vw;
私が作成したものは、ヘッダーと固定CTAがありました。
これをposition: fixedにして固定しており、それがはみ出しの原因だったのです。
注意点①
PCブラウザで、スクロールバーがページの外側じゃなく内側に表示されるときは、スクロールバー分を引く必要があります。
→ width: calc(100vw – 17px)
position: fixed の要素(ヘッダーやCTA)には基本不要です!
注意点②
・html や body に overflow-x: hidden; を入れる
・固定しているものに position: fixed に設定している人は、width: 100vw; がおそらくベスト!
その他の解決方法
width:100%にpadding
width:100%の時に、左右にpaddingを入れてしまうと、100%+paddingになるので注意です!
width:auto は、padding分は含まれたものになっています。
詳しくは以前にも記事にしたので参考にしてください!
強制制御
以前別の記事で紹介していたものです。
強制的に制御するものなので、最終手段ですね!
コメント