
CSS布局疑难解答:为何我的两个子元素无法水平排列?
网页布局中,子元素排列问题时有发生。本文将剖析一个常见案例,解释两个div盒子为何无法水平显示。
以下为问题代码:
* { box-sizing: border-box; padding: 0; margin: 0; } .container { height: 300px; width: 500px; } .box1 { display: inline-flex; width: 50%; height: 100%; background-color: #87CEFA; } .box2 { display: inline-flex; height: 100%; width: 50%; background-color: #FFC0CB; }
目标是使box1和box2水平排列,各占容器container一半宽度。然而,实际效果并非如此。原因在于使用了inline-flex属性。
立即学习“前端免费学习笔记(深入)”;
inline-flex使box1和box2作为内联元素显示,内联元素间存在默认间距(约一个字符宽),导致两个50%宽度的盒子无法完全填满父容器宽度,从而无法水平排列。
解决方法:将父容器container的display属性设置为flex。 这样,子元素将遵循flex布局规则,无需考虑内联元素间距。此时,box1和box2的display属性可设为block或flex,均可实现预期效果。










