Skip to content

定位布局

定位类型

选项说明
static默认形为,参考文档流
relative相对定位
absolute绝对定位
fixed固定定位
sticky粘性定位

位置偏移

可以为部分类型的定位元素设置上、下、左、右 的位置偏移。

选项说明
top距离顶边
bottom距离下边
left距离左部
right距离右边

相对定位

相对定位是相对于元素原来的位置控制,当元素发生位置偏移时,原位置留白。

绝对定位

绝对定义不受文档流影响,就像漂浮在页面中的精灵,绝对定位元素拥有行内块特性。

参照元素

如果父级元素设置了 relative | fixed | sticky ,绝对定位子元素将参数此父元素进行定位。且相对于边框内侧为起始0,0,忽略padding, margin。

居中定位

通过将 left 设置为 50% ,并向左偏移子元素宽度一半可以实现水平居中,垂直居中使用方式类似。

html
<style>
    article.love-position-center {
        width: 200px;
        height: 200px;
        border: solid 6px blueviolet;
        position: relative;

        div {
            width: 100px;
            height: 100px;
            background: #f2a67d;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
        }
    }
</style>

<article class="love-position-center">
    <div></div>
</article>

滚动行为

固定定位元素会随滚动条发生滚动。

html
<style>
    main.love-position-scroll {
        width: 300px;
        height: 300px;
        border: solid 10px blueviolet;
        position: relative;
        overflow: scroll;

        article {
            height: 600px;

            div {
                width: 200px;
                height: 200px;
                position: absolute;
                background: red;
                left: 0px;
                bottom: 0px;
            }

        }

    }
</style>

<main class="love-position-scroll">
    <article>
        <div></div>
    </article>
</main>

纵向重叠

如果元素重叠在一起,可以使用 z-index 控制元素的上下层级,数值越大越在上面。

父级子元素设置 z-index 没有意义,子元素永远在父元素上面的。

固定定位

元素相对于页面固定定位在某个位置,固定定位元素不会在滚动时改变位置 ,使用position: fixed 产生固定定位。

粘性定位

同级定位

属于同一个父元素设置粘性定位时,后面的元素会与前边的元素重叠。

html
<style>
    main.love-position-sticky-demo-no {
        padding: 30px;
        font-size: 14px;

        article {


            width: 400px;
            border: solid 5px blueviolet;
            height: 200px;
            overflow: scroll;

            h2:nth-of-type(odd) {
                background: blueviolet;
            }

            h2 {
                background: #db1f77;
                color: white;
                text-indent: 20px;
                position: sticky;
                top: 0;
                margin: 0;
                padding: 0;
            }

            p {
                padding: 20px;
            }
        }
    }
</style>

<main class="love-position-sticky-demo-no">
    <article>
        <h2>中国人民志愿军</h2>
        <p>
            中国人民志愿军是中国人民解放军的军队,成立于1950年10月1日,是中华人民共和国的军队。志愿军在朝鲜半岛上与联合国军作战,最终于1953年7月27日签订《朝鲜停战协定》后撤回中国。志愿军在朝鲜半岛上的战斗中,表现出了英勇无畏的战斗精神,赢得了国际社会的广泛赞誉。
        </p>
        <h2>朝鲜停战协定</h2>
        <p>
            中国人民志愿军的第一任司令员兼政治委员是彭德怀,邓华为副司令员兼副政治委员,洪学智、韩先楚、宋时轮、陈赓为副司令员,解方任参谋长。至1953年7月27日,战争双方在《朝鲜停战协定》上签字,抗美援朝战争结束,中国人民志愿军即分批从朝鲜撤离。1959年1月,志愿军司令部、政治部、后勤部建制均被撤销。
        </p>
        <h2>美军飞机</h2>
        <p>
            美军飞机入侵中国领空并轰炸中国东北边境城镇。时任中央人民政府政务院总理兼外交部长周恩来宣布:“中国人民绝不能容忍外国的侵略,也不能听任帝国主义者对自己的邻人肆行侵略而置之不理。”美国对中国政府的警告仍然置若罔闻,“联合国军”越过三八线,占领朝鲜民主主义人民共和国首都平壤,并向鸭绿江进犯,严重威胁中国的安全。1950年10月8日,中国政府应朝鲜民主主义人民共和国政府的请求决定出兵朝鲜,并将东北边防军改名为中国人民志愿军。
        </p>
    </article>
</main>

中国人民志愿军

中国人民志愿军是中国人民解放军的军队,成立于1950年10月1日,是中华人民共和国的军队。志愿军在朝鲜半岛上与联合国军作战,最终于1953年7月27日签订《朝鲜停战协定》后撤回中国。志愿军在朝鲜半岛上的战斗中,表现出了英勇无畏的战斗精神,赢得了国际社会的广泛赞誉。

朝鲜停战协定

