定位类型

定位元素 当一个元素被定位时,它在页面上的位置是使用偏移属性确定的:顶部、右侧、底部和左侧。

偏移属性不适用于静态元素。

相对定位的元素位置值是“相对的”。
top 和 bottom 属性指定从其正常位置的垂直偏移,left 和 right 属性指定水平偏移。

绝对定位元素的位置值为“绝对”或者“固定”。
top、right、bottom 和 left 属性指定元素包含块边缘的偏移量。

粘性定位元素的位置值为“粘性”。
它被视为“相对”和“固定”元素的混合。

初始值static
应用于所有元素。
继承无效
可动画的无效
版本CSS2.
DOM 语法Object.Style.Position =“sticky”;
CSS 位置属性position

position 属性指定元素在文档中的位置。

此属性具有以下值:

  • static
  • fixed
  • absolute
  • relative
  • sticky

语法

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

位置属性示例:

<!DOCTYPE html>
<html>
  <head>
    <title>文档的标题</title>
    <style>
      p {
        position: absolute;
        left: 40px;
        top: 120px;
      }
    </style>
  </head>
  <body>
    <h2>Position 属性示例</h2>
    <p>生活本就是矛盾的,白天与黑夜间的距离,春夏秋冬之间的轮回,于是有了挑剔的喜爱,让无奈加上了喜悦的等待。
</p>
  </body>
</html>

具有所有值的位置属性示例:

<!DOCTYPE html>
<html>
  <head>
    <title>文档的标题</title>
    <style>
      #box1 {
        position: static;
        border: 2px solid #666;
        width: 300px;
        height: 100px;
      }
      #box2 {
        position: absolute;
        border: 2px solid #8ebf42;
        top: 70px;
        right: 15px;
      }
      #box3 {
        position: relative;
        border: 2px solid #666;
        width: 300px;
        height: 100px;
      }
      #box4 {
        position: absolute;
        border: 2px solid #8ebf42;
        top: 70px;
        right: 15px;
      }
      #box5 {
        position: absolute;
        border: 2px solid #666;
        width: 320px;
        height: 100px;
        top: 750px;
        right: 25px;
      }
      #box6 {
        position: absolute;
        border: 2px solid #8ebf42;
        top: 70px;
        right: 15px;
      }
      #box7 {
        position: fixed;
        border: 2px solid #8ebf42;
        background-color: #eee;
        width: 300px;
        height: 100px;
        bottom: 0;
        left: 0;
        right: 0;
      }
      #box8 {
        position: absolute;
        border: 2px solid #666;
        top: 70px;
        right: 15px;
      }
    </style>
  </head>
  <body>
    <h2>Position 属性示例</h2>
    <h3>Position: static</h3>
    <p>
      Box1 元素保留在页面的自然流中,不会充当绝对定位的 Box2 元素的锚点:
    </p>
    <div id="box1">
      Box1: position: static.
      <div id="box2">Box2: position: absolute, right: 15px, top: 70px</div>
    </div>
    <h3>Position: relative</h3>
    <p>
      Box3 元素保留在页面的自然流中,并且还充当绝对定位的 Box4 元素的锚点:
    </p>
    <div id="box3">
      Box3: position: relative.
      <div id="box4">Box4: position: absolute, right: 15px, top: 70px</div>
    </div>
    <h3>Position: absolute</h3>
    <p>
      Box5 元素不会保留在页面的自然流中。 它根据最近定位的祖先定位自己,并作为绝对定位的 Box6 元素的锚点:
    </p>
    <div id="box5">
      Box5: position: absolute, top: 750px, right: 15px.
      <div id="box6">Box6: position: absolute, right: 15px, top: 70px</div>
    </div>
    <h3>Position: fixed</h3>
    <p>
      Box7 元素不会留在页面的自然流中,而是根据视口定位自己,并充当绝对定位的 Box8 元素的锚点:
    </p>
    <div id="box7">
      Box7: position: fixed, bottom: 0, left: 0, right: 0.
      <div id="box8">Box8: position: absolute, right: 15px, top: 70px</div>
    </div>
  </body>
</html>

在给定的示例中,我们包含所有值以显示差异:

具有“粘性”值的位置属性示例:

<!DOCTYPE html>
<html>
  <head>
    <title>文档的标题</title>
    <style>
      ul {
        height: 150px;
        overflow: auto;
        position: relative;
        background-color: #cccccc;
        padding: 0;
      }
      ul li {
        list-style-type: none;
        height: 30px;
        padding: 10px 10px 0;
      }
      ul li:first-child {
        position: -webkit-sticky;
        position: sticky;
        top: 1px;
        background-color: #dddddd;
      }
    </style>
  </head>
  <body>
    <h2>Example of the position property with the "sticky" value:</h2>
    <ul>
      <li>Sticky List Item</li>
      <li>List Item 1</li>
      <li>List Item 2</li>
      <li>List Item 3</li>
      <li>List Item 4</li>
      <li>List Item 5</li>
      <li>List Item 6</li>
      <li>List Item 7</li>
      <li>List Item 8</li>
      <li>List Item 9</li>
    </ul>
  </body>
</html>

CSS position 属性值说明

描述
static根据文档的正常流量放置元素。这是此属性的默认值。
absolute从文档流中移除元件,并相对于其定位的祖先元件定位。
fixed元素从文档流中删除,并相对于浏览器窗口定位。
relative元素相对于正常位置放置。
sticky元素根据文档的正常流定位,然后相对于其最近的滚动祖先和包含块偏移。
initial使属性使用其默认值。
inherit从父母元素继承属性。
日期:2020-06-02 22:14:44 来源:oir作者:oir