首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应式CSS:到达媒体查询断点后,将中间div行移动到单独的列

响应式CSS:到达媒体查询断点后,将中间div行移动到单独的列
EN

Stack Overflow用户
提问于 2021-04-18 23:02:12
回答 1查看 68关注 0票数 1

我正在使用CSS媒体查询来创建响应式布局。

在我当前的HTML布局中,我使用flexbox来对齐div的行:

代码语言:javascript
复制
<div id="page">
  <div id="div-1">DIV 1</div>
  <div id="div-2">DIV 2</div>
  <div id="div-3">DIV 3</div>
  <div id="div-4">DIV 4</div>
</div>

和CSS:

代码语言:javascript
复制
#page {
  display: flex;
  flex-direction: column;
  align-items: center;
}

[id^="div-"] {
  border: 1px solid #ccc;
  margin-bottom: 10px;
  width: 50vw;
}

#div-1 {
  height: 50px;
}

#div-2 {
  height: 70px;
}

#div-3 {
  height: 150px;
}

#div-4 {
  height: 100px;
}

这是供您修补的Jsfiddle

这是我正在寻找一个较小的视窗,但想在下一个媒体查询断点周围交换东西,有2个中间div移动到右侧的单独列,如下所示:

我该如何做到这一点?对我来说,如何将最后几行div转移到另一列是很明显的,但不确定如何处理中间的行……

有没有办法通过使用flexbox或grid来实现呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 01:29:07

另一种可能的解决方案是将order-property与Flexbox结合使用(缺点:您需要一点额外的html并设置#page容器的高度;优点:灵活的div高度和间隙大小):

代码语言:javascript
复制
#page {
  display: flex;
  flex-direction: column;
  align-items: center;
}

[id^="div-"] {
  border: 1px solid #ccc;
  margin-bottom: 10px;
  width: 50vw;
}

#div-1 {
  height: 50px;
  background: lightgreen;
}

#div-2 {
  height: 70px;
  background: lightyellow;
}

#div-3 {
  height: 150px;
  background: lightcoral;
}

#div-4 {
  height: 100px;
  background: lightblue;
}

@media (max-width: 1000px) {
  #page {
    flex-wrap: wrap;
    height: 300px;
  }
  #small-screen-spacer {
    order: 3;
    align-self: stretch;
    flex: 1 0 100%;
    margin-right: 10px;
  }
  #div-1 {
    order: 1;
  }
  #div-2 {
    order: 4;
  }
  #div-3 {
    order: 5;
  }
  #div-4 {
    order: 2;
  }
}
代码语言:javascript
复制
<div id="page">
  <div id="div-1">DIV 1</div>
  <div id="div-2">DIV 2</div>
  <div id="div-3">DIV 3</div>
  <div id="div-4">DIV 4</div>
  <div id="small-screen-spacer"> </div>
</div>

#small-screen-spacer将填充整个可用垂直空间,以便将间隔符(由order属性定义)之后的所有元素移动到第二列。此外,您还可以通过将间隔上的右边界设置为所需的值来设置两列之间的所需间距。

Fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67150018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档