CSS中HTML元素定位Position参数可选值详解

作者:袖梨 2022-06-25


position 属性规定元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。
默认值: static
语法: position : static | absolute | fixed | relative
继承性: no
版本: CSS2
JavaScript 语法: object.style.position=”absolute”

static

元素的box模型其位置预设为静态(static)即隐含宣告了position:static
此时若有宣告 top, right, bottom, left 等属性视为无效,因static的意思就是固定了位置。
此元素位于其它元素之后或之前,端视原始文件中的元素出现先后顺序,或说 此元素的位置位于正常的文件流程之中(normal flow of the document)不因 top, right, bottom, left 等属性而改变其位置,故称之为static。

absolute

元素的box模型其位置若为绝对(absolute)即确实宣告了position:absolute
此时若有宣告 top, right, bottom, left 等偏移(offset)属性则会以父元素的边界位置为基点,再作对应的距离调整。
此时所说的父元素指的是前一个以absolute或relative宣告其位置的元素,若之前都没有此定位的元素存在,则以元素所在的视窗最大可视范围边界为基点。
设定为absolute的元素会不存在于正常文件流程的位置,也可能会覆盖其它元素。
若确实宣告了position:absolute 但没有宣告 top, right, bottom, left 等属性,则显示会在原来文件流程中的位置,但因不存在于正常文件流程中,所以会覆盖后一个元素的显示。

relative

元素的box模型其位置若为相对(relative)即确实宣告了position:relative
此时若有宣告 top, right, bottom, left 等偏移(offset)属性则会以元素本身在正常的文件流程之位置为基点,再作对应的距离调整。
设定为relative的元素在正常文件流程的位置会被「保留」『空』下来,但此元素会遵从top, right, bottom, left 等属性的指示偏移到指定的位置上,也可能会覆盖其它元素。
若确实宣告了position:relative 但没有宣告 top, right, bottom, left 等属性,则显示位置会停留在原先自身的保留位置上。

fixed

元素的box模型其位置若为固定(fixed)即确实宣告了position:fixed
此时若有宣告 top, right, bottom, left 等偏移(offset)属性则会以元素所在的视窗最大可视范围边界为基点,再作对应的距离调整。
设定为fixed的元素会不存在于正常文件流程的位置,也可能会覆盖其它元素。
若确实宣告了position:fixed 但没有宣告 top, right, bottom, left 等属性,则显示会在原来文件流程中的位置,但因不存在于正常文件流程中,所以会覆盖后一个元素的显示。

例子




CSS中HTML元素定位Position参数可选值详解



元素(element)的定位(position)



static


 

      
  • 元素的box模型其位置???殪o?B(static)即?含宣告了position:static

  •   
  • 此?r若有宣告 top, right, bottom, left 等?傩砸???o效,因static的意思就是固定了位置。

  •   
  • 此元素位於其它元素之後或之前,端?原始文件中的元素出?先後?序,或? 此元素的位置位於正常的文件流程之中(normal flow
    of the document)不因 top, right, bottom, left 等?傩远?淖?其位置,故?之??tatic。

  •  


absolute


 

      
  • 元素的box模型其位置若?榻^??absolute)即???宣告了position:absolute

  •   
  • 此?r若有宣告 top, right, bottom, left 等偏移(offset)?傩?t??愿冈?氐倪?界位置?榛?c,再作???木嚯x?整。

  •   
  • 此?r所?的父元素指的是前一??以absolute或relative宣告其位置的元素,若之前都?]有此定位的元素存在,?t以元素所在的?窗最大可?????界?榛?c。

  •   
  • ?定??bsolute的元素??淮嬖陟墩?N募?鞒痰奈恢茫?部赡??采w其它元素。
  •  
      
  • 若???宣告了position:absolute 但?]有宣告 top, right, bottom, left 等?傩裕?t?示??谠?砦募?鞒讨械奈恢茫??虿淮嬖陟墩?N募?鞒讨校????采w後一??元素的?示。

  •  


relative


 

      
  • 元素的box模型其位置若?橄??relative)即???宣告了position:relative

  •   
  • 此?r若有宣告 top, right, bottom, left 等偏移(offset)?傩?t??栽?乇旧碓谡?5奈募?鞒讨?恢?榛?c,再作???木嚯x?整。

  •   
  • ?定??elative的元素在正常文件流程的位置??弧副A簟埂嚎铡幌?恚??嗽?????op, right, bottom, left 等?傩缘闹甘酒?频街付ǖ奈恢蒙希?部赡??采w其它元素。

  •   
  • 若???宣告了position:relative 但?]有宣告 top, right, bottom, left 等?傩裕?t?示位置??A粼谠?茸陨淼谋A粑恢蒙稀?lt;/li>     
     


fixed


 

      
  • 元素的box模型其位置若?楣潭?fixed)即???宣告了position:fixed

  •   
  • 此?r若有宣告 top, right, bottom, left 等偏移(offset)?傩?t??栽?厮?诘囊?窗最大可?????界?榛?c,再作???木嚯x?整。

  •   
  • ?定??ixed的元素??淮嬖陟墩?N募?鞒痰奈恢茫?部赡??采w其它元素。
  •  
      
  • 若???宣告了position:fixed 但?]有宣告 top, right, bottom, left 等?傩裕?t?示??谠?砦募?鞒讨械奈恢茫??虿淮嬖陟墩?N募?鞒讨校????采w後一??元素的?示。

  •  


有?追N移?釉?匚恢玫姆椒??lt;/dt>

 

      
  • 利用box模型的??界移?釉?匚恢谩?lt;/li>
      
  • 利用float?傩愿?釉?匚恢谩?lt;/li>
      
  • 利用position移?釉?匚恢谩?lt;/li> 
     



所有元素皆???300px, 高100px




此 box1 元素的左偏移?傩?00px, 上偏移?傩?00px, 定位??tatic

此 box2 元素的左偏移?傩?50px, 上偏移?傩?50px, 定位??bsolute

此 box3 元素的左偏移?傩?00px, 上偏移?傩?00px, 定位??elative

此 box4 元素的左偏移?傩?50px, 上偏移?傩?50px, 定位??ixed



所有元素皆???300px, 高100px


相关文章

精彩推荐