标签导航:

为什么我的两个盒子无法并排显示?

排查并解决子元素无法并排显示的问题

网页布局中,子元素排列问题时有发生。本文分析一个案例:两个子盒子(box1和box2)无法在父容器(container)中并排显示,每个盒子应占据父容器一半宽度。

问题:以下代码导致两个盒子无法同行显示:

<div class="container">
    <div class="box1"></div>
    <div class="box2"></div>
</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;
}

原因分析: 代码使用了inline-flex。inline-flex 元素如同内联元素,水平排列,但元素间存在默认间距(约1em或4像素)。因此,两个50%宽度的inline-flex 元素加上间距,总宽度超过父容器,导致换行。

解决方案: 使用Flex布局更有效地控制子元素排列,避免inline-flex 的间距问题。将父容器container 的display 属性设置为flex,子元素display 属性可设为block 或 flex。

通过将父容器设置为Flex容器,并设置子元素的宽度,可以轻松实现两个盒子并排显示的效果,避免了因内联元素间距带来的问题。