【问题标题】:How do I implement a multi-line flexbox?如何实现多行弹性框?
【发布时间】:2023-03-16 05:51:01
【问题描述】:

尽管我在谷歌上搜索过,但我发现了一些关于如何实现多行弹性框的示例。我从示例中获得的代码都没有工作。我在一个 flexbox 中有三个元素,我希望第一个在顶部,第二个和第三个在底部。

<div class="flexbox">
  <div id="element1">element 1</div>
  <div id="element2">element 2</div>
  <div id="element3">element 3</div>
</div>

我尝试过使用这些属性:

.flexbox {
  width: 300px;
  display: box;
  display: -webkit-box;
  display: -moz-box;
  box-lines: multiple;
  flex-wrap: wrap;
}

#element1 {
  width: 100%;
}

并给它一个设定的宽度,但它仍然不会换行,即使第一个元素的宽度为 100%。我是否缺少某些供应商前缀或者我的语法错误?

【问题讨论】:

标签: html css layout flexbox


【解决方案1】:

在过去的几个月里,弹性盒规范有changed,而您使用的是旧语法。我认为新规范目前仅在 Chrome Canary 中实现,并且在某种程度上在最新的 chrome 中实现。 (它有点小问题)box-lines multiple 已经消失了,所以要实现这种垂直布局有几种方法。使用 -webkit-flex-direction:column;所以

<div id="flexbox">
    <div class="box">DIV 1</div>
    <div class="box">DIV 2</div>
    <div class="box">DIV 3</div>
</div>

和CSS:

#flexbox {
    display: -webkit-flex;
    -webkit-flex-direction: column;
    width: 500px;
    height: auto;
    min-height: 200px;
}

#flexbox .box {
    -webkit-flex: 1;

}

使用包装:

-webkit-flex-wrap: wrap; 

并将你的方向设置为:

-webkit-flex-direction: row;

所以

<div id="flexbox">
    <div class="box">DIV 1</div>
    <div class="box">DIV 2</div>
    <div class="box">DIV 3</div>
    <div class="box">DIV 4</div>
    <div class="box bigger">DIV 5</div>
    <div class="box">DIV 6</div>
</div>

#flexbox {
    display: -webkit-flex;
    -webkit-flex-direction: row;
    -webkit-flex-wrap: wrap;
    width: 500px;
    height: auto;
    min-height: 200px;
    }

#flexbox .box {

    -webkit-flex: 130px 1;

    }

#flexbox .box.bigger {

    -webkit-flex: 330px 1;

    }

上面链接的规范页面上有一大堆示例。

【讨论】:

  • 您现在可以直接使用flex值,无需任何前缀,现在大多数浏览器都支持。
【解决方案2】:

使用flex-direction 属性。

.container {
  flex-direction: row | row-reverse | column | column-reverse;
}

参考以下文章: http://fend-tricks.com/flexbox-intro/

【讨论】:

  • 此网页已被停用。
  • @FranzHolzinger 嗨,感谢您指出这一点。我已经用它最后的 Wayback Machine 快照替换了它。
猜你喜欢
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
相关资源
最近更新 更多