CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
一、元素的position属性分为:static,relative,absolute,fixed 四种。
二、position:static 这是默认属性,也就是元素在正常文档流中的位置,这个时候如果给元素设置left right top以及z-index等属性是没有效果的。
三、position:relative 相对定位,这个元素会被浮起来,覆盖它下面的其它元素,如果设置left top值,会以它自身为参考点,同时它原来在文档中的位置还保留,其它元素不能去占据。我们可以通过z-index来调整上下层关系。
四、position:absolute 绝对定位,这个元素也会被浮起来,会覆盖下面的元素,可以设置z-index属性,但是它在文档流中的位置会被删除,其它元素可以来占据。如果来设置left top right的值,参考点为:如果它的父元素设置了定位(除了static),就以它的父元素来定位;如果它的父元素没有定位,以此类推,找离它最近的祖先元素进行定位;如果都没有,就以文档的body(即整个网页的左上角)为参考点。
五、position:fixed 固定定位,定位参考点为可是窗口,可通过z-index进行层次分级。