因为显示器显示的图案是一个二维平面,拥有x轴和y轴来表示位置属性。为了表示三维立体的概念如显示元素的上下层的叠加顺序引入了z-index属性来表示z轴的区别,表示一个元素在叠加顺序上的上下立体关系。

 
可能的值:
               
 
注释:  所有主流浏览器都支持 z-index 属性。任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。
 
          IE6/7下position不为static,且z-index不存在时z-index为0,除此之外的浏览器z-index为auto。
 
          z-index为auto的元素不参与层级关系的比较,由向上遍历至此且z-index不为auto的元素来参与比较。
 
概念:
 
z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。z-index 仅能在定位元素上奏效。
 
 
              
 
演示:
 
1. 两个div,无设置z-index,第二个粉色div向上移动50px时,正常显示如下图。
 
<div style="width:200px;height:200px;background-color:#f5ff7d;"></div>

<div style="width:100px;height:100px;background-color:#ff7a74;position:relative;top:-50px;"></div>

 
                
---------------------------------------------------------------------------------------------------
 
2. 粉色div设置z-index为-5时,如下图。(注:粉色div已设置position : relative ,故z-index可生效 )
 
<div style="width:200px;height:200px;background-color:#f5ff7d;"></div>
<div style="width:100px;height:100px;background-color:#ff7a74;position:relative;top:-50px;z-index:-5;"></div>

               
              
---------------------------------------------------------------------------------------------------
 
3. 黄色div设置z-index为30,粉色为25时,30>25,结果如下图。
 
<div style="width:200px;height:200px;background-color:#f5ff7d;z-index:30;"></div>

<div style="width:100px;height:100px;background-color:#ff7a74;position:relative;top:-50px;z-index:25;"></div>

 
               

z-index属性适用于定位元素(position属性值为 relative 或 absolute 或 fixed的对象),用来确定定位元素在垂直于显示屏方向(称为Z轴)上的层叠顺序,也就是说如果元素没有定位,对其设置的z-index是无效的。虽然黄色div的z-index比粉丝div的大,但是由于黄色div未定位,其z-index属性未起作用,所以仍然会被粉色div覆盖。
          
---------------------------------------------------------------------------------------------------
 
相同z-index:
     
1. 如果两个元素都没有定位发生位置重合现象或者两个都已定位元素且z-index相同发生位置重合现象,那么按文档流顺序,后面的覆盖前面的。
     
<div style="width:200px;height:200px;background-color:#f5ff7d;position:relative;z-index:1;"></div>

<div style="width:100px;height:100px;background-color:#ff7a74;position:relative;top:-50px;z-index:1;"></div>

 
               
 
2. 如果两个元素都没有设置z-index,使用默认值,一个定位一个没有定位,那么定位元素覆盖未定位元素
 
<div style="width:200px;height:200px;background-color:#f5ff7d;position:relative;top:50px;"></div>

<div style="width:100px;height:100px;background-color:#ff7a74;"></div>
 
               
                    
 ---------------------------------------------------------------------------------------------------
 
父子z-index关系处理:
 
1. 如果父元素z-index有效,那么子元素无论是否设置z-index都和父元素一致,在父元素上方
 
<div style="width:200px;height:200px;background-color:#f5ff7d;position:relative;z-index:10;">
  <div style="width:100px;height:100px;background-color:#ff7a74;position:relative;z-index:-5;"></div>
</div>
               
               
 
---------------------------------------------------------------------------------------------------
 
2. 如果父元素z-index失效(未定位或者使用默认值),那么定位子元素的z-index设置生效        
     
<div style="width:200px;height:200px;background-color:#f5ff7d;position:relative;">
  <div style="width:100px;height:100px;background-color:#ff7a74;position:relative;z-index:-5;"></div>
</div>
               
       
---------------------------------------------------------------------------------------------------

兄弟子元素z-index关系处理:

如果兄弟元素的z-index生效,那么其子元素覆盖关系有父元素决定
 
<div style="width:100px;height:100px;background-color:#f5ff7d;position:relative;z-index:5;">
  <div style="width:50px;height:250px;background-color:#ff7a74;position:relative;z-index:50;"></div>
</div>

<div style="width:100px;height:100px;background-color:#c6c500;margin-top:-10px;position:relative;z-index:10;">

  <div style="width:30px;height:150px;background-color:#5ddaff;position:relative;z-index:-10;"></div>

</div>

               
 

