CSS flexbox 垂直/水平居中图像而不显式定义父高度

标签 css flexbox

div 和子img 元素如下所示我如何垂直和水平将 img 元素居中,同时明确不定义父 div高度

<div class="do_not_define_height">
 <img alt="No, he'll be an engineer." src="theknack.png" />
</div>

我对 flexbox 不太熟悉,所以如果 flexbox 本身填满整个高度我没问题,但没有任何其他不相关的属性。

最佳答案

只需将以下规则添加到父元素:

display: flex;
justify-content: center; /* align horizontal */
align-items: center; /* align vertical */

这是一个 sample demo (调整窗口大小以查看图像对齐)

Browser support现在的 Flexbox 已经很不错了。

为了 display: flexalign-items 的跨浏览器兼容性,您还可以添加旧的 flexbox 语法:

display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;

关于CSS flexbox 垂直/水平居中图像而不显式定义父高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832340/

相关文章:

html - Bootstrap div 不堆叠

javascript - 使用javascript调整图像大小而不会造成视觉干扰

css - flexbox如何实现这种具体布局?

html - Div 不占据 100% 屏幕宽度

jquery - 使用 CSS/jQuery 重新定位 5 个 DIV 的最佳方式?

html - 我如何将我的导航元素定位在我的标题元素下?

html - -webkit-转换 : scale() not displaying properly in OSX Safari

html - 每行五个元素,带 flex,左对齐

css - 基于另一个具有绝对位置的 div 的位置

html - 背景图像不会随着 Firefox 中的屏幕大小而缩小