2011-01-13 20 views
2

背景親divの高さを子divのパディング/ボーダー/マージンを反映させる良い方法はありますか?

は、私は、次のHTMLコードを持っている:

<div id="parent"> 
    <div id="child"> 
     I'm the child! 
    </div> 
</div> 

は私が親のdivは、CSSプロパティposition: absolutebottom: 0pxと同様に、ページの下部に相対して配置することにしたいです。

これは、子divにパディングや境界線がない場合に問題ありません。しかし、this JSFiddle exampleに示されているように、子に詰め物や枠線がある場合は、親divの下部を超えて展開されます(レンダリングされたページがスクロール可能で、子divの追加コンテンツがページの下にあります)。

質問

親のdivは完全に子供のdiv垂直包含することを確認するための最良の方法は何ですか? (私が間違っている場合は私を修正しますが、これは水平のパディング/ボーダーに問題はないと思われます)

私の最善のアイデアは、パディング/ボーダー/マージンの合計を親div。実際のCSSを生成するためにSASSのようなものを使用すると、これはやや美味しいものになりますが、まだまだ真実ではないようです。より良い方法がありますか?

ありがとうございます!

+0

あなたが達成しようとしていることは、パディングまたはマージンで行うことはできないと思います。これらは異なる目的を持っています。パディングが親divを超えているという事実は正常です。 –

答えて

1

あなたがそれらのdisplay: inline;を取り除く場合には(私は右の境界に子div要素に欠けていた。JSFiddleか何かでこの単なるまぐれですか?気づいJSFiddle例を作っサイドノートとして)それは魅力のように働くでしょう。

+0

キーは 'display:inline;'を削除しているようです。なぜなら、 'display'のドキュメントを見た後でも、なぜこれがうまくいくのか分かりません。私が理解していることから、インラインでは、親の幅をとり、先行され、その後に改行が続きます。何が起こっているのか分かりますか? – Foxichu

+0

あなたが話しているようなものはdisplay:blockです。とにかくdiv要素のデフォルトです。ブロックとインライン要素とボックスモデルについて読むべきです。 http://www.quirksmode.org/css/display.html、http://www.yourhtmlsource.com/stylesheets/cssspacing.html、http://google.com – kapa

+0

返信いただきありがとうございます箱のモデルでは、ディスプレイで少し小さくなりましたが、私は読んだことがあります。私が言ったように、私はまだ 'display:block'がなぜこのような場合に"フォームフィッティング "になるのか不明です。 – Foxichu

関連する問題