请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2022-1-25 09:57 编辑
web页里,两个或两个以上的元素在相同的位置上出现的现象被称为元素堆叠。我们这里所关心的,是元素位置相同或彼此间位置有重合时,它们是如何相互影响的,也就是,本帖要达成的目的是,弄清楚元素在z轴的展现谁在前谁在后的问题。
为了方便比较,我们需要堆叠的元素放置在一个有定位的父容器中,父容器不参与位置对比。然后我们设置两个背景色不同的并列子div并令其绝对定位于相同点之上。
<style type="text/css"> /* 父容器:比武战场 */ .wuBox { margin: 0 auto; padding: 10px; width: 300px; min-height: 300px; position: relative; border: 1px solid; }
/* 武松 */ .wusong { position: absolute; width: 200px; height: 200px; left: 0; top: 0; background: olive; }
/* 武大 */ .wuda { position: absolute; width: 100px; height: 100px; left: 0; top: 0; background: tomato; } </style>
CSS搭好台了,HTML开始上映:
<div class="wuBox"> <div class="wusong">武松</div> <div class="wuda">武大</div> </div>
效果如下:
看效果,两人都挂着胸牌和背牌上场的,牌子现在见武大的,武松躲在了大哥的背后。为啥?这是代码流使然:代码后出现的元素离观众席更近。有的菇凉只崇拜武松,嫁人就不能嫁武大这样的人,所以不愿意让武松被挡住,怎么办?不用调整位置,只需给武松的CSS加入一个 z-index 属性,给它赋个值,如 z-index:999 这样的,数字越大,该元素就越靠前,在z轴之上离观众席就越近。为了保险起见,也给武大一个 z-index 值,比如 z-index:-1 这样的(当然也不用那么夸张,998就可以了),他就永远躲在了弟弟的后面:
代码:
<div class="wuBox"> <div class="wusong" style="z-index:999;">武松</div> <div class="wuda" style="z-index:-1;">武大</div> </div>
效果:
这里需要特别注意:z-index只作用于设置了position属性的元素。另外,如果父容器也设置更高的z-index值,是不是武家两兄弟都只能待在台后?不会,父元素不和子元素抢地盘,它只给子容器提供地盘,它的z-index值针对的是它和它的子元素之外的元素。 |