zoukankan      html  css  js  c++  java
  • CSS Position 定位属性

    1. 介绍

    1.1 说明

    Position 属性:规定元素的定位类型。即元素脱离文档流的布局,在页面的任意位置显示。

    1.2 主要的值

    ①absolute :绝对定位;脱离文档流的布局,遗留下来的空间由后面的元素填充。定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身。

    ②relative :相对定位;不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域。定位的起始位置为此元素原先在文档流的位置。

    ③fixed :固定定位;类似于absolute,但不随着滚动条的移动而改变位置。

    ④static :默认值;默认布局。

    1.3 辅助属性

    position属性只是使元素脱离文档流,要想此元素能按照希望的位置显示,就需要使用下面的属性(position:static不支持这些):

    ①left : 表示向元素的左边插入多少像素,使元素向右移动多少像素。

    ②right :表示向元素的右边插入多少像素,使元素向左移动多少像素。

    ③top :表示向元素的上方插入多少像素,使元素向下移动多少像素。

    ④bottom :表示向元素的下方插入多少像素,使元素向上移动多少像素。

    上面属性的值可以为负,单位:px 。如果是百分比,则以父容器为参照,但是,父级如果没有确定具体的高度,如果此时position为relative,top和bottom属性不起作用,比如:

    <!DOCTYPE html>
    <html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
        body {
            background-image: url("amazing-sky.jpg");
            background-position: center, center;
            background-size: cover;
        }
        
        /*html,body{
            height: 100%
        }*/
        
        #container {
            color: #ffffff;
            100%;
            text-align: center;
            position: relative;
            bottom: 50%;
        }
        </style>
    </head>


    <body>
        <!-- <div id="container"> -->
            <div id="container">
                <h1>Let's Learn HTML5</h1>
                <p>发挥您的美感与想象力,探索Web开发的无限可能性,现诚邀您一同踏上HTML5的学习之路。</p>
                <a href="invite.php">邀您参加</a>
            </div>
        <!-- </div> -->
    </body>


    </html>

    上例中container的父级为body,宽度默认为100%,高度虽然没有设置100%,所有top,bottom不起作用

    2. position 定位方式

    2.1 position:absolute

    2.1.1 说明

    绝对定位;脱离文档流的布局,遗留下来的空间由后面的元素填充。定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身。

    2.1.2 视图

    2.2 position:relative

    2.2.1 说明

    相对定位;不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域。定位的起始位置为此元素原先在文档流的位置。

    2.2.2 视图

    2.3 position:fixed

    2.3.1 说明

    固定定位;类似于absolute,但不随着滚动条的移动而改变位置。

    2.3.2 视图

    2.3.3 应用场景

    ①登录框覆盖层:如dz论坛的登录。

    ②虚假QQ消息广告。

    2.4 position:static

    2.4.1 说明

    默认定位,表示此元素为默认定位方式。

    3. 总结

    3.1 滚动条是否出现

    当含有position属性的元素为最边缘元素时:

    ①absolute 和 relative :含有此2个值的边缘元素,浏览器缩小到此元素不可见时,会出现滚动条。

    ②fixed :含有此值的边缘元素,浏览器缩小到此元素不可见时,不会出现滚动条。

    3.2 示例

    3.2.1 视图

     
    <!DOCTYPE html>
    <head>
        <title>position</title>
        <meta charset="UTF-8"> 
        <style type="text/css">
        div {
            height: 200px;
            300px;
            border-color: Black;
            border-style: solid;
            border- 1px;
        }
        
        #a {
            position: absolute;
            left: 900px;
            top: 150px;
        }
        
        #b {
            position: relative;
            left: 500px;
            top: 100px;
        }
        
        #c {
            position: fixed;
            left: 970px;
            top: 400px;
        }
        
        #d {
            position: static;
            background-color: Window;
        }
        </style>
    </head>


    <body>
        <div id="a">
            div-a
            <br />     position:absolute;
            <br />     绝对定位
        </div>
        <div id="b">
            div-b
            <br />     position:relative;
            <br />     相对定位;不脱离文档流,只改变自身的位置,在文档流原先的位置遗留空白区域。
        </div>
        <div id="c">
            div-c
            <br />     position:fixed;
            <br />     固定定位;固定在页面中,不随浏览器的大小改变而改变位置。
        </div>
        <div id="d"></div>
        <input type="text" value="input1" />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
    </body>


    </html>
     
    块级元素,postion定义为absolute,没有定义偏移,它所在的位置也会被后面的元素覆盖,下例中It works2!和It works!会重叠
    块级元素,postion定义为absolute,它的实际宽度会由内容决定(类似inline,但是其他属性,比如换行,可定义宽高跟block元素一样)
     

    <body>
    <div style="position: absolute;">It works!</div>
    <div >It works2!</div>
    <span >fdafsdf</span>
    <span>111111</span>
    </body>

    内联元素也可以定义postion为absolute,此时内联元素可以定义宽高

    下例中,第一个span定义宽度有效,第二个span定义的宽度无效,连个span会重叠

    <body>
    <div>It works!</div>

    <span style="position: absolute; 300px;">fdafsdf</span>
    <span style=" 300px;">111111</span>
    </body>

     
     
     
  • 相关阅读:
    树莓派4B
    SpringBoot 自定义 info Actuator 原理
    RestTemplate翻译serviceId过程
    ISA, ABI, API区别
    01.编译器结构
    【Git123】Git SSH Key支持多账号
    【消息中间件123】Solace PubSub+ Event Broker介绍
    【ETL123】
    【Http123】Http Timeout
    【性能123】Linux性能之“平均负载”
  • 原文地址:https://www.cnblogs.com/cowboybusy/p/9081147.html
Copyright © 2011-2022 走看看