CSS 中的伪元素和 Flexbox

use*_*417 4 css pseudo-element flexbox

我正在学习 CSS,但我看到了一些我不明白的东西。我本质上是在做以下事情:

.flexbox {
  display: flex;
}

div.flexbox::after {
  display: block;
  content: "X";
}

.item {
  flex: 1;
  height: 200px;
}

.red {
  background-color: red;
}

.blue {
  background-color: blue;
}

.green {
  background-color: green;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flexbox">
  <div class="item red"></div>
  <div class="item blue"></div>
  <div class="item green"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我本来希望“X”出现在新行上,因为它是块级元素。然而,它内联地出现——在 div 行的末尾。

我使用 firefox 52.7.4 是为了它的价值。

任何见解将不胜感激。

谢谢

Tem*_*fif 5

您正在使用 Flexbox,默认行为是nowrap。然后,您应该指定任何widthflex-basis使子元素的总宽度超过其容器的宽度,以便进行换行。

display:block在这种情况下将不起作用,您需要考虑 flex 属性来强制换行。

这是一个例子:

.flexbox {
  display: flex;
  flex-wrap:wrap;
}

div.flexbox::after {
  content: "X";
  flex-basis:100%;
}

.item {
  flex:1 0 30%;
  height: 200px;
}

.red {
  background-color: red;
}

.blue {
  background-color: blue;
}

.green {
  background-color: green;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flexbox">
  <div class="item red"></div>
  <div class="item blue"></div>
  <div class="item green"></div>
</div>
Run Code Online (Sandbox Code Playgroud)