Nie chcesz rozciągać przęsła na wysokość?
Masz możliwość wpłynięcia na jeden lub więcej elementów elastycznych, aby nie rozciągać całej wysokości pojemnika.
Aby wpłynąć na wszystkie elementy elastyczne w kontenerze, wybierz to:
Musisz ustawićalign-items: flex-start;
nadiv
i wszystkie elementy elastyczne w tym kontenerze otrzymają wysokość swojej zawartości.
div {
align-items: flex-start;
background: tan;
display: flex;
height: 200px;
}
span {
background: red;
}
<div>
<span>This is some text.</span>
</div>
Aby wpłynąć tylko na jeden element elastyczny, wybierz to:
Jeśli chcesz rozciąć pojedynczy element elastyczny na pojemniku, musisz ustawićalign-self: flex-start;
ten element elastyczny. Nie ma to wpływu na wszystkie inne elementy elastyczne kontenera.
div {
display: flex;
height: 200px;
background: tan;
}
span.only {
background: red;
align-self:flex-start;
}
span {
background:green;
}
<div>
<span class="only">This is some text.</span>
<span>This is more text.</span>
</div>
Dlaczego tak się dzieje span
?
Wartość domyślna właściwości align-items
to stretch
. To jest powód, dla którego span
wypełnia wysokość div
.
Różnica między baseline
i flex-start
?
Jeśli masz jakiś tekst na elementach elastycznych, z różnymi rozmiarami czcionek, możesz użyć linii bazowej pierwszego wiersza, aby umieścić element elastyczny w pionie. Element elastyczny z mniejszym rozmiarem czcionki ma pewną przestrzeń między kontenerem a sobą u góry. Z flex-start
elastycznym elementem zostanie umieszczony na górze kontenera (bez spacji).
div {
align-items: baseline;
background: tan;
display: flex;
height: 200px;
}
span {
background: red;
}
span.fontsize {
font-size:2em;
}
<div>
<span class="fontsize">This is some text.</span>
<span>This is more text.</span>
</div>
Więcej informacji na temat różnicy między baseline
i można znaleźć flex-start
tutaj:
Jaka jest różnica między flex-start a baseline?
baseline
aflex-start
? Ich wyniki wydają się być takie same. Czy mogą się różnić w danej sytuacji?