将子div垂直对齐到父div的底部,并将子项设置为父级高度的百分比

时间:2014-02-21 17:10:09

标签: html css

我正在尝试将子div垂直对齐到其父div的底部,并将其设置为父级高度的百分比。

然而,高度:孩子的20%属性似乎被忽略了,div延伸占据了整个100%。

最终目标是将全屏标题页照片作为文章的介绍,沿着照片底部运行一个半透明条,其中包含文章的标题。我使用百分比使其成为适用于任何尺寸屏幕的响应式设计。

JS小提琴: http://jsfiddle.net/A52fw/1/

HTML:

<body>
   <div id="outerdiv">
      <div id="innerdiv">
      test
      </div>
   </div>
</body>

CSS:

html, body {
height: 100%;
width: 100%;
}

#outerdiv {
height: 100%;
width: 100%; 
display: table;
}       

#innerdiv {
width: 100%; 
height: 20%;
background-color: red;
display: table-cell;
vertical-align: bottom;
}

2 个答案:

答案 0 :(得分:6)

使用定位(相对于父项,相对于子项的绝对值)而不是显示属性:

#outerdiv {
    height: 100%;
    width: 100%;
    position:relative;
}
#innerdiv {
    width: 100%;
    height: 20%;
    background-color: red;
    position:absolute;
    bottom:0;
}

<强> jsFiddle example

答案 1 :(得分:0)

由于您知道孩子的身高,因此无需绝对定位即可完成此操作。

#outerdiv {
    height: 100%;
    width: 100%; 
    display: table;
} 

#innerdiv {
   width: 100%; 
   height: 20%;
   margin-top: 80%;
}

如果您的身高以像素为单位,则可以使用:

#innerdiv {
   width: 100%; 
   height: 40px;
   margin-top: calc(100% - 40px);
}