CSS 定位


使用position属性给网页进行定位,position样式的取值有如下几种:

  • static:默认值,没有定位或者叫静态定位。
  • relative:相对定位
  • absolute:绝对定位
  • fixed:固定定位

一、static定位


111
222

我们可以看到div1和div2基本标准文档流自动定位,即div1在上,div2紧接着在下。两个div都被包含在big容器里面。

二、relative定位

relative定位:相对自身原来位置进行偏移;偏移位置通过top,bottom,left,right来进行设置。


111
222

我们可以看到DIV2在相对自身原来位置的基础上,向下偏移100PX,向右偏移100PX;相对定位仍然在标准文档流中。

三、absolute定位

绝对定位:相对于最近的一个“已经定位”的“祖先元素” 为基准进行偏移,这句话不好理解,我们看如下代码:


	
	Position定位-absolute
	


	
111
222

此时,DIV2并没有相对于big进行偏移,虽然big是div2的最近祖先元素,但是big没有定位,此时会继续寻找上一级已经定位的祖先元素,一直找下去,找到了则相对于这个祖先元素进行偏移,如果一直找不到,则相对于body元素进行偏移,所以在上述代码中DIV2相对于body元素进行了向下偏移100PX,向右偏移100PX。

在看如下代码,给big添加relative定位:


	
	Position定位-absolute
	


	
111
222

此时由于DIV2的父级元素big有了定位,所以DIV2相对于big进行了向下偏移100PX,向右偏移100PX,为了实现子元素相对于父元素绝对定位,通常我们将父元素设置position:relative,而将子元素设置position:absolute。

绝对定位已经完全脱离了标准文档流。

四、fixed定位

固定定位:类似绝对定位,不过区别在于定位的基准不是祖先元素,而是浏览器窗口。所以只要固定定位,不管浏览器的滚动条如何滚动,该定位元素不会随着滚动条的滚动一起移动,而是一直静止在那里。


111
222

我们可以看到DIV2相对于浏览器上方向下偏移100PX,相对于浏览器右边向左偏移10PX;如果网页内容很长,不管浏览器滚动条如何滚动,DIV2的位置不会受到滚动条滚动的影响。

固定定位已经完全脱离了标准文档流。

五、z-index

z-index:调整元素定位时重叠层的上下位置,默认值为0


我们可以看到DIV1覆盖在DIV2的上面。

CSS