【发布时间】:2017-04-15 03:09:11
【问题描述】:
我有一个 div 使用 flexbox 将其项目居中。在这个 div 里面我有 3 个元素,其中一个是图像。
<div id="flex-container">
<div id="container1"></div>
<img src="#" alt="">
<div id="container2"></div>
</div>
#container1 和#container2 有自己的高度,img 应该使用#flex-container 内部的剩余高度。
此 sn-p 适用于 Firefox,但不适用于 Chrome。 (jsfiddle)
#flex-container{
height: 300px;
width: 500px;
display: flex;
display: -webkit-flex;
flex-flow: column nowrap;
-webkit-flex-flow: column nowrap;
justify-content: center;
-webkit-justify-content: center;
align-items: center;
-webkit-align-items: center;
border: 5px solid black;
}
#container1, #container2{
height: 100px;
width: 300px;
background: orange;
flex: 1 0 auto;
-webkit-flex: 1 0 auto;
}
<div id="flex-container">
<div id="container1">300x100 px</div>
<img src="http://i.imgur.com/RRUe0Mo.png" alt="">
<div id="container2">300x100 px</div>
</div>
Chrome 需要为 flexbox 加上 -webkit- 前缀,但问题似乎不是这个。
会发生什么?是浏览器错误还是我忘记了什么?
【问题讨论】:
-
它们应该从左到右还是从上到下流动?
-
@LGSon 从上到下,项目在
flex-container居中。 -
顺便说一句,在 Chrome 中运行 flexbox 不需要前缀。 caniuse.com/#search=flex
-
@Michael_B 很高兴知道,我用过这个shouldiprefix。现在我看到 Chrome 是受支持的,但是像 safari 这样的其他人仍然需要前缀 :(
-
这里是浏览器支持的完整评论:stackoverflow.com/a/35137869/3597276
标签: css google-chrome flexbox responsive-images