zoukankan      html  css  js  c++  java
  • position的用法与心得

    position的四个属性值:

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

    为了便于理解,首先创建对应的div

    <div class="main">
        <div class="top"></div>
        <div class="bottom"></div>
    </div>

    1. relative

    首先我们要搞清它是相对哪个对象来进行偏移的。relative是指向它本身的位置。在上面的代码中,top和bottm是同级关系,如果设定top一个relative属性,比如设置如下CSS代码:

    .top
    {
        position: relative;
        padding: 5px;
        top: 5px;
        left: 5px;
    }

    当设置sub1为的position为relative后,将根据top,right,bottom,left的值按照它理应所在的位置进行偏移,relative的“相对的”意思也正体现于此。

     对于此,您只需要记住,sub1如果不设置relative时它应该在哪里,一旦设置后就按照它理应在的位置进行偏移。

    随后的问题是,sub2的位置又在哪里呢?答案是它原来在哪里,现在就在哪里,它的位置不会因为sub1增加了position的属性而发生改变。

    如果此时把sub2的position也设置为relative,会发生什么现象?此时依然和sub1一样,按照它原来应有的位置进行偏移。

     


    2. absolute

    当top的position设置为absolute后,其到底以谁为对象进行偏移呢?这里分为两种情况:

    (1)当top的父对象main也设置了position属性,且position的属性值为absolute或者relative时,此时top以main为定位对象来进行定位。

    注意,对象虽然确定好了,但有些细节需要注意,那就是我们到底以main的哪个定位点来进行定位呢?如果main设定了margin,border,padding等属性,那么这个定位点将忽略padding,将会从padding开始的地方(即只从padding的左上角开始)进行定位,这与我们会想当然的以为会以margin的左上端开始定位的想法是不同的。

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


    3. fixed

    fixed总是以body为定位对象的,按照浏览器的窗口进行定位,经常用于广告位。


    4. static

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

  • 相关阅读:
    js设计模式 -- 装饰模式
    前端项目开发(持续补充中)
    URL地址解析
    line-height有无单位区别
    HTTP请求Response Headers
    HTTP请求Request headers
    docker快速入门
    关于layui动态生成文件上传按钮后点击无效的解决办法
    未证实的一个BUG
    实现一个简单的概率发奖问题
  • 原文地址:https://www.cnblogs.com/pengjunhao/p/6927285.html
Copyright © 2011-2022 走看看