虽然第一个div的子元素(即s1)的z-index比较高,但是由于其父元素(即f1)z-index比第二个平级div(即f2)低,所以第一个div子元素(即s1)会被第二个父辈div(即f2)及其子元素(即s2)覆盖

 
 

z-index优先级总结的更多相关文章

  1. samba、nginx服务

    一.部署samba Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,Samba主要用于Linux或UNIX和Windows系统之间的文件共享. SMB( ...

  2. CSS/CSS3语法新特性笔记

    CSS层叠样式表 三大特性 层叠性:相同的样式会覆盖 继承性:属性可向下继承 优先级:范围越小权重越高 选择器 基础选择器 标签选择器 1 body { 2 color:#fff; 3 } 类选择器 ...

  3. 运用<div>布局页面练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 关于Cewu Lu等的《Combining Sketch and Tone for Pencil Drawing Production》一文铅笔画算法的理解和笔录。

     相关论文的链接:Combining Sketch and Tone for Pencil Drawing Production 第一次看<Combining Sketch and Tone f ...

  5. 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT。

    laviewpbt  2014.8.4 编辑 Email:laviewpbt@sina.com   QQ:33184777 最近闲来蛋痛,看了一些显著性检测的文章,只是简单的看看,并没有深入的研究,以 ...

  6. C# 金钱 小写转大写的算法

    调用 ConvertMoney的ConvertMoneyToWords(decimal money)方法即可 using System; using System.Collections.Generi ...

  7. 【Unity3D】利用Shader以及更改Mesh实现2D游戏的动态阴影效果

    最近看到一个非常有趣的益智小游戏,是一个盗贼进入房子偷东西的, 其实这种游戏市面上已经很多了,吸引我的是那个类似手电筒的效果, 主角走到哪里,光就到哪里,被挡住的地方还有阴影.有点类似策略游戏里的战争 ...

  8. 来看看css3中的box-shadow

    不谈IE,只谈谈box-shadow的具体使用方法 语法: E {box-shadow: <length> <length> <length>?<length ...

  9. img和css背景的选择

    在什么情况下更适合使用HTML IMG标签来显示一个图像,而不是一个CSS有背景图像,反之亦然? 如下场景使用img标签比较合适: 1.如果图像是等内容的一部分或图表或人(真正的人,而不是股票图人), ...

  10. 深入理解CSS中的层叠上下文和层叠顺序(转)

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道 ...

随机推荐

  1. C#语言的新特性及相关信息

     .ENT版本 NET 2.0 :CLR, WinForms ,Wed Services,ASP.NET NET 3.0 :WCF,WF,WPF,CardSpace NET 3.5 :LINQ ,AJ ...

  2. 3 Longest Substring Without Repeating Characters(最长不重复连续子串Medium)

    题目意思:求字符串中,最长不重复连续子串 思路:使用hashmap,发现unordered_map会比map快,设置一个起始位置,计算长度时,去减起始位置的值 eg:a,b,c,d,e,c,b,a,e ...

  3. 利用Warensoft Stock Service编写高频交易软件

    利用Warensoft Stock Service编写高频交易软件 无论是哪种交易软件,对于程序员来讲,最麻烦的就是去实现各种算法.本文以SAR算法的实现过程为例,为大家说明如何使用Warensoft ...

  4. Js字符串判断

    判断字符串 str=''; if(!str) // str为null 或者"" 或者0

  5. 手写 title 提示

    jquery实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  6. JQuery学习笔记【CSS选择符】--02

    Jquery的程序入口: <html> <head> <title></title> <script type="text/javasc ...

  7. 一个用python实现的东方时尚(驾校)抢课程序

    2014-12-23 东方时尚约车还要网上选课,资源太紧张了,于是我决定自己写一个抢票程序来帮我刷票. 第一步,抓包.浏览器登陆选课系统,用抓包工具观察网络行为,这里我用的fildder.这里抓包主要 ...

  8. python Template中substitute()的使用

    在python中Template可以将字符串的格式固定下来,重复利用. Template属于string中的一个类,要使用他的话可以用以下方式调用: from string import Templa ...

  9. 以k个元素为一组反转单链表

    Example: input: 1->2->3->4->5->6->7->8->NULL and k = 3 output:3->2->1- ...

  10. 基于memcached中命令分析函数tokenize_command改造的split函数

    今天使用C重构php代码,需要手写一个split函数,于是就模仿memcached中获取用户命令的函数 static size_t tokenize_command(char *command, to ...