如何创建反向弹性行的水平滚动弹性列?

How to create a horizontally scrollable flex column of reversed flex rows?

我想创建一个可水平滚动的弹性列,其中包含多个弹性行,但是我想以相反的方式显示每一行。即 1,2,3,4,5,6 显示为 6,5,4,3,2,1.

这是我尝试的 JSFiddle:

https://jsfiddle.net/6kjgdtas/

如您所见,水平滚动条消失了。

HTML:

<div class="column">
  <div class="row">
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
    <div class="box">6</div>
  </div>
  <div class="row">
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
    <div class="box">6</div>
  </div>
</div>

CSS:

.column {
  display: flex;
  flex-direction: column;
  overflow: auto;
}

.row {
  display: flex;
  flex-direction: row-reverse;
}

.box {
  display: flex;
  width: 200px;
  height: 40px;
  margin: 2px;
  background: red;
  flex-shrink: 0;
}

我希望有一个两行的水平滚动列,显示 6,5,4,3,2,1(即倒序),其中每个 div 显示:flex

As you can see the horizontal scrollbar disappears.

发生这种情况是因为您忽略了让 flex 项目 wrap,所以您的两“行”都显示在一行上。

flex-wrap: wrap; 添加到 .column,以允许元素在需要时换行:

.column {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  overflow: auto;
}

使用这种格式的代码。

.column{
  display:flex;
  overflow:auto;
  flex-wrap:wrap;
  flex-direction: column;
}
.row {
  display:flex;
  flex-direction: row-reverse;
  flex-wrap:nowrap;
}

.box{
  display:flex;
  background: red;
  margin:2px;
  min-width:200px;
  min-height:50px;
  padding:5px;
  color:white;
}
<div class="column">
  <div class="row">
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
    <div class="box">6</div>
  </div>
  <div class="row">
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
    <div class="box">6</div>
  </div>
</div>