Menu

Dimensione del font CSS: font-size in px, rem, em ed esempi

La proprietà font-size imposta quanto è grande il testo. Impara le unità che accetta (px, rem, em, %, parole chiave, vw), come cambiare la dimensione del testo in HTML, perché rem è la scelta sicura e come le dimensioni in em si moltiplicano.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Come impostare la dimensione del font in CSS

La proprietà font-size imposta la dimensione del testo. Mettila su un elemento qualsiasi e ogni testo al suo interno eredita quella dimensione, a meno che un figlio non imposti la propria.

Per cambiare la dimensione del testo in HTML si usa comunque il CSS. Aggiungi un attributo style (<p style="font-size: 20px;">) o una regola in un foglio di stile. Il tag <font size="5"> degli anni '90 è obsoleto e non ha posto in una pagina moderna.

Le unità che accetta font-size

ValoreEsempioRispetto a cosa è relativo
px16pxNiente: una dimensione fissa
rem1.25remLa dimensione del font dell'elemento radice <html> (16px per impostazione predefinita)
em1.2emLa dimensione del font dell'elemento genitore
%120%La dimensione del font del genitore, come em (120% equivale a 1.2em)
Parola chiavelargeUna scala predefinita attorno al valore predefinito medium
Parola chiave relativasmaller, largerUn passo rispetto alla dimensione del genitore
Viewport4vwLa larghezza del viewport (il 4%)
Funzioneclamp(1rem, 4vw, 2rem)Fluida tra un minimo e un massimo

Scrivi un valore e guarda la dimensione calcolata dal browser:

Prova 20px, 2em, 150%, x-large, smaller e 5vw. Un valore non valido, come big, viene ignorato e il testo mantiene l'ultima dimensione valida.

rem o em: la differenza che fa male

rem guarda sempre l'elemento radice, quindi 1.2rem ha la stessa dimensione ovunque compaia. em guarda il genitore, quindi le dimensioni si moltiplicano quando gli elementi sono annidati:

Il box em più interno misura 16 × 1.2 × 1.2 × 1.2 = 27.648px. Il box rem più interno è ancora di 19.2px. Questa moltiplicazione è utile per un componente le cui parti devono scalare insieme, e una sorpresa ovunque altrove. La pagina sulle unità confronta tutte le unità di lunghezza.

Parole chiave: da xx-small a xx-large

Le parole chiave assolute corrispondono a una scala fissa attorno a medium, che equivale alla dimensione predefinita dell'utente (16px se non l'ha cambiata):

Con i 16px predefiniti, small è 13px, large è 18px, x-large è 24px e xx-large è 32px. Le parole chiave vanno bene per un lavoro veloce, ma un design system di solito vuole una propria scala in rem.

Dimensione del font fluida con clamp()

Un titolo che deve crescere con lo schermo ma non diventare mai troppo piccolo o troppo grande è una sola chiamata a clamp(): il minimo, una dimensione preferita che scala e il massimo.

In un'anteprima larga 800px, 5vw fa 40px, che sta tra 24px e 48px, quindi vince. La pagina su clamp approfondisce la tipografia fluida.

Impostare una dimensione di base per tutta la pagina

Imposta la dimensione una volta su body (o html) e dimensiona tutto il resto in relazione a quella:

html { font-size: 100%; }  /* respects the user's setting, usually 16px */
body { font-size: 1rem; }
h1   { font-size: 2.25rem; }
small, .caption { font-size: 0.875rem; }

Evita trucchi come html { font-size: 62.5%; } a meno che poi ogni dimensione della pagina non sia in rem, e non impostare mai una dimensione fissa in px su html: sovrascrive la dimensione del font che chi legge ha scelto nel browser, e alcune persone ne hanno bisogno per riuscire a leggere.

Note sull'accessibilità

  • Un testo di 16px o più è una buona soglia minima per leggere sullo schermo.
  • Le dimensioni in rem e em seguono l'impostazione predefinita del font dell'utente. Le dimensioni in px seguono lo zoom della pagina ma non quell'impostazione.
  • Su iPhone, Safari ingrandisce la pagina quando metti il focus su un input con un font sotto i 16px. Dai ai campi dei moduli font-size: 1rem o più per evitarlo.

Errori comuni

  • Usare il tag <font>. È obsoleto. Usa la proprietà font-size.
  • Dimensioni em annidate che crescono o si riducono senza controllo. Usa rem, a meno che tu non voglia la moltiplicazione.
  • Una dimensione fissa in px su html. Sovrascrive l'impostazione del font di chi legge.
  • Dimenticare che i titoli hanno già una dimensione. <h1> è 2em per impostazione predefinita, quindi serve h1 { font-size: 1em; } se lo vuoi grande come il testo normale.
  • Solo unità del viewport. font-size: 3vw diventa illeggibile su un telefono ed enorme su un monitor largo. Racchiudilo in clamp().

Domande frequenti

Come cambio la dimensione del font in CSS?

Imposta la proprietà font-size sull'elemento: p { font-size: 18px; }. Accetta lunghezze (px, rem, em), percentuali e parole chiave come large.

Come cambio la dimensione del testo in HTML?

Con il CSS, in un foglio di stile o in un attributo style: <p style="font-size: 20px;">. Il vecchio tag <font size="5"> è obsoleto in HTML5 e non va usato.

Qual è la dimensione predefinita del font nei browser?

16px per il testo normale, a meno che l'utente non l'abbia cambiata nelle impostazioni del browser. È il valore a cui equivalgono per impostazione predefinita 1rem e la parola chiave medium.

Meglio px, em o rem per la dimensione del font?

Usa rem per la maggior parte del testo: segue l'impostazione del font del browser dell'utente e non si moltiplica. Usa em quando una dimensione deve seguire il genitore, come un'icona dentro un pulsante. px non segue la dimensione predefinita che chi legge imposta nel browser, quindi evitalo per il testo normale.

Perché la mia dimensione in em continua a crescere?

Perché em è relativo alla dimensione del font del genitore, quindi gli elementi annidati si moltiplicano: 1.2em dentro 1.2em è 1.44 volte la base. Passa a rem, che è sempre relativo all'elemento radice.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA