position的用法与心得

position的四个属性值:浏览器

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

为了便于理解,首先建立对应的divspa

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

 


 

1. relative

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

.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同样,按照它原来应有的位置进行偏移。blog

 


 

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为定位对象,按照浏览器的窗口进行定位,这个比较容易理解。it

 


 

3. fixed

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

 


4. static

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

相关文章
相关标签/搜索