• Position


    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Position</title>
    <link rel="stylesheet" href="Position_set.css"/>
    </head>
    <body>
    <div class="box" id="one">one</div>
    <div class="box" id="two">two</div>
    <div class="box" id="three">three</div>
    <div class="box" id="four">four</div>
    </body>
    </html>

    CSS文件:

    @charset "utf-8";
    .box {
    display: inline-block;       /*inline表示横向排列,不能设置宽高,block表示纵向排列*/
    100px;
    height: 100px;
    background: red;
    color: white;
    }

    #two {
    position: sticky;
    top: 50px;
    left: 60px;
    background: blue;
    }

    Position的四个属性值

    1. relative
    2. absolute
    3. fixed
    4. static

    下面分别讲述这四个属性

     1.relative

    relative是相对它本身的位置来进行偏移的。当设置了relative属性的时候,将根据top,right,bottom,left的值按照它理应所在的位置进行偏移,设置了relative的部分不会影响其他部分的位置。

    2.absolute

    当position设置为absolute后,其到底以谁为对象进行偏移呢?这里分为两种情况(来源于网络): 

    (1)    当父对象(或曾祖父,只要是父级对象)parent也设置了position属性,且position的属性值为absolute或者relative时,不是默认值的情况,此时按照这个parent来进行定位。 

    对象虽然确定好了,但有些细节需要注意,那就是我们到底以parent的哪个定位点来进行定位呢?如果parent设定了margin,border,padding等属性,那么这个定位点将忽略padding,将会从padding开始的地方(即只从padding的左上角开始)进行定位,也就是忽略padding,当然并不会忽略margin和border。  接下来的问题是,由于当position设置为absolute后,会导致absolute部分溢出正常的文档流,就像它不属于 parent一样,它漂浮了起来,在DreamWeaver中把它称为“层”,其实意思是一样的。此时其他部分将获得已absolute部分的位置,它的文档流不再基于已设置的部分,而是直接从parent开始。

    (2)    如果不存在一个有着position属性的父对象,那么就会以body为定位对象,按照浏览器的窗口进行定位。

    3.fixed

    fixed总是以body为定位对象的,按照浏览器的窗口进行定位,即使拖动滚动条,位置也不会改变。

    4.static

    position的默认值,一般不设置position属性时,会按正常的文档流进行排列。

  • 相关阅读:
    每天一个linux命令(8):scp使用
    C++11 列表初始化
    国外程序员整理的C++资源大全
    fiddler4 使用教程
    C++11 右值引用和转移语义
    数据库炸了——是谁动了我的wait_timeout
    Go组件学习——gorm四步带你搞定DB增删改查
    Go组件学习——cron定时器
    Go语言学习——channel的死锁其实没那么复杂
    Go语言学习——彻底弄懂return和defer的微妙关系
  • 原文地址:https://www.cnblogs.com/xiaohu12138/p/9711726.html
Copyright © 2020-2023  润新知