是否可以在不使用媒体查询的情况下更改弹性项目的换行顺序?

Cod*_*key 6 html css flexbox

我有一个flex容器,在普通屏幕上并排显示两个div.

[div1]  [div2]
Run Code Online (Sandbox Code Playgroud)

当它们包裹在较小的设备上时,最终会变为

[div1]
[div2]
Run Code Online (Sandbox Code Playgroud)

我想要的是让他们出现

[div2]
[div1]
Run Code Online (Sandbox Code Playgroud)

如果使用媒体查询,这是微不足道的,但我有一个非常动态的布局,这使得这是不可行的,我使用弹性框的全部原因是试图避免繁琐/无法获得的媒体查询.

是否有一些灵活的flex CSS属性组合可以提供我想要的行为?我已经玩了很多但没有成功,但觉得这必须是一个相对常见的CSS'想要',所以希望有人在这里可以在几秒钟内回答这个问题!

nip*_*p3o 6

我遇到了完全相同的问题,flex-direction无论包装与否,都在努力控制订单。事实证明,flex-wrap有一个wrap-reverse选项可以在这种情况下完全满足您的需求:https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap


Cod*_*key 5

事实证明,这相当简单。只需使用flex-direction:row-reverse;

https://jsfiddle.net/gveukj1j/

HTML:

<div id="container">
  <div id="div2">
      Div 2
  </div>
  <div id="div1">
      Div 1
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

/* the relevant CSS */

#container{display:flex;flex-wrap:wrap;flex-direction:row-reverse}
#container>div{flex-basis:400px;flex-shrink:0}

/* CSS to make the demo clear */

#container>div{line-height:200px;height:200px;color:#fff;text-align:center}
#div1{background:blue}
#div2{background:red}
Run Code Online (Sandbox Code Playgroud)