CSS position 属性

所有主流浏览器都支持 position 属性

注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。

 

任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。

相对定位元素会相对于它在正常流中的默认位置偏移。

 

可能的值

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对(固定)定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit 规定应该从父元素继承 position 属性的值。

 

 

 

 

 

 

 

 

 

 

相对定位relative:

相对自己正常位置偏移,本身的空间依然存在。

<html>
<head>
  <style type="text/css">
    h2.pos_top{
      position:relative;
      top:60px
    }
    h2.pos_right{
      position:relative;
      left:20px
    }
  </style>
</head>

<body>
  <h2>这是位于正常位置的标题</h2>
  <h2 class="pos_top">这个标题相对于其正常位置向下移动</h2>
  <h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
</body>

</html>

 

绝对定位:absolute:

<html>
<head>
  <style type="text/css">
    *{
      margin: 0;
      padding: 0;
    }
    .parent{
      margin-top: 30px;
      background: red;
      height: 30px;
      position:absolute;
      /*position: relative;
      position: fixed;*/
      top:30px;
      left:30px;
    }
    h2.pos_abs{
      position:absolute;
      left:100px;
      top:30px;
      background: #004B7A;
    }
  </style>
</head>

<body>
  <div class="parent">
    <h2 class="pos_abs">这是带有绝对定位的标题</h2>
    <p>通过绝对定位,元素可以放置到页面上的任何位置。下面的标题距离页面左侧 100px,距离页面顶部 150px。</p>
  </div>
</body>

</html>

如果父级没有,会一直往上找,直到body.(相对于 static 定位以外的第一个父元素进行定位)。

 

posted @ 2019-06-05 09:16  花月容一箭穿心  阅读(155)  评论(0编辑  收藏  举报