伪元素破坏了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

回到顶部