Mam elastyczny kontener o zdefiniowanej wartości width
. Kontener ma flex-direction: row
i 2 kolumny. Jedna to stała szerokość, jest nieelastyczna. Drugi jest elastyczny i powinien pasować do pozostałej przestrzeni kontenera.Element flex przekracza swój kontener
Gdy elastyczna zawartość kolumny to wystarczająco długo przepełnia ona kontener, przekracza jego szerokość.
Dlaczego tak się dzieje? I jak mam to naprawić w odpowiedni sposób?
Uwaga: Rozwiązałem już to za pomocą flex: 1 0 0 zamiast 1 0 auto i wszystko byłoby dobrze. Ale nie rozumiem, dlaczego przestaje przekraczać rodzica i dlaczego zaczyna owijać zawartość? Czy jest to nawet sposób na zrobienie tego?
HTML:
<div class="flex-container">
<div class="flex-item inflexible">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
<div class="flex-item flexible">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
CSS:
.flex-container {
display: flex;
flex-direction: row;
width: 500px;
background-color: green;
}
.flex-item {
display: block;
margin: 20px 0;
}
.inflexible {
flex: 0 0 auto;
width: 100px;
background-color: red;
}
.flexible {
flex: 1 0 auto;
background-color: blue;
}
Romeno, Czy chcesz zawinąć tekst do nowej linii? –
który jest oczekiwany, ze względu na ustaloną szerokość nieelastyczną i bez szerokości zdefiniowanej w CSS, więc nie będzie zawijał i dostosowywał szerokości zgodnie z treścią –
, aby uniknąć problemu, zdefiniuj stałą szerokość dla elastycznego, elastycznego { flex: 1 0 automatyczny; tło-kolor: niebieski; } –