CSS 层叠加的5条原则
明确几点在文中所需要用到的概念
- 静态定位position:static(为position属性的默认值)。
- 动态定位position:relative或position:absolute或position:fixed。
- 祖元素任意包含该元素的元素。
- 父元素直接包含该元素的祖元素。
- 同辈元素拥有共同的父元素的元素。
注这些概念为作者自定义,仅用于本文。
引用:
关于同辈元素是个非常关键的词,这里还需要详细解释一下。
- <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靠后者居上。
法则二同辈元素同为动态定位时,且有z-index设置时,z-index值大者居上。
猛点这里测试
法则三同辈元素定位方式不,动态定位居上。
猛点这里测试
法则四非同辈元素,任意一者及其祖元素不具备动态布局时,html靠后者居上。
猛点这里测试
法则五【重要】非同辈元素,任意一者或其祖元素拥有动态定位时,各自向上寻找动态定位的祖元素,并分别从中拿出具备最高级别的祖元素(或其本身)进行比较。
- <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>
情况1子元素的z-index无论多大,父元素大者居上。
情况2父元素居下,子元素也可以居上。
情况1、情况2结合扩展比较。
其实前四点都是基础,只有第五点比较难于理解,这里详细解释一下
在这个例子中,我们来比较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无法遮住,这些都属于异常情况,大家可以自己搜索一下相关文章。
长沙网站设计
- 如何自己建一个网站 自己想建个网站,怎么建
- 如何制作网站免费建站 创建网站免费注册
- html简单网页代码 html简单网页代码超链接
- dreamweaver网页制作 dreamweaver网页制作模板
- 上海网站建设 上海网站建设制作微信
- 如何制作网站和网页 如何制作一个网页
- html网页制作代码大全 端午节html网页制作代码大
- app开发公司 app开发公司前十名
- html网页制作 html网页制作文字居中
- app制作一个需要多少钱 请人制作一个app多少钱
- 成都网站制作 成都网站制作维护
- 百度建一个网站多少钱 百度做个公司网站要多少
- html+css网页制作成品 web网页制作成品css+javascrip
- html网页制作案例 html网页设计案例
- html+css网页制作成品 web网页制作成品css+javascrip
- 个人网站模板 个人网站模板HTML