[解決済み】親のパディングを無視した絶対位置決め
質問
絶対位置指定された要素がその親のパディングを尊重するようにするにはどうしたらよいでしょうか?内側の div を親の幅に伸ばし、その親の一番下に配置したいのですが、基本的にはフッターになります。しかし、子要素は親のパディングを尊重しなければならないのですが、それができません。子は親の縁にぴったりと押し付けられています。
だから、こうしたい。
が、こうなってしまいました。
<html>
<body>
<div style="background-color: blue; padding: 10px; position: relative; height: 100px;">
<div style="background-color: gray; position: absolute; left: 0px; right: 0px; bottom: 0px;">css sux</div>
</div>
</body>
</html>
内側のdivの周りにmarginを入れれば実現できるのですが、それを入れない方がいいんです。
どのように解決するのですか?
まず なぜ ということが起こっています。
その理由は、意外なことに、ボックスが
position: absolute
を含むボックスは、親のパディング ボックス(つまり、そのパディングを囲むボックス)です。これは、通常(つまり、静的または相対的な位置決めを使用している場合)、包含ボックスは、親の
コンテンツ
ボックスがあります。
ここで CSS仕様の該当部分 :
祖先がインライン要素の場合、その要素に対して生成された最初と最後のインラインボックスのパディングボックスを囲む境界ボックスが包含ブロックとなる......。そうでない場合,包含ブロックは,祖先のパディングエッジによって形成される。
最もシンプルな方法は、Winterの回答で提案されているように
padding: inherit
の上に、絶対位置の
div
. ただし、この方法が有効なのは、絶対位置決めされた
div
は、それ自身のパディングを追加で持つようにします。最も汎用的な解決策(両方の要素がそれぞれ独立したパディングを持つことができるという意味で)は、次のようなものだと思います。
-
相対的な位置の追加
div
(パディングなし)で、絶対位置のdiv
. その新しいdiv
は親のパディングを尊重し、絶対位置決めされたdiv
がそれを埋めることになります。もちろん、欠点は、単に体裁を整えるためだけにHTMLをいじっていることです。
-
絶対位置指定された要素にパディングを繰り返す(または追加する)。
ここでの欠点は、CSSで値を繰り返す必要があるため、CSSを直接書いている場合はもろいことです。しかし、前処理ツールである
SASS
またはLESS
の場合、変数を使用することでその問題を回避することができます。これは私が個人的に使っている方法です。
関連
-
[解決済み】ボックスにサイズ/部分的なボーダーを宣言する方法はありますか?
-
[解決済み] CSSやSVGで半円を描く
-
[解決済み] divを親の中で自動的に縦に重ねるにはどうしたらいいですか?
-
[解決済み] three.jsの背景を透明や他の色に変更する。
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] 位置は絶対だが、親に対して相対的
-
[解決済み] 子要素の余白が親要素を移動させる
-
[解決済み】CSSで子DIVの幅を親DIVより広くする方法はありますか?
-
[解決済み】絶対位置のdivが親divの高さを拡張するようにした。
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DIVの幅が100%というのは本当の100%ではない
-
[解決済み】div間の空白を削除する
-
[解決済み] "セレクタ(CSS)にIDを使うな "なら、IDの代わりに何を使えばいい?
-
[解決済み] FontAwesomeによる星評価用CSS
-
[解決済み] Bootstrap 4のナバーボタンのアイコンの色を変更するにはどうすればよいですか?
-
[解決済み] Bootstrapコンテナが複数またはネストされていませんか?
-
[解決済み] モバイル端末でCSSを使用したフルハイトの背景画像
-
[解決済み] CSSでitempropをターゲットにする?
-
[解決済み] ブートストラップカラムで画像の下にキャプションを中央配置する
-
[解決済み] HTMLとCSSのBackground-imageが表示されない