Vlastnost align-items
Vlastnost align-items nastavuje zarovnání
prvků podél příčné osy pro flexboxy
a podél svislé osy pro gridy. Aplikuje se
na nadřazený prvek.
Syntaxe
selektor {
align-items: flex-start | flex-end | center | baseline | stretch;
}
Hodnoty
| Hodnota | Popis |
|---|---|
flex-start |
Bloky jsou přitlačeny k začátku příčné (svislé) osy. |
flex-end |
Bloky jsou přitlačeny ke konci příčné (svislé) osy. |
center |
Bloky jsou umístěny uprostřed příčné (svislé) osy. |
baseline |
Prvky jsou zarovnány podle své základní linie. Základní
linie -
je pomyslná čára procházející podél spodního okraje
znaků bez zohlednění převisů, například jako u písmen 'p' a 'y'.
|
stretch |
Bloky jsou roztaženy, zaujímají veškerý dostupný prostor podél příčné osy,
přičemž jsou však stále brány v úvahu min-width a max-width, pokud jsou nastaveny.
Pokud je nastavena šířka a výška pro prvky - stretch bude ignorován.
|
Výchozí hodnota: stretch.
Příklad . Hodnota stretch
Nyní je hlavní osa orientována zleva doprava, a podél příčné osy jsou prvky roztaženy na celou výšku:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: stretch;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
border: 1px solid #696989;
}
:
Příklad . Hodnota stretch + rozměry prvku
Nyní je pro prvky nastavena šířka a výška,
proto bude hodnota stretch pro vlastnost
align-items ignorována:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: stretch;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Příklad . Hodnota flex-start bez rozměrů prvku
Nyní budou prvky přitlačeny k hornímu okraji:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
border: 1px solid #696989;
}
:
Příklad . Hodnota flex-start + rozměry prvku
Nyní budou prvky stále přitlačeny k hornímu okraji, avšak budou mít nastavenou šířku a výšku:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Příklad . Hodnota flex-end + rozměry prvku
Nyní budou prvky přitlačeny ke spodnímu okraji:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-end;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Příklad . Hodnota center + rozměry prvku
Nyní budou prvky umístěny uprostřed podél příčné osy (v tomto případě svisle):
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: center;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Příklad . Hodnota center, prvky různé velikosti
Nyní mají prvky různou velikost na výšku
(jsou nyní roztaženy textem, ale lze
nastavit i height), šířka je u všech stejná,
protože je nastavena vlastnost width:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: center;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
border: 1px solid #696989;
}
:
Příklad . Hodnota baseline, prvky různé velikosti
A takto vypadá zarovnání podle základní linie:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: baseline;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 130px;
line-height: 1;
border: 1px solid #696989;
}
:
Příklad . Zarovnání k začátku svislé osy v gridu
Zarovnejme naše prvky uvnitř buněk k začátku svislé osy:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: flex-start;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
A nyní se podívejme na náš grid v ladicím nástroji prohlížeče:
Příklad . Zarovnání do středu svislé osy v gridu
A nyní zarovnejme naše prvky v buňkách do středu svislé osy:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: center;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
Podívejme se na zobrazení gridu v ladicím nástroji:
Příklad . Zarovnání ke konci svislé osy v gridu
Znovu změňme zarovnání prvků, tentokrát ke konci svislé osy:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: end;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
#elem1 {
}
:
A nyní se podívejme, jak vypadá náš grid přes ladicí nástroj:
Viz také
-
vlastnost
flex-direction,
která nastavuje směr os flexboxů -
vlastnost
justify-content,
která nastavuje zarovnání podél hlavní osy -
vlastnost
align-items,
která nastavuje zarovnání podél příčné osy -
vlastnost
flex-wrap,
která nastavuje víceřádkovost flexboxů -
vlastnost
flex-flow,
zkratka proflex-directionaflex-wrap -
vlastnost
order,
která nastavuje pořadí flexboxů -
vlastnost
align-self,
která nastavuje zarovnání jednoho bloku -
vlastnost
flex-basis,
která nastavuje velikost konkrétního flexboxu -
vlastnost
flex-grow,
která nastavuje "hladovost" flexboxů -
vlastnost
flex-shrink,
která nastavuje smrštitelnost flexboxů -
vlastnost
flex,
zkratka proflex-grow,flex-shrinkaflex-basis