Tipografia nel web design responsive con CSS
I caratteri responsive garantiscono che i testi rimangano ben leggibili su qualsiasi dispositivo. Invece di usare valori fissi di pixel, la tipografia si adatta dinamicamente alla larghezza dello schermo. L’implementazione tecnica con CSS avviene facilmente con unità flessibili o funzioni moderne.
Fai domande, crea contenuti, fai ricerche – in modo sicuro e senza limiti di chat con IONOS GPT. L'alternativa sovrana e conveniente a ChatGPT e simili.
Quale carattere è adatto a un web design responsive?
Per visualizzare il testo della tua pagina sullo schermo in modo ottimale, devi occuparti della tipografia nel web design responsive: utilizzi, pertanto, un carattere basato su vettori. Puoi ricorrere, ad esempio, a font web già pronti. Quando scegli il carattere è importante che sia leggibile e che corrisponda all’effetto che intendi dare. Nei titoli è permesso utilizzare un tipo di carattere più decorativo, nel testo principale dovrebbe però essere evitato, in quanto a lungo andare appesantisce la lettura.
Il colore del carattere dovrebbe essere in contrasto con lo sfondo del tuo sito. Non dovrebbe essere troppo spento, altrimenti la leggibilità ne risente. Nel caso in cui tu abbia dubbi sulla scelta del contrasto, con l’aiuto di strumenti del browser come Colour Contrast Check o Contrast Checker di WebAIM puoi visualizzare l’interazione di un font con un colore di sfondo e sperimentare con tonalità diverse.
Inserire font reattivi tramite media query
Dall’introduzione delle media query CSS nel CSS3 hai a disposizione un’opzione utile per realizzare caratteri che si adattano ai diversi tipi di visualizzazione. Le media query rilevano determinate caratteristiche di un dispositivo, che vengono utilizzate per adattare la visualizzazione dei testi del tuo sito web ai dispositivi finali degli utenti. Tra queste caratteristiche rientrano:
- Risoluzione dello schermo
- Larghezza e altezza della finestra del browser
Una tipografia responsive ottimale nei CSS non è ottenibile grazie all’inserimento di valori di pixel, in quanto i pixel sono dotati di dimensioni statiche. Soltanto l’utilizzo di unità di misura flessibili produce un carattere il più possibile reattivo. Per questo dovresti definire le dimensioni di un font tramite unità relative come em, rem o dati percentuali.
L’inserimento e l’allineamento di una tipografia responsive tramite le media query avviene grazie a questi comandi CSS:
- Con
@font-faceapplichi prima di tutto un font sulla tua pagina. - Tramite le query
@mediapuoi creare un font responsive che si adatta a diverse larghezze dello schermo, ad esempio@media screen and (min-width: 800px). - Il comando
font-sizedefinisce la dimensione di visualizzazione del carattere: in pixel o unità di misura relative comeem.
Creare titoli responsive con media query
Nei CSS i titoli vengono indicati con le abbreviazioni h1, h2, h3, ecc. A un titolo puoi assegnare diverse dimensioni relative di visualizzazione per mezzo di unità em. L’esempio seguente mostra, come visualizzare il primo titolo (h1) nelle diverse dimensioni relative partendo da una dimensione del carattere in scala percentuale (font-size: 100%).
body {font-size: 100%;}
h1 {font-size: 3em;}
@media screen and (max-width: 64em) {
h1 {
font-size: 2.5em;
}
}
@media screen and (max-width: 50em) {
h1 {
font-size: 2em;
}
}
@media screen and (max-width: 30em){
h1 {
font-size: 1.5em;
}
}cssCon questo esempio vengono prefissate con il tag h1 quattro diversi tipi di visualizzazione. La larghezza della finestra del browser utilizzato stabilisce quando viene usato uno di questi quattro caratteri, definiti considerando la dimensione massima dello schermo (max width).
La larghezza viene configurata per esempio in base all’unità di misura em. Poiché precedentemente non sono state definite alcune dimensioni del testo, il valore si adatta alle impostazioni standard del browser utilizzato, di regola 16 pixel. Poiché 1em corrisponde esattamente a 16px, puoi calcolare facilmente le larghezze desiderate dividendo il numero di pixel per 16. Nell’esempio, la dimensione del font di h1 reagisce a quattro larghezze della finestra:
- oltre 1024 pixel;
- fino a 1024 pixel (64em);
- fino a 800 pixel (50em) e
- fino a 480 pixel (30em).
Con un titolo più lungo è possibile che questi presentino un’interruzione di riga su schermi più piccoli. Inoltre, dovresti allineare in proporzione anche l’interlinea del titolo. Nel prossimo paragrafo ti mostriamo come realizzare queste misure.
Testo principale responsive con l’unità em
Come nei titoli definisci per un paragrafo (p) la dimensione del carattere su 100%. Anche qui il corpo del carattere viene definito con l’unità em. Di seguito un esempio di CSS dell’attuazione delle diverse dimensioni dei caratteri che si orientano alle quattro larghezze della finestra, precedentemente indicate:
body {font-size: 100%}
p {font-size: 1.5em;}
@media screen and (max-width: 64em) {
body {
font-size: 90%;
}
}
@media screen and (max-width: 50em) {
body {
font-size: 75%;
}
}
@media screen and (max-width: 30em) {
body {
font-size: 50%;
}
}cssPoiché il valore body corrisponde al 100% della visualizzazione della maggior parte dei browser da 16 pixel, la dimensione base del carattere del testo (font-size: 1.5em) nel nostro esempio è pari a 24 pixel (1,5 x 16 = 24). Imposti una tipografia responsive sulla base delle indicazioni font-size; per quanto riguarda il body, la dimensione del carattere si adatta alla larghezza della finestra.
Quando imposti in modo responsive il tuo sito, devi adeguarlo non solo alla grandezza del carattere, ma anche sempre all’interlinea. Secondo una regola tipografica dovresti aumentare l’interlinea in base allo spazio tra le righe del testo. Un’altra regola dice che l’interlinea nel corpo del testo dovrebbe essere circa tra il 120 e il 140% della dimensione del carattere (1.2em fino a 1.4em): il valore dipende però sempre dal tipo di carattere utilizzato.
Puoi realizzarlo con il tag line-height (altezza del carattere).
body {font-size: 100%}
p {
font-size: 1.5em;
line-height: 1.3em;
}
h1, h2, h3 {line-height: 1.2em;}cssCorpo del testo più reattivo con l’unità rem
Anche l’utilizzo della relativa unità di misura rem (“root em”), anziché em, è adatta a un corpo del testo reattivo, in quanto l’unità rem si orienta all’elemento radice html (e non al rispettivo elemento come l’unità em). Questo ha come conseguenza il fatto che le dimensioni del carattere si uniformano relazionandosi a tutti i contenuti dell’elemento radice, cosa che rappresenta un vantaggio, soprattutto con concatenazioni complesse di elementi. Le istruzioni CSS per una tipografia web responsive con l’uso di rem si presentano, ad esempio, così:
html {font-size: 100%;}
p {font-size: 1.5rem;}
h1 {font-size: 3rem;}
h2 {font-size: 2.5rem;}
h3 {font-size: 2rem;}cssTuttavia, l’unità rem non viene supportata da tutte le versioni precedenti del browser. Se desideri presentare un design accattivante anche agli utenti di versioni più vecchie, dovresti installare un’opzione di fallback utilizzando i pixel. Di seguito un esempio del relativo codice:
html {font-size: 100%}
p{
font-size: 24px;
font-size: 1.5rem;
}cssInserire un font reattivo tramite viewport
Un’altra opzione per realizzare una tipografia responsive è l’utilizzo di unità viewport CSS. Il metatag viewport si utilizza per adattare le dimensioni del browser. Anche con i viewport in CSS puoi fare in modo che i contenuti di una pagina si adattino all’attuale larghezza della finestra e che vengano scalati in base alle relative dimensioni. Il vantaggio rispetto all’uso delle media query è il fatto che il processo di adeguamento a una nuova schermata avviene velocemente in base ai movimenti della mano.
Sono disponibili i viewport seguenti:
vw(“viewport width”): la larghezza relativa alla finestra del browservh(“viewport height”): l’altezza in base alle dimensioni del browservmax(“viewport maximum”): il valore più grande della larghezza o dell’altezzavmin(“viewport minimum”): il valore più piccolo della larghezza o dell’altezza
Tutte e quattro le unità viewport sono caratterizzate da dati percentuali, per esempio 10vw = 10% della larghezza del browser. A un viewport di 640 x 480 pixel corrisponderebbe un tag vmax di 640 pixel (il più alto dei due valori), mentre a una finestra del browser di queste dimensioni corrisponde il valore 10vmax = *64px* (640 : 10).
Analogamente alle misure rem, anche le unità viewport non sono supportate da tutte le versioni del browser.
Creare titoli e corpo del testo responsive con unità viewport
Con l’aiuto di unità viewport puoi regolare sia i titoli sia il corpo del testo. L’implementazione delle misure viewport avviene in modo simile all’utilizzo delle unità rem con le media query: entrambe le unità sono relative.
p {font-size: 2vmin;}
h1 {font-size: 5vw;}
h2 {font-size: 4vh;}
h3 {font-size: 3vmin;}cssAttraverso questi comandi CSS stabilisci ad esempio che i caratteri del corpo del testo (p) occupano continuamente il 2 per cento della larghezza o dell’altezza della finestra del browser (font-size: 2vmin) in base al quale è il valore minore. In questo modo, il web design responsive del font garantisce sempre la stessa relazione anche con sezioni più piccole della finestra del browser.
- Editor facile e intuitivo con supporto IA
- Immagini e testi d'effetto in pochi secondi
- Dominio, indirizzo e-mail e certificato SSL inclusi
Tipografia web responsive con clamp()
Un’altra possibilità molto pratica per creare una tipografia responsive in CSS è l’uso della funzione clamp(). Con clamp() puoi impostare una dimensione del carattere che cresce o si riduce automaticamente in base alla larghezza dello schermo, senza però diventare più piccola o più grande di determinati limiti. La sintassi è font-size: clamp(Minimo, Preferito, Massimo);. Vale quanto segue:
Minimo(min) è la dimensione minima del carattere consentita.Preferito(preferred) è la dimensione flessibile che si adatta dinamicamente alla larghezza del viewport.Maximum(max) è la dimensione massima del carattere che può essere raggiunta.
Un esempio di titolo potrebbe essere il seguente:
h1 {
font-size: clamp(1.5rem, 5vw, 3rem);
}cssIl vantaggio di clamp() rispetto alle media query è che la dimensione del carattere scala in modo fluido, senza che tu debba definire più breakpoint. Quindi non hai bisogno di query @media separate per dimensioni dello schermo diverse.
Conclusione: nel responsive web design non si può trascurare la tipografia
Ormai l’utilizzo di comandi CSS crea un web design responsive dei tuoi font. Dopo la loro messa in atto dovresti tuttavia ancora verificare il risultato su più dispositivi possibili (o provare diversi emulatori) e, eventualmente, effettuare dei miglioramenti prima di pubblicare la pagina.
Utilizzare media query o unità viewport CSS è una scelta che dipende sia dai tuoi gusti sia dalla situazione. Rispetto alle unità viewport, le media query sono più lente nella riproduzione in scala del carattere, vengono però supportate da browser più vecchi. Inoltre, ci sono altre possibilità per generare tipografie web reattive, cioè tramite container query. Tutti questi metodi soddisfano i requisiti di una tipografia web responsive: nel web design responsive il font deve adattarsi sempre alla dimensione dello schermo, anche se dipende dal relativo adattamento della dimensione del carattere e dell’interlinea nonché dall’utilizzo di font vettoriali.

