父元素设置为flex后,子元素{flex:0 0 33.3333%}
在同一排可以三等分,
但是如果子元素添加了边框,那么同一排只能排列2个,flex弹性伸缩,不计算border宽度吗?
父元素设置为flex后,子元素{flex:0 0 33.3333%}
在同一排可以三等分,
但是如果子元素添加了边框,那么同一排只能排列2个,flex弹性伸缩,不计算border宽度吗?
你只要给flex设置了flex-wrap: wrap;
,它就不是伸缩了,超出了就会换行。
解决方法如一楼所示,当然你也可以使用calc函数将flex的值减去border的值(flex:0 0 calc(33.333% - 2px)
),或者使用outline: 1px solid red;
,outline是不会将宽度计算进去的,你的这段代码可以不用flex: 0 0 33.333%
这样写,直接写width:33.33%
或者flex:33.33%
。
我也遇到了这个问题,楼上的解决方案:outline: 1px solid red
是可行的,但是如果遇到了需要添加圆角的情况下,就不行了。
最后我用另一种方式实现了圆角+边框
box-shadow: 0 0 0 1px red;
border-radius: 4px
3 回答5.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
5 回答1.9k 阅读
子元素上加上
包不包括内边距和边框是两种盒模型,由box-sizing控制
参考:https://developer.mozilla.org...