У меня вопрос по css flex. Мой код:
.box {
width: 300px;
height: 300px;
background: aqua;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: left;
align-items: baseline;
align-content: stretch;
}
.item {
width: 50px;
height: 50px;
background: rgb(243, 62, 92);
font-size: 13px;
color: #fff;
border-radius: 50%;
display: flex;
justify-content: center;
/* align-self: center; */
align-items: center;
}
.box .one {
/* padding-top: 20px; */
background: red;
/* order: 1; */
/* flex-shrink: 1; */
align-self: stretch;
}
.box .two {
background: coral;
order: 2;
flex-shrink: 1;
}
.box .three {
background: forestgreen;
order: 31;
flex-shrink: 1;
}
.box .four {
background: tomato;
order: 4;
}
<div class = "box">
<div class = "item one">项目1</div>
<div class = "item two">项目2</div>
<div class = "item three">项目3</div>
<div class = "item four">项目4</div>
</div>
У меня есть гибкий контейнер с несколькими гибкими элементами, и я хочу растянуть один из элементов в поперечном направлении, используя свойство align-self: stretch;
. Однако предмет не выглядит растянутым, и я не уверен, почему это происходит. Можете ли вы помочь мне понять, почему align-self: stretch;
не работает в этом случае?
Спасибо.
Если я добавлю height: 100%
к box-one
- растягивается только первый элемент, остальные остаются в том же положении, это то, что вам нужно? Это не работает без настройки на 100%, потому что ваш элемент div получил личную высоту.
Когда вы определяете высоту гибкого элемента, это отменяет свойство align-self
.
Удалите height: 50px
на этом элементе, и align-self: stretch
будет работать.
Полное объяснение здесь: Как flex-wrap работает с align-self, align-items и align-content?
.box {
width: 300px;
height: 300px;
background: aqua;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: left;
align-items: baseline;
align-content: stretch;
}
.item {
width: 50px;
height: 50px;
background: rgb(243, 62, 92);
font-size: 13px;
color: #fff;
border-radius: 50%;
display: flex;
justify-content: center;
/* align-self: center; */
align-items: center;
}
.box .one {
/* padding-top: 20px; */
background: red;
/* order: 1; */
/* flex-shrink: 1; */
align-self: stretch;
height: auto; /* new */
}
.box .two {
background: coral;
order: 2;
flex-shrink: 1;
}
.box .three {
background: forestgreen;
order: 31;
flex-shrink: 1;
}
.box .four {
background: tomato;
order: 4;
}
<div class = "box">
<div class = "item one">项目1</div>
<div class = "item two">项目2</div>
<div class = "item three">项目3</div>
<div class = "item four">项目4</div>
</div>
удалить высоту этого элемента