css中的几种定位详解

  css中定位的熟练使用,对于页面的美化和排版有着重要的意义。  

  首先我们来了解一下css中主要有哪几种,这些定位主要分为静态定位,相对定位,绝对定位,固定定位这四种。

  一.静态定位(static)

   一般的标签元素不加任何定位属性都属于静态定位,在页面的最底层属于标准流。在默认情况下,元素没有指定position属性时,这个元素就是静态定位的。也就是说,元素position属性的默认值是static。不过我们一般用不到这种定位。

    静态定位的作用就是:表示块保留在原本应该在的位置,不会重新定位。

  二.固定定位(fixed):

  当元素的position属性设置为fixed时,这个元素就被固定了,说白了就是相对于浏览器可视窗口固定,被固定的元素不会随着滚动条的拖动而改变位置,会一直在你能看到的地方不会消失。这种定位会脱离文档流,所以margin属性的设置就不会有用。

          

ios手机css固定定位 css的固定定位_css

 

  三.相对定位(relative):

  定位为relative的元素脱离正常的文档流中,但其在文档流中的原位置依然存在,后面的无定位元素仍然不会“挤上来”,他的定位是相对于占据的原来的位置进行定位,就是相对于自己本身进行定为移动。

          

ios手机css固定定位 css的固定定位_文档流_02

 

 

 

  四.绝对定位 (absolute):

相对定位属性的父元素进行定位移动,它会脱离文档流。如果父元素中的所有子元素都设置了absolute,那么所有的子元素都会乱套,然后就是盒子分布变得十分混乱,所以为了页面的整洁,我们需要移动这些元素,说白了就是就是直接是style样式表中书写:left、right、top、bottom四个属性,属性的单位:px(像素)、%(百分比)等

          

ios手机css固定定位 css的固定定位_文档流_03

 

 

 还有值得注意的就是:left和right不能同时使用,top和bottom不能同时使用(尤其注意!)还有float属性不可以和position属性共用。

  最后就是一个z-index (层级)的问题,如果给子元素全部设置了absolute,那么所有的子元素就会堆叠在一起,互相遮盖。那么我们如果想要其中的某一个子元素在最上面该怎么设置呢?就可以使用z-index进行设置,z-index属性的属性值是数字,数字越大,那么它就显示的最靠上。