在很多情况下都需要实现两个div的重叠(包含层级关系),实现的方法也和div中属性设置的不同也是不一样的,尤其是 position 和 display 的变化. 但是总体上就是对margin( 盒模型 )和top( 定位 )等的运用。margin是属于盒模型中的一部分,修改了margin,就是修改了div元素的大小,但是修改了定位,只是修改了 自己本身的位置 ,不修改元素占用的大小,也不会干扰其他元素的位置。 1. 但是依靠margin来重叠有很大的 局限性 ,图片如下: 这是设置了 黄色div块的margin-top 才实现的,你也可以设置 蓝色div的margin-bottom。 如果你设置黄色div的margin-bottom就不能实现重叠的效果。 2. 当两个div的position为 relative 时,可以同时使用盒模型和定位来实现重叠。使用定位来选择位置时,优先级为top>bottom,left>right,优先级高的会屏蔽低的。 3. 当两个div的position为 absolute 时,那么父元素必须设置一个 定位 属性(不能为默认的static),这样子div才能相对于父div布局。使用伪类样式,设置div的属性position为absolute,
还有属性 z-index:1这个属性设置在层叠里的第几个层
代码如下:
<style type="text/css">
<!--
#Layer1 {
position:absolute
background-color:#0066FF
left:55px
top:26px
width:383px
height:291px
z-index:1
}
#Layer2 {
position:absolute
background-color:#FF0000
left:104px
top:57px
width:250px
height:218px
z-index:2
left: 58px
}
-->
</style>
<body>
<div id="Layer1">sss</div>
<div id="Layer2">aaa</div>
</body>