父元素使用flex为何子元素width失效?
在项目中,使用flex布局的父元素内,子元素的width属性失效,不同于jsfiddle中的正常表现。
原因:
当父元素使用flex布局时,子元素的尺寸往往会受到flex属性的影响。在该例中,”.text”元素设置了flex属性为1,表示该元素将占据父元素剩余可用空间。因此,”width: 8px”将被覆盖,导致子元素的宽度失效。
解决方法:
如果需要保证子元素的固定宽度,可以为其设置flex: none;。这样,该元素将脱离flex布局的控制,保持固定的宽度。
示例:
如下代码修改了”.status”元素的flex属性:
.status { flex: none; width: 8px; height: 8px; ... }
调整后,父元素的flex布局不会影响”.status”元素的宽度,使其保持8px不变。