如何对齐三个相等的水平框及其周围的空间
How to align three equal horizontal boxes with spaces around them
我想把三个盒子排成一行。我正在使用 Foundation:
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
我希望它们是width:32%
,第一个在最左边,第二个在中间,第三个在最右边。
我试过 flexbox 的 justify-content: space-around
但外面的盒子不在正确的位置。我尝试了列,但中间的列向左浮动。
您可以使用 Flexbox,如下所示:
* {
box-sizing: border-box;
}
.row {
display: flex;
}
.box {
width: 32%;
flex: 1;
background: red;
height: 150px;
margin-right: 20px; /* You can change it to increase/decrease the space between boxes */
}
.box:last-child {
margin-right: auto;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
它们将垂直和水平对齐。
首先,添加.box { position: relative; }
。在第一个 div 的样式中,添加 left: 0%;
,在第二个 div 中添加 left: 34%;
,在第三个中添加 right: 0%;
.
您可以使用 flex 和 margin auto 使第一个和最后一个元素卡在 left/right 一侧:
.row {
display: flex;
border: 1px solid;
}
.box {
flex: 0 0 32%; /* or simply width:32%; */
height: 50px;
background: green;
}
.box:first-child {
margin-right: auto;
}
.box:last-child {
margin-left: auto;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
您可以使用 justify-content: space-between
来实现它,因为它的目的正是实现您想要实现的目标:
.row {
display: flex;
justify-content: space-between;
border: 1px solid;
}
.box {
flex: 0 0 32%;
height: 20px;
background: Aquamarine;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
我想把三个盒子排成一行。我正在使用 Foundation:
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
我希望它们是width:32%
,第一个在最左边,第二个在中间,第三个在最右边。
我试过 flexbox 的 justify-content: space-around
但外面的盒子不在正确的位置。我尝试了列,但中间的列向左浮动。
您可以使用 Flexbox,如下所示:
* {
box-sizing: border-box;
}
.row {
display: flex;
}
.box {
width: 32%;
flex: 1;
background: red;
height: 150px;
margin-right: 20px; /* You can change it to increase/decrease the space between boxes */
}
.box:last-child {
margin-right: auto;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
它们将垂直和水平对齐。
首先,添加.box { position: relative; }
。在第一个 div 的样式中,添加 left: 0%;
,在第二个 div 中添加 left: 34%;
,在第三个中添加 right: 0%;
.
您可以使用 flex 和 margin auto 使第一个和最后一个元素卡在 left/right 一侧:
.row {
display: flex;
border: 1px solid;
}
.box {
flex: 0 0 32%; /* or simply width:32%; */
height: 50px;
background: green;
}
.box:first-child {
margin-right: auto;
}
.box:last-child {
margin-left: auto;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
您可以使用 justify-content: space-between
来实现它,因为它的目的正是实现您想要实现的目标:
.row {
display: flex;
justify-content: space-between;
border: 1px solid;
}
.box {
flex: 0 0 32%;
height: 20px;
background: Aquamarine;
}
<div class="row">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>