<html>
<head>
<meta charset="utf-8">
<title>test</title>
<style type="text/css">
#father{
position:relative/*父盒子位置要用relative*/
margin:20px auto
width:400px
height:100px
border:1px solid red
}
#father #a{
position:absolute/*子盒子位置要用absolute*/
width:100%
height:50px
background:blue
opacity:0.6
z-index:2
}
#father #b{
position:absolute/*子盒子位置要用absolute*/
width:100%
height:80px
background:#F4AF19
text-align:right
z-index:1
}
</style>
</head>
<body>
<!--按上面的CSS定位方法布局就会重叠,那个子盒子在前面用Z-INDEX 决定-->
<div id="father">
<div id="a">我是A盒子</div>
<div id="b">我是B盒子</div>
</div>
</body>
</html>
楼主,你第一个问题是因为你所定义的.div1只让包住aaaaa的盒子漂浮了起来,但是aaaaa与bbbbb的内容还属于文本状态,文本状态会使不同标签中的内容,分行显示,也就是aaaaa在第一行,bbbbb在第二行的原因。而由于.div2没有漂浮,所以两者的盒子模型会叠加显示,造成了图一中蓝色只显示了20像素。楼主对两者增加:display:inline就可解决问题
第二个问题:
overflow:hidden这个属性,当盒子没有float状态、并且定义了width、height时,默认会使盒子处于漂浮状态。