中国人民志愿军的第一任司令员兼政治委员是彭德怀,邓华为副司令员兼副政治委员,洪学智、韩先楚、宋时轮、陈赓为副司令员,解方任参谋长。至1953年7月27日,战争双方在《朝鲜停战协定》上签字,抗美援朝战争结束,中国人民志愿军即分批从朝鲜撤离。1959年1月,志愿军司令部、政治部、后勤部建制均被撤销。

美军飞机

美军飞机入侵中国领空并轰炸中国东北边境城镇。时任中央人民政府政务院总理兼外交部长周恩来宣布:“中国人民绝不能容忍外国的侵略,也不能听任帝国主义者对自己的邻人肆行侵略而置之不理。”美国对中国政府的警告仍然置若罔闻,“联合国军”越过三八线,占领朝鲜民主主义人民共和国首都平壤,并向鸭绿江进犯,严重威胁中国的安全。1950年10月8日,中国政府应朝鲜民主主义人民共和国政府的请求决定出兵朝鲜,并将东北边防军改名为中国人民志愿军。

非同级定位

不属于同一个父元素设置粘性定位时,后面的元素挤掉原来位置的元素如下例。

html
<style>
    main.love-position-sticky-demo {
        padding: 30px;
        font-size: 14px;

        article {
            width: 400px;
            border: solid 5px blueviolet;
            height: 200px;
            overflow: scroll;

            section:nth-of-type(odd) h2 {
                background: blueviolet;
            }

            section h2 {
                    background: #db1f77;
                    color: white;
                    text-indent: 20px;
                    position: sticky;
                    top: 0;
                    margin: 0;
                    padding: 0;
                }

            section p {
                padding: 20px;
            }
        }
    }
</style>

<main class="love-position-sticky-demo">
    <article>
        <section>
            <h2>中国人民志愿军</h2>
            <p>
                中国人民志愿军是中国人民解放军的军队,成立于1950年10月1日,是中华人民共和国的军队。志愿军在朝鲜半岛上与联合国军作战,最终于1953年7月27日签订《朝鲜停战协定》后撤回中国。志愿军在朝鲜半岛上的战斗中,表现出了英勇无畏的战斗精神,赢得了国际社会的广泛赞誉。
            </p>
        </section>
        <section>
            <h2>朝鲜停战协定</h2>
            <p>
                中国人民志愿军的第一任司令员兼政治委员是彭德怀,邓华为副司令员兼副政治委员,洪学智、韩先楚、宋时轮、陈赓为副司令员,解方任参谋长。至1953年7月27日,战争双方在《朝鲜停战协定》上签字,抗美援朝战争结束,中国人民志愿军即分批从朝鲜撤离。1959年1月,志愿军司令部、政治部、后勤部建制均被撤销。
            </p>
        </section>
        <section>
            <h2>美军飞机</h2>
            <p>
                美军飞机入侵中国领空并轰炸中国东北边境城镇。时任中央人民政府政务院总理兼外交部长周恩来宣布:“中国人民绝不能容忍外国的侵略,也不能听任帝国主义者对自己的邻人肆行侵略而置之不理。”美国对中国政府的警告仍然置若罔闻,“联合国军”越过三八线,占领朝鲜民主主义人民共和国首都平壤,并向鸭绿江进犯,严重威胁中国的安全。1950年10月8日,中国政府应朝鲜民主主义人民共和国政府的请求决定出兵朝鲜,并将东北边防军改名为中国人民志愿军。
            </p>
        </section>
    </article>
</main>

中国人民志愿军

中国人民志愿军是中国人民解放军的军队,成立于1950年10月1日,是中华人民共和国的军队。志愿军在朝鲜半岛上与联合国军作战,最终于1953年7月27日签订《朝鲜停战协定》后撤回中国。志愿军在朝鲜半岛上的战斗中,表现出了英勇无畏的战斗精神,赢得了国际社会的广泛赞誉。

朝鲜停战协定

中国人民志愿军的第一任司令员兼政治委员是彭德怀,邓华为副司令员兼副政治委员,洪学智、韩先楚、宋时轮、陈赓为副司令员,解方任参谋长。至1953年7月27日,战争双方在《朝鲜停战协定》上签字,抗美援朝战争结束,中国人民志愿军即分批从朝鲜撤离。1959年1月,志愿军司令部、政治部、后勤部建制均被撤销。

美军飞机

美军飞机入侵中国领空并轰炸中国东北边境城镇。时任中央人民政府政务院总理兼外交部长周恩来宣布:“中国人民绝不能容忍外国的侵略,也不能听任帝国主义者对自己的邻人肆行侵略而置之不理。”美国对中国政府的警告仍然置若罔闻,“联合国军”越过三八线,占领朝鲜民主主义人民共和国首都平壤,并向鸭绿江进犯,严重威胁中国的安全。1950年10月8日,中国政府应朝鲜民主主义人民共和国政府的请求决定出兵朝鲜,并将东北边防军改名为中国人民志愿军。