#html #css #flexbox
#HTML #css #flexbox
Вопрос:
Есть ли способ, чтобы блоки 1, Блок2 и Блок3 имели одинаковую ширину с приведенной ниже 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>
Ответ №1:
сделайте так, чтобы block-right
иметь 33%
ширину и 66%
слева. Для этого вы можете просто использовать flex:2
и flex: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>
Комментарии:
1. Огромное спасибо за объяснение!