微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 在另一个div内垂直居中一个div

我正试图纵向对齐:在另一个div中间的一个div,但由于某种原因,它无法正常工作.我究竟做错了什么?
#wrapper {
border: 1px solid red;
width: 500px;
height: 500px;
}
#block {
border: 1px solid blue;
width: 500px;
height: 250px;
vertical-align: middle;
}
<div id = 'wrapper'> 
<div id = 'block'> I'm Block </div>
<div>

PS:这只是一个例子,所以不,我实际上并不知道div的实际宽度和高度,因为它们是动态的,根据它们的内容,所以请没有margin-top:125px,或padding-top: 125px答案,或类似的答案.

解决方法

vertical-align属性仅适用于内联级和表格单元格( source).在您的代码中,您正在使用块级元素.

试试这个flexBox替代品:

#wrapper {
    border: 1px solid red;
    width: 500px;
    height: 500px;
    display: flex;               /* establish flex container */
    align-items: center;         /* vertically center flex items */
}

#block {
    border: 1px solid blue;
    width: 500px;
    height: 250px;
    /* vertical-align: middle; */
}
<div id='wrapper'>
    <div id='block'> I'm Block </div>
<div>

在此处了解有关flex对齐的更多信息:Methods for Aligning Flex Items

浏览器支持:所有主流浏览器都支持FlexBox,except IE < 10.一些最新的浏览器版本,如Safari 8和IE10,需要vendor prefixes.有关添加前缀的快速方法,请使用Autoprefixer. this answer中的更多详细信息.

原文地址:https://www.jb51.cc/html/231709.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