【发布时间】:2018-03-19 15:59:49
【问题描述】:
我使用了一个不可见的伪元素 (::after),它占据了容器中的最后一个插槽。但是如果只有一个元素,我想把它放在中间。
所以为了做到这一点,我需要在这种情况下“删除”伪元素。
如果可能,我该怎么做?
.main {
background: #999;
margin: 0 auto;
width: 500px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.box {
background: #7ab9d7;
color: #555;
height: 30px;
width: 30%;
margin-bottom: 30px;
text-align: center;
font-size: 30px;
padding-top: 120px;
}
.main::after {
height: 0;
width: 30%;
content: "";
}
<div class="main">
<div class="box">1</div>
</div>
P.S. 示例取自 here,但儿童数量减少到 1 个。
附注附: 如果有很多 div - 看起来像这样
如果一个 div - 看起来像这样
【问题讨论】:
-
去掉 width:30% 怎么样?
-
如果
.box只有一个,你想去掉伪元素还是居中? -
@karthikaruna 移除伪元素
-
在发布了一个通用解决方案,如果只有一个项目,它应该居中,这意味着当 2 个或更多时,它们将左对齐。我刚刚在下面的评论中注意到您现在还说一个一个地居中。这是否意味着如果有 2 个它们也应该居中而不是左对齐?如果它自己有 1 或 2 个呢?
-
@LGSon 通常,无论一行中有多少项目:1)如果只存在一行,则项目应居中 2)如果存在两行或更多行 - 最后一行项目应保留对齐