【发布时间】:2020-09-22 16:18:47
【问题描述】:
下图显示了我当前的布局,其中容器 1 和 3 的高度由中间列确定。在我的移动视图中,我希望容器彼此堆叠,即 1、2、3、4。但是,按照我目前的方法,我有 1,2,4,3
<div class="wrapper">
<div class="aside aside-1">
<h2>container 1</h2>
</div>
<div class="main">
<div class="inner-content first">
<h2>container 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id fermentum erat, cursus viverra risus. Cras sodales risus justo, in pretium eros pretium ut.</p>
</div>
<div class="inner-content last">
<h2>container 4</h2>
</div>
</div>
<div class="aside aside-2">
<h2>container 3</h2>
</div>
</div>
.wrapper {
display: flex;
flex-flow: row wrap;
}
.wrapper > * {
flex: 1 100%;
margin: 20px 0;
}
.main {
margin-right: 20px;
margin-left: 20px;
.inner-content {
background: yellow;
padding: 10px;
&.first {
margin-bottom: 20px;
}
}
}
.aside-1, .aside-2 {
background: yellow;
padding: 10px;
}
@media all and (min-width: 600px) {
.aside { flex: 1 0 0; }
}
@media all and (min-width: 800px) {
.main { flex: 1 0px; }
.aside-1 { order: 1; }
.main { order: 2; }
.aside-2 { order: 3; }
.footer { order: 4; }
}
这是demonstrate问题的链接
【问题讨论】:
-
您提供给我们的代码不会创建您在图像中显示的布局,请向我们展示minimal reproducible example,以便我们了解您正在使用的内容并能够提供帮助。
-
我已经更新了问题并添加了一个小提琴。 jsfiddle.net/vsajL9rf/1
-
问题在于您的 HTML 结构 - 在您更新的代码中,我们可以看到 2 和 4 在同一个容器中,因此它们总是作为一个单元。您将无法在它们之间放置另一个外部元素。
-
我确实意识到了这一点,但我想知道如何在不将它们分组在同一个容器中的情况下堆叠 2 和 4。并让 1、3 的高度由中心容器确定。如果这有意义
-
我真的不确定没有 js 是否真的可行,如果可以的话?