css - 如何在 flex 元素中垂直居中文本?

标签 css html vertical-alignment text-alignment flexbox

有没有一种特殊的方法可以使用 flexboxes(或其他纯 CSS)使文本在元素中垂直居中?

fiddle :http://jsfiddle.net/WK_of_Angmar/JZZWg/

<body>
<div id="main">
    <section id="a">Test1</section>
    <section id="b">Test2</section>
</div>

#a {
    flex: 1 0 auto;
}
#b {
    flex: 0 0 auto;
    min-height: 3em;
    background-color: yellow;
}
#a {
    background-color: blue;
}
#main {
    display: flex;
    flex-direction: column;
    height: inherit;
}

body {height: inherit;}
html {height: 100%;}

最佳答案

使用 line-height 是一种解决方案,这里是 link 到 fiddle 。

更新:我对 flex 模型更感兴趣并找到了居中属性,所以我想这对您来说是一个更好的解决方案(尽管由于所有前缀而没有那么整洁和优雅).这是 link 到 Fiddle 使用 flex 属性进行对齐。

这是一个 link 解释了属性的用法。

关于css - 如何在 flex 元素中垂直居中文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593669/

相关文章:

javascript - 如何单击按钮 ID 并在具有相同 ID 的 div 上进行更改?

css - 将 Font Awesome 元素垂直居中

css - 保持文本顶部对齐,图像与相对高度 div 的底部对齐

html - 边缘 CSS 属性

html - 媒体查询适用于 chrome,但 firefox 选择了错误的分辨率/查询

css - 适用于 Chrome 但不适用于 Safari 的 Ionicons

jquery - 如何在 jQuery 中添加选择器,它选择一个嵌套类而不选择不在同一个嵌套中的其余类

html - 调整大小时,将导航从向右浮动更改为居中

html - 如何使用 Google 网络字体作为替代字体?

html - 将多行文本与图像垂直对齐(响应式,div 动态),图像大小缩放到 4 倍