我在div中有一个div,里面有内容(动态创建的内容)我让子div垂直居中,但不能将内容垂直居中。我正在使用Bootstrap。
.main {
position: relative;
min-height: 600px;
width: 100%;
margin: 0; padding: 0;
}
#content {
position: absolute;
display: inline-block;
text-align: center;
margin: auto;
max-width: 60%;
top: 50%;
right: 0;
left: 0;
bottom: 0;
transform: translateY(-50%)
}
#content p {
position: relative;
font-weight: 500;
font-size: 3.5em;
line-height: 1.25em;
color: #fff;
}

<div class="row">
<div class="main">
<div id="content">
<p> text content </p> ( this is inputted by Wordpress/post )
</div>
</div>
</div>
&#13;
答案 0 :(得分:1)
您可以使用flexbox:
.main {
min-height: 300px;
background-color: rgba(0, 0, 0, 0.3);
display: flex;
justify-content: center;
align-items: center;
}
#content {
background-color: rgba(0, 0, 0, 0.4);
height: 100px;
display: flex;
justify-content: center;
align-items: center;
}
#content p {
color: white;
}
&#13;
<div class="row">
<div class="main" style="">
<div id="content">
<p> text content </p>
</div>
</div>
</div>
&#13;
答案 1 :(得分:1)
更好的解决方案始终是使用CSS3中开箱即用的flexbox。
只需使用以下课程:
#content p {
height: 100%;
padding: 0;
margin: 0;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: center;
justify-content: center;
position: relative;
font-weight: 500;
font-size: 3.5em;
line-height: 1.25em;
color: #000;
}
可替换地,
你可以把班级的最小高度&#34; main&#34;到150%而不是600px。
.main {
position: relative;
min-height: 150%;
width: 100%;
margin: 0; padding: 0;
}
这将是最简单的解决方案。
答案 2 :(得分:0)
尝试添加类似这样的样式,bootstrap不具备这种功能,它取决于用户完成工作。
.center {
margin: auto;
height: 65%;
}
希望这个帮助