我们知道通过CSS的float属性我们可以实现更具有风格的页面,但是如果你想把某个元素定位到页面的某一个位置,使用浮动就很难实现了,这时可以使用CSS定位–position来实现,关于css定位具体知识请看下面的介绍。
CSS定位的基本思想很简单,它允许用户定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。CSS position属性有四个属性值,分别如下:
static
静态定位,元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative
相对定位,使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离,相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。
在使用position设置相对定位,还需要指定一定的偏移量,水平方向通过left或是right属性指定,竖直方向通过top或是bottom来指定。其相应的定位原则如下:
1)使用相对定位的盒子,会相对于它在原本的位置,通过偏移指定的距离,到达新的位置;
2)使用相对定位的盒子仍在标准流中,它对父块和兄弟盒子没有任何影响。
absolute
绝对定位,元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块(以离要定位的盒子最近的有设置定位属性的元素为定位基准)。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。使用绝对定位的盒子对其后的兄弟盒子的定位没有影响。
绝对定位的原则:
1)使用绝对定位的盒子以它的“最近”的一个“已经定位”的祖先元素为基准进行偏移,如果没有已经定位的祖先元素,那么就会以浏览器窗口为基准进行定位。
2)绝对定位的盒子会从标准流中脱离,这意味着它们对其后的兄弟盒子的定位没有影响,其他的盒子就好像这个盒子不存在一样。
fixed
固定定位,元素框的表现类似于将 position 设置为 absolute,不过其包含块是浏览器窗口。