ブラウザの幅に合わせてWebページの一部を作成しようとしています。このため、width: 100%
を使用しています。問題は、スクロールバーが表示され、overflow-x: hidden;
を使用できないことです。コンテンツの一部が非表示になるので、どうすれば修正できますか?
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px;
margin-left: 10px;
padding: 0;
-webkit-user-select: text;
}
position: absolute
を使用しているため、以下を使用する代わりに:
width: 100%; margin-right: 10px; margin-left: 10px
あなたは使うべきです:
left: 10px; right: 10px
これにより、要素は利用可能な全幅を使用し、左右に10px
スペースが確保されます。
#news
アイテムのmargins
を削除する必要があります
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px; /*REMOVE THIS*/
margin-left: 10px; /*REMOVE THIS*/
padding: 0;
-webkit-user-select: text;
}
これが機能しない場合は、要素自体にmargin
およびpadding
を設定している可能性があります。あなたのdiv
-それがあなたが使っているものなら-スタイルシートまたはベースブラウザのスタイルのいずれかにスタイルが適用されているかもしれません。それらを削除するには、マージンを0
に明確に設定し、!important
も追加します。
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin: 0 !important;
padding: 0 !important;
-webkit-user-select: text;
}
絶対配置要素についても同様の問題があり、幅を100%にしたいと思いました。これは私が使用したアプローチであり、私の問題を解決しました:
box-sizing=border-box
そうでなければ、私は常に小さなコンテンツとパディングがスクロールバーを超えて押していました。
幅を100%に設定しているようですが、幅を強制的に広げる余白もあります。
「cssフレキシブル(2つまたは3つの列)レイアウト」のグーグルを試してください。
ここに例があります
<div id="cont">
<div id="menu"></div>
<div id="main"></div>
<div class="clear"></div>
</div>
そしてCSS
#menu{
float:left;
height:100%;
width:200px;
}
#main{
padding-left:200px;
}
.clear{clear:both;}
#menu div
、左揃えになり、静的幅は200px
。 #main div
、以下で「開始」します#main
、しかしそれのために200px padding
(マージンにすることもできます)そのコンテンツと子要素が開始されます-#menu
終了します。
#main
からパーセント幅(たとえば、100%
)200ピクセルの左パディングが追加され、X軸にスクロールバーを追加してレイアウトを壊すためです。
答えは、divを100%より広くするマージンセットがあることです。したがって、スクロールバーです。
マージンを取り除くことができる場合は、それを実行してください!ただし、多くの場合、マージンが必要になります。この場合、すべてをコンテナーdivでラップし、マージンを0に設定し、幅を100%にします。