レスポンシブのサイトを作成していたら、何故かスマホのサイズの場合のみ、右側に余白(空間)ができていた。
HTML の構造は以下のようなもの。
<body>
<div id="header" class="clearfix">
<div id="header_inner">
<h1 id="logo">タイトル</h1>
</div>
<div id="navi">
<ul id="navi_menu" class="clearfix">
<li><a href="index.html">Home</a></li>
<li><a href="works.html">Works</a></li>
<li><a href="statement.html">Statement</a></li>
<li><a href="#" class="disabled">Resume</a></li>
<li><a href="contact/contact1.php">Contact</a></li>
<li id="ttt"><a href="#">To the top</a></li>
</ul>
<a id="pull" href="#">Menu<i class="fa fa-bars"></i></a>
</div><!-- end of #navi -->
</div><!-- end of #header -->
<div id="container">
<div id="content">
・・・以下省略
CSS は以下のようなもの(関連部分抜粋)
#header {
width: 100%;
margin: 0;
padding: 0;
position: relative;
height: 120px;
}
#header_inner {
max-width: 930px;
min-width: 320px;
margin: 0 auto;
position: relative;
}
#container {
max-width: 930px;
min-width: 320px;
margin: 30px auto;
position: relative;
}
#content {
width: 100%;
position: relative;
margin: 0 auto;
}
#header の幅は 100% に指定してあるのに、いくつかのページのみスマホのサイズでヘッダーの右側に余白ができる。よく見るとヘッダー部分のみではなく全体に余白ができている。デスクトップ PC でサイズを変更した場合や FireFox の View port resizer では余白が確認できない。
ラッパー要素の #container に「overflow: hidden;」を指定して解決。
#content 内の a 要素が長すぎて(折り返して表示しないため)影響をしていたみたい。その他 max-width やパディングの計算が間違っていたりとかが原因か。。。
但し、スライダーの Next や Prev のアイコンの表示など必要に応じて、画面サイズにより「overflow:」の値を調節する必要あり。