Vlastnost align-self

Vlastnost align-self nastavuje zarovnání podél příčné osy pro jednotlivý flex-blok a podél svislé osy pro jednotlivý prvek v gridu. V podstatě tato vlastnost představuje vlastnost align-items, ale pro konkrétní blok.

Syntaxe

cssselektor {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

Hodnoty

Hodnota Popis
flex-start Blok je přitlačen k začátku příčné osy.
flex-end Blok je přitlačen ke konci příčné osy.
center Blok je umístěn uprostřed příčné osy.
baseline Blok je zarovnán 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ů, jako například u písmen 'p', 'q', 'y', 'g'.
stretch Blok je roztažen, zabírá veškerý dostupný prostor podél příčné osy, přičemž jsou však brány v úvahu min-width a max-width, pokud jsou nastaveny. Pokud je nastavena šířka a výška prvku - stretch bude ignorován.
auto Blok bude zarovnán tak, jak je nastaveno ve vlastnosti align-items.

Výchozí hodnota: auto.

Příklad . Hodnota stretch

V tomto příkladu je všem blokům nastavena hodnota flex-start (vlastnost align-items), a třetímu bloku - align-self s hodnotou stretch:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div id="elem">3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  align-items: flex-start;
  flex-direction: row;
  border: 1px solid #696989;
  height: 100px;
}
#parent > div {
  min-width: 100px;
  border: 1px solid #696989;
}
#elem {
  align-self: stretch;
}

Результат:

Příklad . Hodnota flex-end

V tomto příkladu je všem blokům pro vlastnost align-items nastavena hodnota flex-start, a třetímu bloku - align-self s hodnotou flex-end:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div id="elem">3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  align-items: flex-start;
  flex-direction: row;
  border: 1px solid #696989;
  height: 100px;
}
#parent > div {
  min-width: 100px;
  border: 1px solid #696989;
}
#elem {
  align-self: flex-end;
}

Результат:

Příklad . Zarovnání k začátku svislé osy v gridu

Nastavme zarovnání pro první prvek k začátku svislé osy:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  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 {
  align-self: start;
}

Результат:

Příklad . Zarovnání do středu svislé osy v gridu

Nastavme zarovnání prvního prvku do středu svislé osy:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  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 {
  align-self: center;
}

Результат:

Příklad . Zarovnání ke konci svislé osy v gridu

Nastavme zarovnání pro náš první prvek v gridu ke konci svislé osy:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  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 {
  align-self: end;
}

Результат:

Viz také

  • vlastnost flex-direction,
    která nastavuje směr os flex bloků
  • 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 flex bloků
  • vlastnost flex-flow,
    zkratka pro flex-direction a flex-wrap
  • vlastnost order,
    která nastavuje pořadí flex bloků
  • vlastnost flex-basis,
    která nastavuje velikost konkrétního flex bloku
  • vlastnost flex-grow,
    která nastavuje "dravost" flex bloků
  • vlastnost flex-shrink,
    která nastavuje stlačitelnost flex bloků
  • vlastnost flex,
    zkratka pro flex-grow, flex-shrink a flex-basis