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

cssselektor {
  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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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):

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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 pro flex-direction a flex-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 pro flex-grow, flex-shrink a flex-basis