私はcssを理解しようとしているので、以下の実験的なコードをできるだけ一般的にするために最善を尽くしました.
2 つのボックスがある単純なページがあり、ボックスの 1 つを特定の方法で配置したいと考えていました。その位置をそのように設定する必要がありますがposition:absolute
、絶対divの下にあるdivをいくつか追加したいのですが、さらに親divを子divのサイズに合わせて拡張したいと考えています。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
#outer {
position : relative;
background-color : green;
width : 500px;
height : 500px;
/* overflow : hidden; */
/* I know from working with floating elements inside divs that this works
* to cause parent divs to exand out around floating children, but this
* does not do the same thing here, it lops off the bottom of the child divs
* if I un-comment the preceding line!
*/
}
#inner {
position : absolute;
background-color : blue;
height : 400px;
width : 400px;
top : 10px;
right : 20px;
}
#top_object {
position : absolute;
top : 450px;
}
.object {
position : relative;
width : 450px;
height : 200px;
background-color : yellow;
margin-bottom : 25px;
}
/* The followsing was suggested by:
https://stackoverflow.com/questions/1709442/make-divs-height-expand-with-its-content
But has no effect!
*/
.clear {
clear : both;
}
</style>
</head>
<body>
<div id="outer">
<div id="inner">
</div>
<div id="top_object" class="object">
Top Object
</div>
<div class="object">
Second Object
</div>
<div class="clear"></div>
</div>
</body>
</html>
クラス オブジェクトと id top_object を持つ最初の div を、表示されているように上から絶対距離に配置したいと思います。ただし、さらにオブジェクト div がトップ オブジェクトの下に流れるようにしたいと考えています。つまり、top_object を使用して、クラス オブジェクトを含む div の最初のインスタンスの絶対位置を定義し、クラス オブジェクトを含む次の div を、margin:25px;
ofで設定されている 25 ピクセルのマージンでページを自然に下に流し、 .object
top_object の後に、各オブジェクトのtop:XXXpx;
属性を個別に設定する必要があります。
最初の質問は、なぜ 2 番目のオブジェクトが最初のオブジェクトの上に表示されるのか、また、配置されたオブジェクトがrelative
配置されたオブジェクトの下に流れるようにするにはどうすればよいのかということabsolute
です。
次に、フローティング div が使用されていない場合に、背景 div を展開して子 div の周りに配置するにはどうすればよいですか?
さらに、私は何が起こっているのかを理解するために取り組んでいます. css の背後にあるロジックを理解したいのですが、問題を修正する特定のコード スニペットを見ることはあまりありません。