box-sizing使用该
flex属性计算尺寸时,似乎没有考虑到错误。当边框占据2px时,它大于50%,因此一条直线上只能容纳一个,因此所有框都将拉伸到整个宽度。如果禁用边框并添加2px填充,则会看到相同的情况。
通过添加
max-width:50%到
.box规则集,可以在保留边界的同时使其正常工作。否则,您可以使用介于33.34%和49%之间的弹性值。这将使宽度(包括边框)不到50%,并且随着元素的增长以填充可用空间,它们仍将是flex容器的50%。有点丑陋,但是除非添加组合的边框和填充大于50%减去所设置的flex值,否则它将起作用。
也许比直接降低百分比值更好的方法是使用
calc()。所有支持现代Flexbox语法的浏览器都支持此功能。您只需要从要使用的百分比值中减去左右边距和边距的总和即可。在执行此操作时,您实际上并不需要box-
sizing属性,因此可以将其删除。IE中似乎还存在另一个问题,即您不能在
flex速记中使用calc,但可以在
flex-basis属性中使用它,这是您想要的。
.box { border: 1px solid black; -webkit-flex-basis: calc(50% - 2px); flex-basis: calc(50% - 2px);}


