首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flexbox全半宽混合布局

Flexbox全半宽混合布局
EN

Stack Overflow用户
提问于 2016-07-07 22:11:17
回答 2查看 12.1K关注 0票数 4

我在一个容器里放了7件东西。如何使前3个为全宽,后7为50%宽?

我也需要元素,在视觉上在同一行,以具有相同的高度。

如果需要的话,我可以使用flexbox。在这个演示中,容器的宽度是固定的,但实际上它是一个响应式布局,所以宽度是不同的。

http://codepen.io/anon/pen/yJoPwK

代码语言:javascript
运行
复制
.cont {
  display: flex;
  flex-direction: column;
  border: 1px solid grey;
  width: 200px;
  margin: auto;
}
.item-1 {
  background: blue;
}
.item-2 {
  background: green;
}
.item-3 {
  background: yellow;
}
.item-4 {
  background: blue;
}
.item-5 {
  background: grey;
}
.item-6 {
  background: orange;
}
.item-7 {
  background: gold;
}
.item-4,
.item-5,
.item-6,
.item-7 {
  width: 50%;
}
代码语言:javascript
运行
复制
<div class="cont">
  <div class="item item-1">1</div>
  <div class="item item-2">2</div>
  <div class="item item-3">3</div>
  <div class="item item-4">4 <br> wrap</div>
  <div class="item item-5">5</div>
  <div class="item item-6">6</div>
  <div class="item item-7">7</div>
</div>

这是我想要实现的布局:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-07 22:20:03

您可以将容器设置为flex-flow: row wrap;

将前3个flex项设置为width: 100%;,最后4个项设置为width: 50%;

代码语言:javascript
运行
复制
.cont {
  display: flex;
  flex-flow: row wrap;
  border: 1px solid grey;
  width: 200px;
  margin: auto;
}

.item-1 { background: blue; }
.item-2 { background: green; }
.item-3 { background: yellow; }
.item-4 { background: blue; }
.item-5 { background: grey; }
.item-6 { background: orange; }
.item-7 { background: gold; }
.item-1, .item-2, .item-3 { width: 100%; }
.item-4, .item-5, .item-6, .item-7 { width: 50%; }
代码语言:javascript
运行
复制
<div class="cont">
  <div class="item item-1">1</div>
  <div class="item item-2">2</div>
  <div class="item item-3">3</div>
  <div class="item item-4">4 <br> wrap</div>
  <div class="item item-5">5</div>
  <div class="item item-6">6</div>
  <div class="item item-7">7</div>
</div>

票数 5
EN

Stack Overflow用户

发布于 2016-07-07 22:17:32

.item-4item-5中创建两个子元素item-4-1item-4-2

然后.item-4, .item-5{display: flex}会做这件事

演示

代码语言:javascript
运行
复制
.cont {
  display: flex;
  flex-direction: column;
  border: 1px solid grey;
  width: 200px;
  margin: auto;
}
.item-1 {
  background: blue;
}
.item-2 {
  background: green;
}
.item-3 {
  background: yellow;
}
.item-4 {
  background: blue;
}
.item-5 {
  
}
.item-4, .item-5{
  display: flex
}
.item-4 .sub-item, .item-5 .sub-item{
  width: 50%;
}
.item-4 .item-4-2{
  background: grey;
}

.item-5-1 {
  background: orange;
}
.item-5-2 {
  background: gold;
}
代码语言:javascript
运行
复制
<div class="cont">
  <div class="item item-1">1</div>
  <div class="item item-2">2</div>
  <div class="item item-3">3</div>
  <div class="item item-4">
    <div class="sub-item item-4-1">4 <br> wrap</div>
    <div class="sub-item item-4-2">5</div>
  </div>
  <div class="item item-5">
    <div class="sub-item item-5-1">6</div>
    <div class="sub-item item-5-2">7</div>
  </div>
</div>

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

https://stackoverflow.com/questions/38247705

复制
相关文章

相似问题

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