为什么高度100%适用于绝对定位的元素?

时间:2017-03-08 13:47:29

标签: html css html5 css3 css-position

据我所知,作为百分比工作的高度,容器元素必须具有提到的特定高度。但是对于绝对定位的元素而言,这并不适用于祖先相对定位的情况。这是我的意思的一个实例:



.container {
  width: 400px;
  background: cyan;
  text-align: right;
  position: relative;
  color: white;
}

.child {
  width: 90%;
  height: 100%;
  background: blue;
}

.absolute {
  position: absolute;
}

.second {
  margin-top: 30px;
}

<div class="container">
  <div class="child absolute">Absolute</div>
  one <br> two <br> three <br> one <br> two <br> three <br>
</div>
<div class="container second">
  <div class="child">Static</div>
  one <br> two <br> three <br> one <br> two <br> three <br>
</div>
&#13;
&#13;
&#13;

正如你所看到的那样,绝对放置的div在它上面应用了100%的高度而不是静态定位的div。为什么呢?

2 个答案:

答案 0 :(得分:0)

来自MDN

  

相对       这个关键字列出了所有元素,就像元素没有定位一样,然后调整元素的位置,而不改变布局(因此为元素留下了一个间隙,如果它没有被定位)。 position:relative对表 - * - group,table-row,table-column,table-cell和table-caption元素的影响未定义。

Read more。非常好的描述。

答案 1 :(得分:0)

Here 是关于不同职位类型的精彩读物:

绝对相对于父元素,不受其他元素的影响,并从页面流中删除,即您可以看到列表中有一个,两个,三个不受影响。

它的高度是100%,因为.child指定。