CSS 属性

CSS 属性position有助于操纵网页中元素的位置。使用属性topbottom、right 和 left控制其在页面上的确切位置。它们指定元素与其边缘的偏移量

属性position可用于创建浮动元素、浮动侧边栏和其他交互功能。

属性值

  • static: 元素根据页面的默认或正常流程定位。因此,如果我们设置 left/right/top/bottom/z-index,则不会对该元素产生任何影响。

  • relative: 元素的原始位置是根据正常的页面的流量就像静态值一样。但现在left/right/top/bottom/z-index 可以工作了。position属性将元素从原始位置推向该方向。

  • absolute: 元素完全从文档流中删除。然后,它相对于其包含块进行定位,并使用侧向偏移属性放置其边缘。绝对定位的元素可以与其他元素重叠,或者被它们重叠。

  • fixed: 元素的固定定位就像绝对定位一样,除了固定元素的包含块是始终是视口。这里的元素完全从文档流中删除,并且没有相对于文档任何部分的位置。

  • sticky: 该元素粘在具有"滚动机制"的最近定位祖先的顶部。

适用范围

所有元素。

语法

position: static | relative | absolute | fixed | sticky; 

CSS position: static值

当您使用position: static 属性时,元素将正常定位在文档流中。 leftrighttopbottomz-index 属性将不影响该元素。这是默认值。

<html>
<head>
<style>
   .normal-box {
      display: inline-block;
      background-color: #f2c3ee;
      border: 1px solid #000000;
      padding: 10px;
      margin-bottom: 20px;
      width: 300px;
      height: 100px;
   }
   .static-box {
      display: inline-block;
      position: static;
      background-color: #bbedbb;
      border: 1px solid #000000;
      padding: 10px;
      width: 300px;
      height: 100px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a normal box.</p>
   </div>

   <div class="static-box">
      <h2>Position: static</h2>
      <p>This is a box with static position.</p>
   </div>
</body>
</html> 

CSS position: relative值

CSS position:相对属性相对于元素在页面中的原始位置定位元素。您可以使用 left、right、top 和 Bottom 属性来移动元素,但它仍然会占用文档流中的空间。

<html>
<head>
<style>
   .normal-box {
      display: inline-block;
      background-color: #f2c3ee;
      border: 1px solid #000000;
      padding: 10px;
      margin-bottom: 20px;
      width: 300px;
      height: 100px;
   }
   .relative-box {
      display: inline-block;
      position: relative;
      left: 30px;
      background-color: #bbedbb;
      border: 1px solid #000000;
      padding: 10px;
      width: 300px;
      height: 100px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a normal box.</p>
   </div>
   <div class="relative-box">
      <h2>Position: relative</h2>
      <p>This is a box with relative position.</p>
   </div>
</body>
</html> 

CSS position: absolute值

具有position:absolute的元素将从文档流中取出并相对于其最近的定位祖先(如果有)进行定位。如果没有定位的祖先,则该元素相对于视口定位。

您可以使用 top、right、bottom 和 left 属性来指定元素相对于其包含块的位置。

<html >
<head>
<style>
   .normal-box {
      background-color: #f2c3ee;
      border: 1px solid #333;
      padding: 10px;
      margin-bottom: 20px;
      width: 350px;
      height: 100px;
   }
   .absolute-box {
      background-color: #bbedbb;
      border: 1px solid #333;
      padding: 10px;
      position: relative;
      width: 300px;
      height: 100px;
      left: 20px;
      bottom: 20px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a Noraml box.</p>
      <div class="absolute-box">
         <h2>Position: Absolute</h2>
         <p>This is a box with absolute position.</p>
      </div>
   </div>
</body>
</html> 

CSS position: fixed值

要使元素即使在用户滚动时也保持在屏幕上的同一位置,您可以设置positioin属性fixed。然后,您可以使用 left、right、top 和bottom 属性将元素定位在您想要的位置。

<html>
<head>
<style>
   .position_container {
      width: 400px;
      height: 200px;
      background-color: #f2c3ee;
      overflow: auto;
      padding: 5px;
   }
   .fixed-position {
      position: fixed;
      top: 15px;
      left: 60px;
      padding: 5px;
      background-color: #bbedbb;
      text-align: center;
   }
</style>
</head>
<body>
   <div class="position_container">
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p class="fixed-position">Tutorialspoint CSS Position Fixed</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
   </div>
</body>
</html> 

CSS position: sticky值

您可以将position 属性设置为Sticky 创建一个当用户滚动页面时粘在视口顶部的元素。

position:sticky 属性是position:relative 和position:fixed 属性的组合

<html>
<head>
<style>
   .position_container {
      width: 400px;
      height: 200px;
      background-color: #f2c3ee;
      overflow: auto;
      padding: 5px;
   }
   .sticky-position {
      position: sticky;
      top: 15px;
      padding: 5px;
      background-color: #bbedbb;
      text-align: center;
   }
</style>
</head>
<body>
   <div class="position_container">
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p class="sticky-position">Tutorialspoint CSS Position Sticky</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
      <p>时光无情过,过时要珍惜,惜时是财富,财富须善用,用时要算准,算准不浪费,浪费时间最可耻,犹如谋财与害命。惜时吧,一切都在时间里成长,祝你惜时得财,得福,得生命辉煌之果</p>
   </div>
</body>
</html> 

CSS position: 在图像中定位文本

如下例如,您可以使用position:absolute属性将文本定位在不同的方向上。文本元素位于左上角、右上角、左下角和右下角。

<html>
<head>
<style>
   .container {
      position: relative;
      border: 2px solid #ef2c2c;
   }
   .center {
      position: absolute;
      top: 45%;
      width: 100%;
      text-align: center;
   }
   .top-left {
      position: absolute;
      top: 12px;
      left: 30px;
   }
   .top-right {
      position: absolute;
      top: 12px;
      right: 30px;
   }
   .bottom-left {
      position: absolute;
      bottom: 12px;
      left: 30px;
   }
   .bottom-right {
      position: absolute;
      bottom: 12px;
      right: 30px;
   }
   img {
      width: 100%;
      opacity: 0.3;
   }
</style>
</head>
<body>
   <div class="container">
      <img src="/css/images/red-flower.jpg" alt="abc" width="1000px" height="350px">
      <h3 class="center">Text at Centered</h3>
      <h3 class="top-left">Text at Top Left</h3>
      <h3 class="top-right">Text at Top Right</h3>
      <h3 class="bottom-left">Text at Bottom Left</h3>
      <h3 class="bottom-right">Text at Bottom Right</h3>
   </div>
</body>
</html> 

CSS position: 相关属性

以下是与position相关的所有 CSS 属性的列表:

属性描述
bottom与position属性一起使用来放置底部边缘元素。
clip设置元素的剪切蒙版。
left与position属性一起使用来放置元素的左边缘。
overflow确定如何呈现溢出内容。
position设置元素的定位模型。
right与position属性一起使用来放置元素的右边缘。
top设置元素的定位模型。
vertical-align设置元素的垂直位置。
z-index设置当前元素的渲染层。