伪元素破坏了justify-content:flexbox布局之间的空格
我在父div内有三个div,它们使用以下命令隔开:
display: flex;justify-content: space-between;
但是,父div上有一个:after
,这使三个div不会超出父div的边缘。有没有办法让flexbox忽略:before
和:after
?
.container { width: 100%;
display: flex;
justify-content: space-between;
padding-top: 50px;
background: gray;
}
.container div {
background: red;
height: 245px;
width: 300px;
}
.container:before {
content: '';
display: table;
}
.container:after {
clear: both;
content: '';
display: table;
}
<div class="container">
<div></div>
<div></div>
<div></div>
</div>
回答:
回答:
在CSS中,目前没有100%可靠的方法来防止伪元素影响justify-content: space-between
计算。
回答:
::before
并::after
在柔性容器伪元素变得弯曲的物品。
从规格:
flex容器的每个流入子元素都将成为一个flex项目。
换句话说,处于正常流中(即,未绝对定位)的伸缩容器的每个子级都被视为伸缩项目。
大多数(如果不是全部)浏览器会将其解释为包括伪元素。该::before
伪是首个柔性项目。该::after
项目是最后一个。
这是Firefox文档中有关此渲染行为的进一步确认:
流入
::after
和::before
伪元素现在是弹性项目)(错误867454)。
以上是 伪元素破坏了justify-content:flexbox布局之间的空格 的全部内容, 来源链接: utcz.com/qa/416279.html