Абсолютно позиционированные элементы находятся за пределами нормального потока страниц, что означает, что если дочерний элемент имеет абсолютное значение, то родительский элемент будет вести себя так, как будто дочернего элемента вообще нет.
Не вижу смысла использовать position:absolute
в вашем примере кода. Просто сделайте ярлыки display:block
. Или, если вам нужно, чтобы надписи оставались на своей естественной ширине, вместо этого сделайте span {display:block;}
.
.flex-container {
display: flex;
flex-wrap: wrap;
}
.container {
width: auto;
background-color: rgba(0, 255, 0, 0.4);
}
.container label {
/* display:block; */
font-size: 10px;
background-color: rgba(255, 0, 0, 0.4);
}
.container span {
display:block;
}
<div class="flex-container">
<div class="container">
<label>A Very, Very Long Labeltext</label>
<span>Example 1</span>
</div>
<div class="container">
<label>A Very, Very Long Labeltext</label>
<span>Example 2</span>
</div>
<div class="container">
<label>A short one</label>
<span>Example 3</span>
</div>
</div>
PS. id
должен быть уникальным.
UPDATE
Теперь я понимаю, что вы, возможно, не захотите, чтобы все ваши метки имели полную ширину (например, в случае коротких меток. В этом случае было бы более разумно установить span
как display: block, а не чем ярлык. Я обновил свой ответ соответственно.