HTML+CSS:css定位详解之相对定位、绝对定位和固定定位

本篇文章我们主要给大家说一下css的定位。css的定位是我们以后网页制作中比较常用的属性,也是很重要的知识点。了解各个定位的作用以及层级关系对以后的页面布局至关重要。

css定位主要有四种,静态定位、相对定位、绝对定位和固定定位。其中静态定位这个是元素的默认定位方式,不能使用top,bottom,left,right和z-index属性,其它三种定位可以使用以上几个属性。我们这里主要介绍后边的这三个定位。

1)相对定位

如果想为元素设置层模型中的相对定位,需要设置position:relative;,它还是会占用该元素在文档中初始的页面空间,通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置,然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。比如我们想要让一个div元素相对当前位置左移100px,上移100px。

代码以及页面显示效果就如下所示:(div向左和向上偏移了100px)

2)绝对定位

如果想为元素设置层模型中的绝对定位,需要设置position:absolute;,这条语句的作用将元素从文档流中拖出来,将不占用原来元素的空间,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父级元素进行绝对定位。如果不存在就逐级向上排查,直到相对于body元素,即相对于浏览器窗口。

我们做个例子来看一下,我们这里写两个div,内部都有2个span元素,span元素我们都使用绝对定位,并设置left和top为50px,第一个div我们设置相对定位,第二div不设置定位。

由上图我们可以看出,div1使用了相对定位,所以div1内部的span使用绝对定位是相对于div1来定位元素位置的,而div2没有定位,所以div2内部的span使用绝对定位是相对于浏览器body元素来定位元素位置。

3)固定定位

如果想为元素设置层模型中的固定定位,需要设置position:fixed;,直接以浏览器窗口作为参考进行定位,它是浮动在页面中,元素位置不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响。比如我们准备一长串的文字,让文字超出一屏的宽度,设置浮动元素div1的left和top为100px,拖动浏览器的滚动条,浮动元素div1的位置不会发生变化。

具体代码和展示效果如下图所示:

猜你喜欢

转载自www.cnblogs.com/pzxbky/p/10609170.html