我需要帮助在固定的宽度/高度div中垂直居中两个div,其中两个div在父div的中间缩放。 第一个子div具有最大高度,因此它可以动态扩展到一定程度。我怎样才能使它们居中,使蓝绿色和绿色的div在垂直的蓝色中间?
JSFiddle HERE: https://jsfiddle.net/850sdmhj/
.subtext-container {
position: absolute;
width: 180px;
height: 65px;
color: #ffffff;
background-color: blue;
bottom: 0;
}
.color-teal {
max-height: 40px;
overflow: hidden;
background-color: teal;
}
.color-green {
max-height: 13px;
font-size: 9px;
background-color: green;
}
<div class="subtext-container">
<div class="color-teal">teal</div>
<div class="color-green">green</div>
</div>
答案 0 :(得分:2)
尝试使用display:flex
属性使其正常工作。
更新了CSS:
.subtext-container {
position: absolute;
width: 180px;
height: 65px;
color: #ffffff;
background-color: blue;
bottom: 0;
display: flex;
justify-content: center;
flex-direction: column;
}
.color-teal {
max-height: 40px;
overflow: hidden;
background-color: teal;
}
.color-green {
height: 13px;
font-size: 9px;
background-color: green;
}
示例小提琴:Demo
注意:请检查浏览器支持。
答案 1 :(得分:0)
对subtext-container
.subtext-container {
position: relative;
width: 180px;
height: 65px;
color: #ffffff;
background-color: blue;
bottom: 0;
display:table-cell;
vertical-align:middle;
}
答案 2 :(得分:0)
也许,通过使用像
这样的包装器。颜色缠绕{ 位置:相对;顶部:50%; 变换:平移Y(-50%) }
.subtext-container {
position: absolute;
width: 180px;
height: 65px;
color: #ffffff;
background-color: blue;
bottom: 0;
}
.color-teal {
max-height: 40px;
overflow: hidden;
background-color: teal;
}
.color-green {
height: 13px;
font-size: 9px;
background-color: green;
}
.color-wrap{
position:relative; top:50%;
-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)
}
<div class="subtext-container">
<div class="color-wrap">
<div class="color-teal">teal</div>
<div class="color-green">green</div>
</div>
</div>
答案 3 :(得分:0)
我会把.color-teal和.color-green放在另一次潜水中,用#34; .vertical-align&#34;类。
<div class="subtext-container">
<div class="vertical-align">
<div class="color-teal">teal</div>
<div class="color-green">green</div>
</div>
</div>
然后在CSS文件中:
.vertical-align{ /* This will do the trick to center content vertically */
display: table-cell;
vertical-align: middle;
}
.subtext-container {
display: table; /* Add Display Table to the container */
}
仅当容器(带有display:table的容器)具有固定高度时才会起作用。
您的工作示例:https://jsfiddle.net/rx79sb6m/
另外,您可以阅读this post,您可以在其中找到另外5种方法来实现相同的结果。