首页 > 解决方案 > 嵌套的弹性项目等宽

问题描述

有没有办法让 Block1、Block2 和 Block3 与我下面的 HTML 结构具有相同的宽度?我一直在尝试使用flex: 1导致 2 50% 列的结果。

小提琴

.container {
  display: flex;
  align-items: flex-start;
}

.blocks {
  display: flex;
  flex: 1;
}

.blocks-left {
  align-items: center;
  border: 2px solid purple;
}

.blocks-right {

}

.block {
  flex: 1;
}

#block-1 {
  background: red;
  height: 100px;
}

#block-2 {
  background: blue;
  height: 200px;
}

#block-3 {
  background: green;
  height: 400px;
}
<div class="container">
  <div class="blocks blocks-left">
    <div id="block-1" class="block">Block1</div>
    <div id="block-2" class="block">Block2</div>
  </div>
  <div class="blocks blocks-right">
   <div id="block-3" class="block">Block3</div>
  </div>
</div> 

标签: htmlcssflexbox

解决方案


使block-rightto 具有33%宽度和66%左侧。为此,您可以简单地使用flex:2flex:1这样左块的宽度将是右块的两倍

.container {
  display: flex;
  align-items: flex-start;
}

.blocks {
  display: flex;
  flex: 1;
}

.blocks-left {
  align-items: center;
  border: 2px solid purple;
  flex:2;
}

.blocks-right {
  flex:1;
}

.block {
  flex: 1;
}

#block-1 {
  background: red;
  height: 100px;
}

#block-2 {
  background: blue;
  height: 200px;
}

#block-3 {
  background: green;
  height: 400px;
}
<div class="container">
  <div class="blocks blocks-left">
    <div id="block-1" class="block">Block1</div>
    <div id="block-2" class="block">Block2</div>
  </div>
  <div class="blocks blocks-right">
   <div id="block-3" class="block">Block3</div>
  </div>
</div>


推荐阅读