[解決済み] 縦スクロールバーを表示したときのボディの高さ100
2022-12-15 17:02:05
質問
好奇心で、以下の例を考えると、なぜ#container divにマージンがあると、ブラウザに垂直スクロールバーが表示されるのでしょうか?コンテナの高さは、100% に設定されている本体の高さよりはるかに小さいです。
コンテナ以外の要素について、パディングとマージンを0に設定しました。なお、#container divの絶対位置指定は意図的に省略しています。この場合、ブラウザはどのようにbodyの高さを計算し、マージンはそれにどのように影響するのでしょうか?
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { padding:0; margin:0;}
html, body { height:100%; }
#container
{
padding:10px;
margin:50px;
border:1px solid black;
width: 200px;
height: 100px;
}
</style>
</head>
<body>
<div id='container'>
</div>
</body>
</html>
また、この例は JSFiddle
どのように解決するのですか?
の背景を塗ると
html
と
body
(それぞれに色をつける)
を見ると、すぐに気づくだろう。
body
と共に下にシフトされていることに気づくでしょう。
#container
であり
#container
の先頭からオフセットされているわけではありません。
body
の先頭から全くずれていません。これは
マージン崩壊
の副作用で、詳しくは
ここで
を参照してください (ただし、この回答では少し異なるセットアップを説明しています)。
を宣言しているので、スクロールバーが表示されるのはこの動作のせいです。
body
の高さが 100%になるように
html
. 実際の高さは
body
の実際の高さは影響を受けません。マージンは高さの計算に決して含まれないからです。
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
ローカルリソースのロードが許可されていない問題を解決する
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] ボディの高さをブラウザの高さの100%にする
-
[解決済み] Bootstrap3による垂直方向の整列
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み] 親ディバイスの高さを指定せずに、子ディバイスの高さを100%にする方法は?
-
[解決済み】Iframeをコンテナの残り高さの100%にフィットさせる
-
[解決済み] Twitter Bootstrap: コンテナ内のdivを100%の高さにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bootstrap 3.3.7で改行する方法
-
[解決済み] cssのfit-contentで横幅を自動サイズ調整する
-
[解決済み] 入力テキストボックスの値を取得する
-
[解決済み] CSSだけでリンクを無効化する方法
-
[解決済み] Bootstrap 3 の sr-only とは何ですか?
-
[解決済み] label要素の中にinput要素を入れるべきですか?
-
[解決済み] CSS背景のストレッチとスケール
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
-
[解決済み] 要素の幅はパディングを含むか?
-
[解決済み】このCSSのmargin-topスタイルが機能しないのはなぜですか?