在高度和宽度为100%的div内设置div高度(%)

时间:2015-09-12 05:36:36

标签: css

我有当前的html结构

<release_cover> 
    <overlay_controllers>  Green Div </overlay_controllers>
    <img src="blu.div" />
</release_cover>

我希望实现enter image description here这个:

img标签是蓝色容器。 洋红色是release_cover标签。

我将overlay_controller标签(绿色)设置为20%的高度,确切位于容器的80%时出现问题。

到目前为止我做了:

release_cover{
  width: 100%;
  height: 100%;
  position: relative; 
} 

release_cover img{
  width: 100%;
  height: 100%;
}

overlay_controllers{
  min-height: 20%;
  margin-top: 80%;
  position: absolute;
  width: 100%;
}

不幸的是,绿色div的高度取决于内部的内容,而不是固定的20%。

建议?

(目前收到的建议示例:https://jsfiddle.net/82Lb0nhe/

2 个答案:

答案 0 :(得分:1)

您可以使用顶部而不是 margin-top 属性来定位overlay_controllers:

release_cover {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
}
release_cover img {
    width: 100%;
    height: 100%;
}
overlay_controllers {
    position: absolute;
    top: 80%;
    height: 20%;
    width: 100%;
    overflow: hidden;
}

答案 1 :(得分:1)

使用absolute位置和top的组合,同时也不允许height大于300px,它将正确计算:

.container {
    width: 300px;
    height: 300px;
}
overlay_controllers {
    z-index: 2;
    bottom: 0%;
    position: absolute;
    margin-top:;
    height: 20%;
    width: 100%;
    background-color: #fc0;
}
release_cover {
    top: 0px;
    width: 100%;
    position: relative;
    display: block;
    overflow: hidden;
    margin: 0px;
    padding: 0px;
    max-height: 300px;
}
release_cover img {
    padding: 0;
    margin: 0px;
    z-index: 1;
    width: 100%;
    height: 100%;
}

工作小提琴:https://jsfiddle.net/fL98w9of/