Junior
Come funzionano le proprietà flex-grow e flex-shrink?
sobes.tech AI
Risposta dell'AI
flex-grow e flex-shrink controllano come gli elementi flex distribuiscono lo spazio libero all'interno del contenitore flex.
flex-grow:
- Determina quale parte dello spazio libero disponibile nel contenitore flex occuperà l'elemento, se c'è spazio libero.
- Per impostazione predefinita
flex-grow: 0, il che significa che l'elemento non cresce. - Valore - numero non negativo.
- Se più elementi hanno
flex-growmaggiore di 0, lo spazio libero viene distribuito tra loro in proporzione ai loro valori diflex-grow.
flex-shrink:
- Determina quanto l'elemento si comprimerà se lo spazio disponibile nel contenitore flex è inferiore alla somma delle dimensioni di base di tutti gli elementi flex.
- Per impostazione predefinita
flex-shrink: 1, il che significa che l'elemento può comprimersi. - Valore - numero non negativo.
- Più alto è il valore di
flex-shrink, più l'elemento si comprimerà rispetto agli altri con valori inferiori. - Durante la compressione, si considera la larghezza di base dell'elemento (
flex-basisowidth).
Esempio:
.contenitore {
display: flex;
width: 500px;
/* Larghezza totale del contenitore */
}
.elemento {
flex-basis: 100px;
/* Larghezza di base di ogni elemento */
}
.elemento:nth-child(1) {
flex-grow: 1;
flex-shrink: 1; /* Valori di default */
}
.elemento:nth-child(2) {
flex-grow: 2;
flex-shrink: 0; /* Non si comprime */
}
.elemento:nth-child(3) {
flex-grow: 0; /* Non cresce */
flex-shrink: 2; /* Si comprime di più */
}
Se la somma delle larghezze di base (300px) è inferiore alla larghezza del contenitore (500px), lo spazio rimanente (200px) verrà distribuito tra il primo e il secondo elemento in proporzione 1:2.
Se la somma delle larghezze di base supera la larghezza del contenitore, gli elementi si comprimeranno in base ai loro valori di flex-shrink e alle loro dimensioni di base. L'elemento con flex-shrink: 0 non si comprimerà.