zIndex - 混乱的三次元

南瓜小米粥 发表于 前端开发 分类,标签: zIndex

w3c关于z-index的解释如下:
   定义和用法:z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。元素可拥有负的 z-index 属性值。z-index 仅能在定位元素上奏效(例如 position:absolute/relative;)
   说明:该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。
   可能的值:auto/number/inherit 

简单理解就是,z-index将二次元的web带入了三次元的空间。除了x、y轴之外,通过z-index我们还能操作z轴(在做3D变换时这非常重要)。 

影响元素堆叠顺序都有哪些因素呢:
   1.文档流:默认情况下位于文档流后面的元素会覆盖前面的元素。
   2.定位:position不为static的元素,z-index越大,堆叠优先级越高。 

混乱的现状
   1.为了解决某些bug,不恰当的使用position属性;
   2.z-index值设置的过大,比如99999;
   3.设置position属性,却漏写z-index;
   4.js计算/设置z-index 

混乱的根源
    IE6/7对z-index的表现跟IE8及以上浏览器不一致。position值为非static时,如果不设置z-index属性,IE6/7下z-index默认为0,而IE8及以上浏览器z-index为auto,且zindex:auto的元素不参与堆叠优先级比较。

« 上一篇:没有了 阿里巴巴 国际站UED招聘:下一篇 »

发表我的评论