当position为relative或者absolute或者fixed的时候,可以使用z-index指定当前元素的层级关系,值越大元素就越在上面,从而实现盖住下面元素的目的。但是遇到下面这种情况,会发现z-index值大的确盖不住值小的元素:
代码如下 | 复制代码 |
|
可以看到,第一个li里面的a元素z-index为3,但是盖不住第二个li里面z-index为2的a元素(如果不设置li的z-index,firefox可以但IE6不行)。这是因为z-index会传递父元素的值,当第一个li中的a去覆盖第二个li里面的a时,因为父元素li的z-index值为1,所以盖不住值为2的元素了,这时候只需要设置父元素的z-index的值大于下面的a2,就实现了:
代码如下 | 复制代码 |
|
如果是在同一个父元素下面,则按照z-index值大小来层叠,注意,不管父元素z-index值多大,子元素都能盖再其上面。
关于在ie7下z-index无效解决方法
解决办法:
父级元素加上position:relative;并设置z-index.
父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index.
代码如下 | 复制代码 |
...(要在上层显示的内容) ... |
上面的例子中,倘若将第一个div的z-index设置为-1,则无论p的z-index为多少,多会被下面的div遮住。
相反,倘若下层div的z-index也设置成2,ie7正在解释时,会按照"position:relative"的层的顺序,自动叠加,即实际值是3.
没有加position属性时,所有值继承自父级。