Div+css层的熟练应用

div布局的过程中,经常会遇到div层叠的情况,我们通常有两种解决方式:floatz-index。在大多数的情况下我们选择不占用内存的float来实现层的浮动,但是float存在着很多bug,尤其是复杂的层叠结构下很容易出现意外状况。因此在层叠结构复杂的情况下建议尽量不要使用float而使用z-index

那么z-index的使用有什么技巧和注意事项呢?

z-index可以对你的div进行分级,取值范围:-32767~32767z-index支持负数div默认的层次为0数值越大层次越高,反之越低。接下来我们来做个测试:

Css样式:

.a{width:300px;height:300px;background:#F00;z-index:-1;}

.b{width:300px;height:300px;margin:10px;background:#FF0;}

.c{width:300px;height:300px;margin:20px;background:#00F;z-index:1}

Html布局:

<div class="a"></div>

<div class="b"></div>

<div class="c"></div>

结果:

为什么div没有层叠在一起?

原因是Z-index 仅能在定位元素上奏效,因此我们还要对三个div加上position:absolute

.a{width:300px;height:300px;background:#F00;z-index:-1; position:absolute;}

.b{width:300px;height:300px;margin:10px;background:#FF0;position:absolute;}

.c{width:300px;height:300px;margin:20px;background:#00F;z-index:1;position:absolute;}

看效果:

这里要注意,虽然我们没有对b进行z-index的设置,但是为了不影响其它层的z-index的使用我们要给它也加上position:absolute,不然会出现这样的情况:

 

对于层的位置我们通过topleft来改变的层的位置(相对于body),

这里在引出一个知识点,div嵌套的情况下,父级position: relative,子级position:absolute,子级里的topleft定位是相对于父级div

 

这是我写的第一篇技术贴,写的不好敬请见谅~

你可能感兴趣的:(div+css)