固定定位fixed,绝对定位absolute,相对定位relative;以及overflow

固定定位position:fixed

        /*固定定位
        1、定位属性值:fixed
        2、在页面中不再占位(浮起来了)
        3、一旦定位后,定位的布局方位 top、bottom、left、right都能参与布局
        4、固定定位的参考系是页面窗口(不是页面中的哪一点,而是四边参照四边)
        5、左右同时存在,取左;同理上下取上
        */
    
<style>
    body{
        /*min-width设置区域的最小宽度,如果最小宽度超过页面的像素
        那么页面就会有横向滚动条*/
        /*min-width: 2000px;*/
    }
    .fix{
        position: fixed;
        width: 200px;
        height: 300px;
        right: 10px;
        background: #ff5e28;
        text-align: center;/*设置水平居中*/
        line-height: 300px;/*设置垂直居中,因为默认文字显示在行中间*/
        top:calc(50% - 150px);

    }

</style>
<body>
    <div class="fix"><div class="word">这是固定定位</div></div>

</body>

绝对定位

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>绝对定位</title>
    <style>
        .sup {
            width: 180px;
            height: 260px;
            background-color: orange;
            margin: 100px auto;
        }
        .sub {
            width: 50px;
            height: 80px;
            background-color: red;
        }

        /*绝对定位:
        1、定位属性值:absolute
        2、在页面中不再占位(浮起来了),就无法继承父级的宽度(必须自己自定义宽度)
        3、一旦定位后,定位的布局方位 top、bottom、left、right都能参与布局
        4、绝对定位的参考系是最近的定位父级(不是父级中的哪一点,而是四边参照四边)
        5、左右同时存在,取左;同理上下取上
        6、当父级定位了,子级参照父级定位,又可以重新获取父级宽度(也可以在计算中拿到父级高度)
        */
        .sub {
            position: absolute;
            left: calc(50% - 25px);
            right: 0;
            bottom: 0;
            top: calc(50% - 40px);
        }
        /*需求:
        1)父级需要定位 - 辅助自己绝对定位,作为自己绝对定位的参考系
        2)父级定位了,但是不能影响自身原有布局 - 虽然定位,但是不浮起来
        结论:相对定位 => 父相子绝
        */
        .sup {
            /*父级相对定位的目的:1)不影响自身布局 2)辅助自己绝对定位布局*/
            position: relative;
        }
        /*body {*/
            /*width: 1000px;*/
            /*height: 600px;*/
            /*position: fixed;*/
        /*}*/
        /*.sup {*/
            /*position: fixed;*/
        /*}*/
    </style>
</head>
<body>

<div class="sup">
    <div class="sub"></div>
    <h3>hhhhhhhhhhhh</h3>
</div>

</body>
</html>

绝对定位中,如果父级没有绝对或者相对定位,那么继续往上层找,如果都没有则根据body进行定位。

相对定位

相对定位只要作用是给辅助子级的绝对定位提供一个参照物。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>相对定位</title>
    <style>
        .box {
            width: 300px;
            height: 300px;
            background-color: orange;
            margin: 0 auto;
        }
        h1 {
            margin: 0;
        }
        /*相对定位:
        1、定位属性值:relative
        2、在页面中依旧占位,完全保留之前的所有布局
        3、一旦定位后,定位的布局方位 top、bottom、left、right都能参与布局
        4、相对定位的参考系是自身原有位置(当前位置)(不是自身中的哪一点,而是四边参照四边)
        5、左右同时存在,取左;同理上下取上,布局移动后,也不影响自身原有位置(兄弟布局也不会变化)
        作用:辅助于子级的绝对定位布局,一般不用于自身布局
        */
        .box {
            position: relative;
            /*left: -10px;*/
            bottom: 20px;
            top: 400px;
        }
    </style>
</head>
<body>
    <h1>hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</h1>
    <div class="box"></div>
    <h1>hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</h1>
</body>
</html>

overflow属性

用来处理超出区域的内容如何显示

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>overflow属性</title>
    <style>
        .box {
            width: 200px;
            height: 300px;
            background-color: pink;
        }
        /*
        1)默认子级(内容)超出父级显示区域,不会做任何处理(正常显示)
        2)overflow: hidden; - 隐藏超出的内容
        3)overflow: scroll; - 以滚动方式显示内容(一定会预留滚动条的占位)
        4)overflow: auto; - 有超出内容才以滚动方式显示
        */
        .box {
            overflow: auto;
        }
    </style>
</head>
<body>
    <div class="box">
        哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂芬纳士大夫士大夫四大哈斯蒂
    </div>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/zhoajiahao/p/11295226.html