问题描述
我一直在尝试使用Flexbox创建3列布局,其中块的高度相等.在下面的第一张图片中,显示了预期的行为(具有讽刺意味的是,仅在IE11中有效).在Microsoft Edge,Chrome和Firefox中,输出如第二幅图所示,这不是我想要完成的.
I've been trying to create a 3-column layout with Flexbox where the blocks are of equal height. In the first picture below, the expected behaviour is shown (which, ironically, only works in IE11). In Microsoft Edge, Chrome and Firefox, the output is as shown in the second picture, which is not what I'd like to accomplish.
环顾了Stackoverflow和Google之后,我似乎找不到解决我问题的方法.如果有人能够在出现问题的地方协助我,将不胜感激!
After looking around at Stackoverflow and Google, I can't seem to find a solution to my problem. If anyone would be able to assist me on where this goes wrong, that would be highly appreciated!
JSFiddle: http://jsfiddle.net/uyvhrjjb/1/
JSFiddle: http://jsfiddle.net/uyvhrjjb/1/
CSS:
#threeblocks {
width: 100%;
overflow: hidden;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: stretch;
-ms-flex-line-pack: stretch;
align-content: stretch;
-webkit-align-items: stretch;
-ms-flex-align: stretch;
align-items: stretch;
}
#threeblocks .block {
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-align-self: stretch;
-ms-flex-item-align: stretch;
align-self: stretch;
width: 30%;
margin: auto;
border: 1px solid #B8B8B8;
}
HTML:
<div id="threeblocks">
<div class="block" style="text-align: center">
<p><strong>Title 1</strong></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam egestas, lorem nec vestibulum fermentum, massa magna efficitur augue, sed fermentum ligula eros sit amet eros.</p>
</div>
<div class="block" style="text-align: center">
<p><strong>Title 2</strong></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam egestas, lorem nec vestibulum fermentum, massa magna efficitur augue, sed fermentum ligula eros sit amet eros. Mauris est velit, scelerisque eu libero ac, bibendum consequat neque. Integer sed ligula sed erat rhoncus bibendum. Donec eget tortor dui. Vestibulum ex dui, consectetur a iaculis vestibulum, eleifend ut nibh. Nullam a ultrices dui. Sed sit amet augue euismod, vehicula leo id, convallis orci.</p>
</div>
<div class="block" style="text-align: center">
<p><strong>Title 3</strong></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam egestas, lorem nec vestibulum fermentum, massa magna efficitur augue, sed fermentum ligula eros sit amet eros.</p>
</div>
</div>
推荐答案
您可以删除项目的边距,并且可以使用
You can remove the margin of the items and it works
http://jsfiddle.net/uyvhrjjb/4/
#threeblocks {
width: 100%;
overflow: hidden;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: stretch;
-ms-flex-line-pack: stretch;
align-content: stretch;
-webkit-align-items: stretch;
-ms-flex-align: stretch;
align-items: stretch;
}
#threeblocks .block {
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-align-self: stretch;
-ms-flex-item-align: stretch;
align-self: stretch;
width: 30%;
border: 1px solid #B8B8B8;
}
这篇关于Flexbox等高无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!