Parliamo

project-cherry.dev

Fondamenta10 min

Flexbox

Il sistema di layout monodimensionale per allineare e distribuire elementi in riga o colonna.

Flexbox

Flexbox è il sistema di layout ideale per distribuire elementi su un asse — orizzontale o verticale. È perfetto per navbar, card affiancate, centratura e distribuzione dello spazio.

Attivare Flexbox

Basta aggiungere display: flex al contenitore padre.

css
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

Proprietà del contenitore

css
.container {
  display: flex;
  flex-direction: row;        /* row | column */
  justify-content: center;    /* asse principale */
  align-items: stretch;       /* asse trasversale */
  flex-wrap: wrap;             /* permetti a capo */
  gap: 16px;                  /* spazio tra elementi */
}

Proprietà dei figli

css
.elemento {
  flex-grow: 1;    /* quanto spazio extra occupare */
  flex-shrink: 0;  /* se può restringersi */
  flex-basis: 200px; /* dimensione base */
}

/* Shorthand */
.elemento {
  flex: 1 0 200px;
}

Centrare qualsiasi cosa

Il pattern più utile di Flexbox: centratura perfetta sia in orizzontale che in verticale.

css
.centrato {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}