小编sig*_*ram的帖子

将某些项目沿着交叉轴堆叠在仅具有CSS的flex布局的行/列中

有一次,我为此提出了一个CSS规范建议,但后来我认为可能已经有了一个我缺少的解决方案.我正在谈论的那种布局的一个例子看起来像这样:

+-----------+---+
|     1     | 6 |
+---+---+---+   |
| 2 | 3 | 4 +---+
+---+---+---+ 7 |
|     5     |   |
+-----------+---+
Run Code Online (Sandbox Code Playgroud)

问题是左列中间的那三个框沿着十字轴堆叠,我在CSS中找不到一个机制来执行此操作.我知道这可以通过包裹这三个项目的div来完成,这三个项目是行方向flex布局,但是这种方法打破了flex布局的灵活性,因为这些项目不能再在外部布局和列/周围重新排序他们之间不再发生划线.那么,如何只使用CSS实现这一点,以便flex布局保持灵活性?

HTML:

<div id="flex-layout">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
<div id="item4">4</div>
<div id="item5">5</div>
<div id="item6">6</div>
<div id="item7">7</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#flex-layout {
    display: flex;
    flex-direction: column;
    height: 300px;
    width: 400px;
    flex-wrap: wrap;
    align-items: stretch;
}

#item1 {
    flex: 0 0 100px;
    width: 300px;
}

#item2 {
    flex: 0 0 100px;
    width: 100px;
}

#item3 {
    flex: …
Run Code Online (Sandbox Code Playgroud)

html css flexbox

5
推荐指数
2
解决办法
667
查看次数

标签 统计

css ×1

flexbox ×1

html ×1