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
selettore {
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:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#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:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#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:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#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:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#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:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#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 perflex-grow,flex-shrinkeflex-basis