Grazie a CSS3, รจ possibile forzare il ritorno a capo di una stringa anche in assenza di spaziature tra i caratteri. In altre parole, la nuova versione del linguaggio CSS consente di andare a capo anche quando ci sono parole (o, meglio dire, stringhe) troppo lunghe che, normalmente, causerebbero un’impossibilitร per il testo di rispettare la dimensione del proprio box contenitore. Questa funzionalitร รจ particolarmente utile quando si gestiscono testi non spezzabili come URL o stringhe di codice.
Nella precedente lezione abbiamo visto come gestire il tracimamento del testo mediante la proprietร text-overflow
. I piรน attenti di voi avranno notato che, negli esempi, abbiamo utilizzato anche la proprietร white-space (CSS1) per definire il modo in cui gestire il testo in presenza di “spazi bianchi”. Con CSS3 il linguaggio ha fatto un passo in avanti consentendo allo sviluppatore di definire il comportamento del testo anche in “assenza di spazi”. Cerchiamo di spiegare meglio.
Parole troppo lunghe?
Cosa succede quando un box contiene delle stringhe molto lunghe e prive di spazi – come avviene, ad esempio, con le URL – che non possono essere “mandate a capo”? Se il box ha una larghezza fissa orizzontale, le parole troppo lunghe escono dal bordo a destra del box, causando un impatto negativo sul layout della pagina:
Questo avviene, ovviamente, se non รจ stata impostata la proprietร overflow: hidden
. Se รจ definita questa proprietร , infatti, tutto il testo che esce dai contorni del box viene tagliato, creando perรฒ un effetto poco elegante:
Nessuna delle due soluzioni, tuttavia, รจ veramente soddisfacente. Ci sono molti casi in cui รจ meglio forzare il ritorno a capo delle parole troppo lunghe. Questo puรฒ avvenire grazie alla nuova proprietร word-wrap
, ora chiamata overflow-wrap
nei moderni standard CSS, che, utilizzata col valore break-word
, fa sรฌ che le parole eccessivamente lunghe vengano comunque spezzate su piรน righe per ragioni di spazio. Ecco un esempio pratico di codice:
div.box {
border: 2px solid;
padding: 10px;
width: 200px;
word-wrap: break-word; /* Utilizzare overflow-wrap nei moderni CSS */
}
Il risultato, sebbene non perfetto, รจ sicuramente piรน ordinato rispetto ai precedenti metodi. Inoltre, fa sรฌ che il contenuto rimanga all’interno dei confini del layout previsto, migliorando l’usabilitร e l’aspetto estetico della pagina.
Purtroppo non รจ possibile inserire un segno che indichi il ritorno a capo, come il classico trattino (-), quando si utilizza word-wrap
(o overflow-wrap
). Tuttavia, รจ possibile stilizzare il testo in modo tale da mantenere una buona leggibilitร e usabilitร .
Il valore di default di word-wrap
รจ “normal”, e corrisponde alla situazione in cui il testo viene mandato a capo solo in presenza di spazi. Consigliamo di utilizzare overflow-wrap: break-word
quando si ritiene necessario gestire parole senza spazi in layout responsivi.