您现在的位置是:首页 > 网站制作 > 前端设计

前端设计

position相对定位和绝对定位

杨青 2012-05-28前端设计

定位标签:position

包含属性:relative(相对) absolute(绝对)

1.position:relative; 如果对一个元素进行相对定位,首先它将出现在它所在的位置上。然后通过设置垂直或水平位置,让这个元素"相对于"它的原始起点进行移动。(再一点,相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其他框)

2.position:absolute; 表示绝对定位,位置将依据浏览器左上角开始计算。 绝对定位使元素脱离文档流,因此不占据空间。普通文档流中元素的布局就像绝对定位的元素不存在时一样。(因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其他元素并可以通过z-index来控制它层级次序。z-index的值越高,它显示的越在上层。)

3.父容器使用相对定位,子元素使用绝对定位后,这样子元素的位置不再相对于浏览器左上角,而是相对于父容器左上角

4.相对定位和绝对定位需要配合top、right、bottom、left使用来定位具体位置,这四个属性只有在该元素使用定位后才生效,其它情况下无效。另外这四个属性同时只能使用相邻的两个,不能即使用上又使用下,或即使用左,又使用右

QQ截图20130709161218.jpg

  • 红色表示 absolute块
    • 父容器必须是relative, 否则这些块就以整个网页为参照物
    • 定位和比例都是以参照物(父容器)计算, 比如: 100%指的是父容器的尺寸
    • absolute的体积不计算到父容器中
  • 蓝色表示 relative块
    • 参照物为自身
    • 占位不变(如图: 蓝色div和随后的绿色div之间有空隙, 后者仍用前者定位之前的所占位置计算)
    • 体积计算到父容器中
  • 修正了一个IE6的bug (container要加上 'zoom:1;')

文章评论