Proprietà align-self

La proprietà align-self imposta l'allineamento lungo l'asse trasversale per un singolo blocco flex e lungo l'asse verticale per un singolo elemento in una griglia. In sostanza questa proprietà rappresenta la proprietà align-items, ma per un blocco specifico.

Sintassi

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

Valori

Valore Descrizione
flex-start Il blocco è allineato all'inizio dell'asse trasversale.
flex-end Il blocco è allineato alla fine dell'asse trasversale.
center Il blocco è centrato lungo l'asse trasversale.
baseline Il blocco è allineato secondo la sua linea di base. La linea di base è una linea immaginaria, che passa lungo il bordo inferiore dei caratteri senza tener conto dei tratti discendenti, ad esempio, come nelle lettere 'p', 'q', 'y', 'g'.
stretch Il blocco è stirato, occupando tutto lo spazio disponibile lungo l'asse trasversale, tuttavia vengono comunque considerati min-width e max-width, se impostati. Se invece sono impostate la larghezza e l'altezza per l'elemento - stretch verrà ignorato.
auto Il blocco sarà allineato come specificato nella proprietà align-items.

Valore predefinito: auto.

Esempio . Valore stretch

In questo esempio a tutti i blocchi è impostato il valore flex-start (proprietà align-items), e al terzo blocco - align-self con valore 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;
}

Результат:

Esempio . Valore flex-end

In questo esempio a tutti i blocchi per la proprietà align-items è impostato il valore flex-start, e al terzo blocco - align-self con valore 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;
}

Результат:

Esempio . Allineamento all'inizio dell'asse verticale nella griglia

Impostiamo l'allineamento per il primo elemento all'inizio dell'asse verticale:

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;
}

Результат:

Esempio . Allineamento al centro dell'asse verticale nella griglia

Impostiamo l'allineamento del primo elemento al centro dell'asse verticale:

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;
}

Результат:

Esempio . Allineamento alla fine dell'asse verticale nella griglia

Impostiamo l'allineamento per il nostro primo elemento nella griglia alla fine dell'asse verticale:

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;
}

Результат:

Vedi anche

  • proprietà flex-direction,
    che imposta la direzione degli assi dei blocchi flex
  • proprietà justify-content,
    che imposta l'allineamento lungo l'asse principale
  • proprietà align-items,
    che imposta l'allineamento lungo l'asse trasversale
  • proprietà flex-wrap,
    che imposta la multilinea dei blocchi flex
  • proprietà flex-flow,
    scorciatoia per flex-direction e flex-wrap
  • proprietà order,
    che imposta l'ordine dei blocchi flex
  • proprietà flex-basis,
    che imposta la dimensione di un specifico blocco flex
  • proprietà flex-grow,
    che imposta l'"ingordigia" dei blocchi flex
  • proprietà flex-shrink,
    che imposta la comprimibilità dei blocchi flex
  • proprietà flex,
    scorciatoia per flex-grow, flex-shrink e flex-basis