CSS网页布局教程:层叠加的5条原则

2016-02-20 00:12 1 1 收藏

下面是个简单易学的CSS网页布局教程:层叠加的5条原则教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

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

静态定位: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#a与div#b并不是同辈元素,只有像div#b和div#c这样拥有同样父体div#f的的元素才能叫同辈元素。

引用结束

接下来看看这五条法则

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

法则二:同辈元素同为动态定位时,且有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

 

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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

情况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无法遮住,这些都属于异常情况,大家可以自己搜索一下相关文章。

来源:https://www.tulaoshi.com/n/20160220/1631464.html

延伸阅读
标签: Web开发
1. 检查HTML元素是否有拼写错误、是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一下有无错误。 2. 检查CSS是否正确 检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用CleanCSS来检查 CSS的拼写错误。CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误。 3. 确定错误发生的位置 ...
标签: Web开发
CSS样式 层叠顺序 当使用了多个样式表,样式表需要争夺特定选择符的控制权。在这些情况下,总会有样式表的规则能获得控制权。以下的特性将决定互相对立的样式表的结果。 正如以前所提及的,网页制作者和读者都有能力去指定样式表。当两者的规则发生冲突,网页制作者的规则会凌驾于读者的其它相同权重的规则。而网页制作者和读...
标签: Web开发
你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习: 第一种可能是你还没有理解CSS处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义、结构添加CSS。这篇文章将告诉你应该怎样把HTML结构化。 另一种原因是你对那些非常熟悉的表现层属性(例如:ce...
标签: Web开发
用CSS设计布局时遇到BUG,请认真阅读以下内容,非常容易记忆的! 一、IE边框若显若无,须注意,定是高度设置已忘记; 二、浮动产生有缘故,若要父层包含住,紧跟浮动要清除,容器自然显其中; 三、三像素文本慢移不必慌,高度设置帮你忙; 四、兼容各个浏览须注意,默认设置行高可能是杀手; 五、独立...
标签: Web开发
为了让网页更美观、协调,有的时候需要用到左右等到布局,传统的等高布局是用 javascript 实现的,现在来看看 silence 发明的真正的 CSS 实现的等高布局,其方法主要是采用隐藏容器溢出、正内补丁和负外补丁结合的方法实现的。 下面来看看实际的例子(三列等高),以下面的 XHTML 代码为例: div id="wrap" div id="left&qu...

经验教程

685

收藏

55
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部