CSS 精准定位之 z

日期:2020-09-24 类型:科技新闻 

关键词:在线网页制作,建网页,个人简介网页制作,简单网页,建立网页

有关z-index,现阶段遇到的1些难题

1. 一些访问器下元素等级遮住存在bug;

2. 某个元素z-index设的太大,致使自始至终没法被遮住;

3. js动态性测算z-index,致使元素遮盖关联部可控性

 

等级遮住bug出現的缘故:

IE6/7对z-index的主要表现跟IE8及以上访问器不1致。position值为非static时,假如不设定z-index特性,IE6/7下z-index默认设置为0,而IE8及以上访问器z-index为auto,且zindex:auto的元素不参加层叠优先选择级较为。

ff/chrome z-index IE6/7 IE8/9 不设定 0 auto auto number number number number

 等级关联的较为:

先看几点结果:

1. 针对同级元素,默认设置(或position:static)状况下文本文档流后边的元素会遮盖前面的;

2. 针对同级元素,position不为static且z-index存在的状况下z-index大的元素会遮盖z-index小的元素,即z-index越大优先选择级越高;

3. IE6/7下position不为static,且z-index不存在时z-index为0,除此以外的访问器z-index为auto

4. z-index为auto的元素不参加等级关联的较为,由向上遍历至此且z-index不为auto的元向来参加较为。

在上面2点结果的基本上,大家引进“精准定位树”(非w3c官方语汇)的定义来做等级的较为。

在精准定位树这个定义下,访问器在3D渲染dom连接点时,除转化成dom树以外,还会依据dom树中的精准定位元素(position不为static)转化成“精准定位树”:
dom树、精准定位树比照以下(在其中旁边有鲜红色圆圈的表明该元素position不为static):


能够这样了解:精准定位树中包括了dom树中position不为staitc的所有元素。非同级元素较为等级关联能够这样较为:

1. 向上遍历精准定位树的父连接点直至2个元素为同级元素。

2. 依据上面的结果来最最终的较为。等级高的元素会越挨近客户的显示信息器并能遮盖等级低的元素。

 

案例1:假定上图中全部标鲜红色元素position都不为static;且z-index=1,依据上面的较为标准能够了解:

1. c > (b && b *) > (a && a *) 即元素c及c的全部精准定位元素等级比a、b高

2. m > h、 g > k、d > m

案例2:假定a的position不为static,z-index特性不存在,精准定位树中a的子元素z-index1次各自为1,2,3,4...其它精准定位元素z-index:1:

1. 依据结果3有:IE6/7下 b > (a && a *) 即元素b的等级比a及a的全部精准定位元素等级高,其它访问器下:i > h > b > d