HTML5 / CSS3如何在任意大小的div中垂直对齐任意大小的div

时间:2015-01-10 04:44:19

标签: css alignment vertical-alignment flexbox

我知道垂直对齐是一个古老的问题,我不想打败死马。但我觉得我花了好几个小时阅读所有的澄清和黑客,以及现在通过flexbox模型使用HTML5 / CSS3应该工作的东西,但我已经尝试了所有这些但仍然无法解决这个特例:

<div style="border: 1px solid black; width:50%; height:50%; margin:auto;">

请注意,在调整浏览器窗口大小时,div始终是浏览器窗口高度和宽度的50%,并且始终在浏览器窗口中水平居中。我需要的是让它保持垂直居中。有没有办法,因为 div本身和封闭的div都是非固定(和不可预测)的高度

请注意这里的目标用法是将这个div放在另一个div中,但是我的示例只是将它放在body中,以便最好地说明/简化/测试结果给定任意大小的封闭和内部div通过实时窗口调整大小。

1 个答案:

答案 0 :(得分:0)

使用flexbox,特别是align-self属性。由于您使用的是相对尺寸,因此其父元素需要具有某种高度,例如:通过min-height:100vh,否则它的内容无法与其对齐。默认情况下,body元素与其内容一样高,不像视口那么高。