订购弹性物品

kat*_*tus 3 html css css3 flexbox

假设我有这个:

.flex-container {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flex-container">
  <div><a href="#">1</a></div>
  <div><a href="#">2</a></div>
  <div><a href="#">3</a></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我如何使用flexbox来订购商品,所以布局会像这样?

在此处输入图片说明

我无法更改HTML中div的顺序,因为它会危害其他视图的布局。

kuk*_*kuz 5

如果您可以切换到CSS Grid layout

  • 在元素上创建一个网格容器flex-cotainer

  • 将第二个元素放置到第一列(使用grid-column: 1),该元素跨越 2行(使用grid-row: 1 / 3)。

请参见下面的演示:

.flex-container {
  display: inline-grid;
  grid-template-columns: auto auto;
}

.flex-container div:nth-child(2) {
  grid-column: 1;
  grid-row: 1 / 3;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flex-container">
  <div><a href="#">1</a></div>
  <div><a href="#">2</a></div>
  <div><a href="#">3</a></div>
</div>
Run Code Online (Sandbox Code Playgroud)

甲Flexbox的溶液是哈克使用充其量负边缘已知的高度-见下文:

.flex-container {
  display: flex;
  flex-wrap: wrap;
  width: 200px;
}

.flex-container div:nth-child(1) {
  align-self: flex-start;
}

.flex-container div:nth-child(2) {
  order: -1;
  line-height: 170px;
}

.flex-container div:nth-child(3) {
  margin-left: auto;
  margin-top: -85px;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: calc(100px - 20px);
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flex-container">
  <div><a href="#">1</a></div>
  <div><a href="#">2</a></div>
  <div><a href="#">3</a></div>
</div>
Run Code Online (Sandbox Code Playgroud)