两个弹性项目的flexbox网格旁边的一个

时间:2017-03-30 20:57:35

标签: html css css3 flexbox

我想在左边有两个div,在右边有两个div。 bottomright应始终低于topRight div。 topRight是唯一具有可变高度的div。

我目前正在尝试使用您在下面的代码中看到的flexbox来实现此目的。

我想有一些指示。

.wrapper {
  display: flex;
  height: 100px;
}

.left {
  background-color: green
}

.topRight {
  background-color: yellow
}

.bottomright {
  background-color: red
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="topRight">TopRight</div>
  <div class="bottomright">Bottom</div>
  </div

3 个答案:

答案 0 :(得分:3)

如果您在代码中拥有固定的容器高度,则可以使用flex-direction: columnflex-wrap: wrap。固定高度用作断点,告诉柔性物品在哪里包裹。

&#13;
&#13;
.wrapper {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 100px;
}

.left {
  flex: 0 0 100%; /* consumes full height of first column; forces siblings to wrap */
  background-color: lightgreen
}

/* variable height div */   
.topRight {
  background-color: yellow
}

.bottomright {
  flex: 1; /* consumes remaining space in column */
  background-color: red
}
&#13;
<div class="wrapper">
  <div class="left">Left</div>
  <div class="topRight">TopRight<br>variable height</div>
  <div class="bottomright">Bottom</div>
  </div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在html上放一个带有一个名为right的类的div包装topRight和bottomRight并在css上使用这个css:

.wrapper {
  display: flex;
  height: 100px;
}

.right {
 display: flex-flow;
 }

.left {
     background-color: green
}

.topRight {
 background-color: yellow;
 height: 50px;
}

.bottomright {
  background-color: red;
  height: 50px;
}

我希望能帮到你:)。

答案 2 :(得分:1)

适用于信息

display:grid是为此而制作的......很快就可用于大多数浏览器,而且还有一些

其他教程:https://css-tricks.com/snippets/css/complete-guide-grid/

.wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  /* any height s */
  background-color: green;
}

.leftspan {
  grid-row: span 2;/* if 2 rows avalaible */
}

.topRight {
  background-color: yellow;
  grid-column: 2 /-1
}

.bottomright {
  background-color: red;
  grid-column: 2 /-1
}

.bottomfull {
  background-color: red;
  grid-column: 1 /-1
}
<div class="wrapper">
  <div class="leftspan">Left spanning 2 rows</div>
  <div class="topRight">Top <br/>Right</div>
  <div class="bottomright">Bottom <br/>Right</div>
  </div>
  <p> or did you mean ?
  <div class="wrapper">
  <div class="left">Left</div>
  <div class="topRight">Top Right</div>
  <div class="bottomfull">Bottom <br/>Right</div>
  </div>

渲染,如果您的浏览器了解网格:render in latest firefox