body
にoverflow-x: hidden
をかけるとブラウザ表示では非表示にできましたが、スマホエミュで見ると全然非表示にされていませんでした(スマホ実機でも同じ)。
というわけで、body
にoverflow: hidden
が効かない原因と対処法を紹介します。
overflow-x: hiddenしても横スクロールが発生する
ブラウザ幅を狭めたときは横スクロールは出ていないのに、エミュだと横スクロールが発生しているのが分かりますね。
ちなみにコードはこんな感じ。
HTML
<body>
<div class="item">これは500pxの要素です</div>
</body>
CSS
body {
overflow-x: hidden;
}
.item {
width: 500px;
height: 500px;
background-color: pink;
}
bodyにoverflow-x: hiddenが効かない原因
body
にoveflow-x: hidden
が効かないのはCSSがそういう仕様だからです。こればっかりはもうしょうがない。html
にも効かないらしいです。
bodyにoverflow-x: hiddenが効かない時の対処法
body
直下に全体を囲むdiv
を用意して、それにoverflow-x: hiddenをかければokです。
HTML
<body>
<div class="wrapper"> <!-- ←追加 -->
<div class="item">これは500pxの要素です</div>
</div>
</body>
CSS
/* body直下の全体を囲むタグに指定 */
.wrapper {
overflow-x: hidden;
}
.item {
width: 500px;
height: 500px;
background-color: pink;
}
たったこれだけです。知ってればなんてことないですが、知らないとハマりそうですね…。
横スクロールが出てると急激にサイトが使いづらくなるので気をつけたいところです。