`
artificer
  • 浏览: 2190 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

DIV+CSS制作网页之如何设置z-index

 
阅读更多

----此文章转自http://www.poluoluo.com/jzxy/200905/59899.html

 

[参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2 ]
[操作系统:Windows]

貌似很多同学对为什么这个div在上层,那个div在下层、无论如何设置z-index都无法居上的问题纠结抓狂、上吐下泻、恶心失眠、郁郁而终,致使不敢随意使用层的叠加。但层的叠加效果,在交互设计中却频频出现,所以我们必须驾驭它,要驾驭它,就要掌握其规律。

首先明确几点在文中所需要用到的概念

  1. 静态定位:position:static(为position属性的默认值)。
  2. 动态定位:position:relative或position:absolute或position:fixed。
  3. 祖元素:任意包含该元素的元素。
  4. 父元素:直接包含该元素的祖元素。
  5. 同辈元素:拥有共同的父元素的元素。

注:这些概念为作者自定义,仅用于本文。

引用:

关于同辈元素是个非常关键的词,这里还需要详细解释一下。

<div>
    <div></div>
    <div id="a"></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
<div id="f">
    <div></div>
    <div id="b"></div>
    <div id="c"></div>
    <div></div>
    <div></div>
    <div></div>
</div>

在这个例子中,div#a与div#b并不是“同辈元素”,只有像div#b和div#c这样拥有同样父体div#f的的元素才能叫“同辈元素”。

引用结束

接下来看看这五条法则

法则一:同辈元素定位方式相同,且无z-index设置时,html靠后者居上。

运行代码框

 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

 

 

破洛洛文章简介:貌似很多同学对为什么这个div在上层,那个div在下层、无论如何设置z-index都无法居上的问题纠结抓狂、上吐下泻、恶心失眠、郁郁而终,致使不敢随意使用层的叠加。但层的叠加效果,在交互设计中却频频出现,所以我们必须驾驭它,要驾驭它,就要掌握其规律。

 

 

 

法则二:同辈元素同为动态定位时,且有z-index设置时,z-index值大者居上。

运行代码框

 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

法则三:同辈元素定位方式不同时,动态定位居上。

 

运行代码框

 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

法则四:非同辈元素,任意一者及其祖元素不具备动态布局时,html靠后者居上。

运行代码框

 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

 

 

破洛洛文章简介:貌似很多同学对为什么这个div在上层,那个div在下层、无论如何设置z-index都无法居上的问题纠结抓狂、上吐下泻、恶心失眠、郁郁而终,致使不敢随意使用层的叠加。但层的叠加效果,在交互设计中却频频出现,所以我们必须驾驭它,要驾驭它,就要掌握其规律。

 

 

法则五:【重要】非同辈元素,任意一者或其祖元素拥有动态定位时,同时各自向上寻找动态定位的祖元素,并分别从中拿出具备最高级别的祖元素(或其本身)进行比较。

情况1:子元素的z-index无论多大,父元素大者居上。

情况2:父元素居下,子元素也可以居上。

情况1、情况2结合扩展比较。


运行代码框

 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

引用:

其实前四点都是基础,只有第五点比较难于理解,这里详细解释一下:

<div id="ab" style="position:absolute;">
    <div id="a" style="position:relative; z-index:100;">
        <div id="a_inner1">
            <div id="a_inner2">
                <div id="a_inner3" style="position:relative; z-index:98;">
                    <div id="a_inner4">
                        <div id="a_inner5">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div id="b">
        <div id="b_inner1">
            <div id="b_inner2">
                <div id="b_inner3" style="position:relative; z-index:99;">
                    <div id="b_inner4">
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

在这个例子中,我们来比较div#a_inner5和div#b_inner4的层叠关系。
到它们所共同拥有的祖元素div#ab的下一级为止,div#a_inner5的祖元素包括:div#a,div#a_inner1,div#a_inner2,div#a_inner3,div#a_inner4;div#b_inner4的祖元素包括:div#b,div#b_inner1,div#b_inner2,div#b_inner3。
然后分析它们的祖元素中具有动态定位的:div#a_inner5的祖元素中含有动态定位的元素有:div#a,div#a_inner3;div#b_inner4的祖元素中含有动态定位的元素有:div#b_inner3。
然后再拿出最高级进行比较:div#a > #div#b_inner3。

父元素居下,子元素也可以居上的情况,则是利用非同辈元素在祖元素具备动态布局时,其比较已经与position:static无关,而其祖元素却可以通过html的位置来进行比较。

引用结束

当然,有时候还存在特例,比如flash、比如ie6中的select无法遮住,这些都属于异常情况,大家可以自己搜索一下相关文章。

 

分享到:
评论

相关推荐

    妙用z-index让一个div显示在最前面

    position定位如果有重叠的时候,z-index愈大,就显示在最上面 此时我们就可以设置div的css样式z-index:99999,那么该div就显示在最前面

    阴影效果 div+css

    #login_t { z-index:10;border:1px solid #006600;width:200px;height:200px;background:#FFF;margin:-35px 0 0 595px; position:absolute;} #info{ background:#009900; height:155px;} &lt;div id="info"&gt; &lt;div id=...

    精通CSS+DIV网页样式与布局视频教材

    精通CSS+DIV网页样式与布局 视频教材主要内容 迅雷下载地址: 目录 第1部分 CSS基础知识篇 第1章 CSS的初步体验 1.1 CSS的概念 1.1.1 标记的概念 1.1.2 传统HTML的缺点 1.1.3 CSS的引入 1.1.4...

    div层调整z-index属性无效原因分析及解决方法

    在CSS中,只能通过代码改变层级,这个属性就是z-index,要让z-index起作用有个小小前提,就是元素的position属性要是relative,absolute或是fixed。 1.第一种情况(z-index无论设置多高都不起作用情况): 这种情况...

    CSS--z-index详解1

    抱歉,服务器出了点问题... - 简书屏幕快照 -- 上午...png因为div A的z-index值没有设置,默认就是auto,不会处于堆叠上下中,所以就不会

    后盾网DIVCSS系列视频教程(24集)

    教程名称:后盾网DIV CSS系列视频教程(24集)课程目录:0.DIVCSS视频教程之css_11.DIVCSS视频教程之position定位属性Z_INDEX堆迭顺序10 DIV CSS视频教程之css背景属性11.DIV.CSS视频教程-表格样式12.DIV.CSS视频...

    div层调整z-index属性在IE中无效原因分析及解决方法

    在CSS中,只能通过代码改变层级,这个属性就是z-index,要让z-index起作用有个小小前提,就是元素的position属性要是relative,absolute或是fixed。 1.第一种情况(z-index无论设置多高都不起作用情况): 这种...

    深入理解css中position属性及z-index属性(推荐)

    最后将会介绍和position属性密切相关的z-index属性。 第一部分:position: static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到top,bottom,left,right的影响。 如...

    基于Jquery+div+css实现弹出登录窗口(代码超简单)

    z-index:9998; z-index:9999; 值越大越在前面 index.html &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;...

    Div+Css实现屏蔽效果

    使一个事先定义好的div 显示, 并用Css控制位置,其中的z-index属性必须有, 值赋的越大,说明此div层在重叠时,在最上面。 其中要注意的地方: 【遮罩层的大小】1、用JS判断你的显示器分辨率,获取长与宽两个参数,...

    解决CSS中子元素z-index与父元素兄弟节点的层级问题

    1.问题的出现 写了一个平铺的列表,其中有些列表项具有hover出现的弹出... &lt;div class=content&gt;列表项1&lt;/div&gt; &lt;div class=hover&gt;弹出框1&lt;/div&gt; &lt;/div&gt; &lt;div class=unit&gt; &lt;div class=content&gt;列表项2&lt;/div&gt; &lt;/div&gt;

    ie下的css层叠z-index各种问题详细整理

    可是真有些日子没有写DIV+CSS了,而且对IE6兼容性的坑碰到的还是不够多(以前做国外项目),所以这次开发中不可避免的碰见了几个问题,尤其是在IE下的 z-index 问题很有意思,所以整理了一些资料和总结分享给大家…注...

    div+css 定位浅析

    没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 2、relative:生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常位置进行定位。可通过z-index进行层次分级...

    DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加

    1、z-index 重叠顺序属性 2、position:relative和position:absolute设置对象属性为可定位(可重叠) 3、left right top bottom绝对定位具体位置设置 配合的样式 1、css width 2、css height 3、background 为了...

    CSS的z-index实例代码

    写了个最简单的DEMO,演示了3个DIV互相遮盖的情况。记住:z-index要配合position属性才有效

    css 层叠与z-index的示例代码

    既然是叠加,就会涉及到先后顺序的问题,规范中称之为“层叠等级”。 默认情况下,图文是网页的核心,因此内联元素的等级理应最高;然后是布局,其中浮动元素(脱离文档流)的等级高于块级元素;最低等级是设置背景...

    零基础学HTML CSS源代码

    div.css 名为div的样式文件。 style.css 名为style的样式文件。 第15章(源代码\第15章) 示例描述:本章演示CSS基础部分知识。 CSS基础.html 演示CSS基础链接知识用法。 style1.css ...

    html+css+js clock钟表

    z-index:20;} .hour_line{width:100px;height:4px;top:198px;left:200px;background-color:#000;border-radius:2px; transform-origin:0 50%;box-shadow:1px -3px 8px 3px #aaa;} .minute_line{width:130px;...

Global site tag (gtag.js) - Google Analytics