# 定位 ### 文档流 文档流就是HTML文档内所有元素按照一定规律排列并显示的形式。 CSS文档流大致可以分为3种:标准流,浮动流,定位流。 - 标准流 - 默认情况下,HTML元素都在标准流中呈现和展示。我们之前把元素分为块级元素,行内元素,行内块级元素,他们的特性是块级独占一行,行内和行内块级可以在一行内共存,这些特性都是针对标准流的。总结一下就是,标准流中元素只能在水平或垂直方向上排版。如果元素是块级元素, 那么就会垂直排版,如果元素是行内元素/行内块级元素, 那么就会水平排版。 - 浮动流 - 浮动流只有一种排版方式, 就是水平排版。 它只能设置某个元素在父元素内左对齐或者右对齐。设置了浮动的元素,**将脱离标准流**,之后它将无视元素的display属性,并且都被当做块级元素处理。 - 定位流 标准流和浮动流都只能在水平或垂直方向布局元素,但现实是,我们可能需要在上下左右几个方向上同时偏移元素,定位流正是为了解决这一问题而设计的。通过设置元素的position属性,可以让元素处于定为流中,并通过left、right、top、bottom属性设置元素具体的偏移量。 定为流分为四种: a) static 静态定位,实际上所有元素默认都是静态定位的,即处于标准流中。 b) relative 相对定位,元素保留在标准流中所占用的位置,但实际是**边框及以内的部分将显示在偏移之后的位置**。即虽然元素已经不再原来的位置了,`但之前所占用的空间并不会被释放给其他标准流中的元素`。 c) absolute 绝对定位,元素脱离标准流,浏览器把它视作块级元素,不论定位之前它是何种元素,其他元素也将无视它。绝对定位的偏移量是相对于其**有定位属性的第一个祖先元素的**。 d) fixed 固定定位,固定定位和绝对定位相似,但它的偏移量固定的相对于浏览器窗口。 ### position 应用 > position 属性用来指定一个元素在网页上的位置 ,一共有5种定位方式 - **static (默认)** - **relative** - **fixed** - **absolute** - sticky #### 属性详解 #### static ------ static 是position 属性的默认值,这个值使指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置,此时top, right, bottom, left和z-index 都无效 示例: html ```
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~
我是内容~