赞
踩
当父级标签没有给定高度时,那么只需要给定 padding:10px 0; 就能将子标签垂直居中
当若是父级标签给定了高度,我们就需要通过其它方式来实现子标签的垂直居中:
使用 table 标签,并给定高度,其子元素会自动实现垂直居中
<style>
.parent{
border: 1px solid red;
height: 600px;
}
.child{
border: 1px solid green;
}
</style>
<table class="parent">
<tr>
<td class="child">hihihi</td>
</tr>
</table>
将父标签的 display 设置为 table,再设置子标签垂直居中: vertical-align: middle;
<body> <style> .table{ display: table; border: 1px solid red; height: 600px; } .td{ display: table-cell; border: 1px solid blue; vertical-align: middle; } </style> <div class="table"> <div class="td"> <div class="child">hihihi</div> </div> </div> </body>
给子标签的前后添加一个span标签,并将这两个span标签连同 child 设置为 inline-block,垂直对齐方式设置为居中(),span标签的高度为 100%,撑开高度。
<body> <style> .parent{ height: 200px; text-align: center; } .child{ display: inline-block; vertical-align: middle; } .parent .before, .parent .after{ display: inline-block; height: 100%; vertical-align: middle; } </style> <div class="parent"> <span class=before></span> <div class="child">hihihihi</div> <span class=after></span> </div> </body>
<body> <style> .parent{ height: 200px; position: relative; } .child{ width: 300px; position: absolute; top: 50%; left: 50%; margin-left: -150px; height: 100px; margin-top: -50px; } </style> <div class="parent"> <div class="child">hihihi</div> </div> </body>
<body> <style> .parent{ height: 200px; position: relative; } .child{ position: absolute; width: 100px; height: 100px; margin: auto; top: 0; bottom: 0; left: 0; right: 0; } </style> <div class="parent"> <div class="child">hihihi</div> </div> </body>
<body> <style> .parent{ height: 200px; position: relative; } .child{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); } </style> <div class="parent"> <div class="child">hihihi</div> </div> </body>
flex布局中: justify-content: center; 设置为垂直方向居中;align-items: center; 设置为水平方向居中
<body> <style> .parent{ height: 200px; border: 3px solid red; display: flex; justify-content: center; /* 垂直方向居中 */ align-items: center; /* 水平方向居中 */ } .child{ border: 3px solid green; text-align:center; width: 100px; } </style> <div class="parent"> <div class="child">hihihi</div> </div> </body>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。