我有以下HTML和CSS。
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
</div>
.container-box {
width: 200px;
display: flex;
flex-direction: row;
justify-content: space-between;
background-color: red;
margin:50px;
}
.box {
background-color: #9009A0;
height: 50px;
width: 50px;
}
哪个布局如下:
多个项目的第一个布局符合我的预期,但是如何更改第二个布局以将元素定位在中心,因为它只有一个元素?
答案 0 :(得分:5)
对于容器中只有一项的情况,可以使用app.post("/cart",function(req,res){
console.log(req)
});
伪类。
将此添加到您的代码中:
void EraseEveryOdd(std::vector<int>& v) {
if ((v.size() % 2) > 0)
v.pop_back();
auto size = v.size() / 2;
for (size_t i = 0; i < size; ++i)
v.erase(v.begin() + i);
}
void EraseEveryEven(std::vector<int>& v) {
if ((v.size() % 2) == 0)
v.pop_back();
auto size = (v.size() / 2) + 1;
for (size_t i = 1; i < size; ++i)
v.erase(v.begin() + i);
}
:only-child
.box:only-child {
margin: 0 auto;
}
在这种情况下,弹性.container-box {
width: 200px;
display: flex;
flex-direction: row;
justify-content: space-between;
background-color: red;
margin: 50px;
}
.box {
background-color: #9009A0;
height: 50px;
width: 50px;
}
.box:only-child {
margin: 0 auto;
}
的边距将覆盖<div class="container-box">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
</div>
,因为:
§ 8.1. Aligning with
auto
margins在通过
auto
和justify-content
进行对齐之前,任何 正的可用空间分配给该维度的自动边距。
有关justify-content
的更多信息:
§ 6.6.5.10.
:only-child
pseudo-class
align-self
伪类表示没有元素的元素 兄弟姐妹。与:only-child
相同或:only-child
,但特异性较低。
有关弹性:first-child:last-child
边距的更多信息:
另外,要突出一些有趣的弯曲行为,如果您使用:nth-child(1):nth-last-child(1)
而不是auto
,则不需要space-around
边距。
答案 1 :(得分:1)
有关信息,如果您想了解非常老的浏览器,也可以同时使用:first-child
和:last-child
.container-box {
width: 200px;
display: flex;
flex-direction: row;
justify-content: space-between;
background-color: red;
margin: 50px;
}
.box {
background-color: #9009A0;
height: 50px;
width: 50px;
}
.container-box .box:first-child:last-child {
margin: 0 auto;
}
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
</div>
答案 2 :(得分:0)
这是一个仅有利润的想法:
.container-box {
width: 400px;
display: flex;
background-color: red;
margin: 30px;
}
.box {
background-color: #9009A0;
height: 50px;
width: 50px;
}
.box:first-child {
margin-right: auto;
}
.box:last-child {
margin-left: auto;
}
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
</div>
如果要包含3个以上的元素,则可以添加一条额外的规则
.container-box {
width: 400px;
display: flex;
background-color: red;
margin: 30px;
}
.box {
background-color: #9009A0;
height: 50px;
width: 50px;
}
.box:not(:last-child):not(:first-child) {
margin:auto;
}
.box:first-child {
margin-right: auto;
}
.box:last-child {
margin-left: auto;
}
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="container-box">
<div class="box"></div>
</div>