基本思想:
允许定义元素框相对于其正常位置应该出现的位置,或者相对于父元素,另一个元素和浏览器窗口的本身.
一切皆为框
元素分为块级元素和行级元素两种
可以使用display属性改变框的类型
display属性
值 | 详解 |
---|---|
block | 可以让行元素表现得像块级元素一样 |
none | 生成的元素没有框,该框的内容不再显示 |
CSS三种基本的定位机制:
普通流
普通流中的元素位置由元素在HTML中的位置决定
块级框:自上而下垂直排列
行内框:自左到右水平排列
position属性:
值 | 详解 |
---|---|
static | 元素框正常生成 块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中 |
relative | 元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。 |
absolute | 元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。 |
fixed | 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。 |
position:relative相对定位
概念:对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动
注意点:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
position:absolute绝对定位
概念:绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
注意点:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。
CSS浮动:float属性
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。