首页 > 开发 > CSS > 正文

CSS 层叠加的5条原则

2024-07-11 08:27:20
字体:
来源:转载
供稿:网友

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

    静态定位: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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表