Convertitore PX ↔ REM ↔ EM ↔ PT
Converti le unità CSS in entrambe le direzioni con una dimensione radice configurabile — px, rem, em e pt si aggiornano insieme.
814 visualizzazioni
Come Funziona
rem = px ÷ dimensione radice (16px di default, quindi 24px = 1,5rem); em funziona allo stesso modo ma rispetto alla dimensione del font ereditata dall'elemento stesso — il campo "dimensione di contesto" del convertitore; pt è l'unità di stampa, dove 1pt = 1,333px (96dpi ÷ 72). Digita in un campo qualsiasi e gli altri seguono automaticamente.
Esempio pratico: su una base di 16px, un titolo di 1,25rem viene renderizzato a 20px. Annida un'etichetta di 0,875em dentro un componente la cui dimensione del font è 1,125rem (18px), e verrà renderizzata a 15,75px — perché em si moltiplica rispetto al genitore immediato, non alla radice.
Cosa Sapere
- rem è relativo all'elemento radice, non a un valore predefinito fisso del browser. L'assunzione dei 16px vale solo se nessuno l'ha modificata. Se un utente aumenta la dimensione del font predefinita del browser nelle impostazioni di accessibilità — comune tra le persone ipovedenti — ogni valore basato su rem si ridimensiona proporzionalmente insieme ad essa. I valori in pixel no: un paragrafo di 16px resta 16px indipendentemente dalla preferenza del browser dell'utente.
- Per questo le linee guida sull'accessibilità preferiscono rem per la dimensione del font e la spaziatura. Un layout costruito in rem rispetta la dimensione del testo scelta dall'utente end-to-end — titoli, corpo del testo e la spaziatura circostante crescono tutti insieme, mantenendo il design proporzionato invece di rompersi quando il testo si ingrandisce.
- em è relativo alla propria nidificazione, che si accumula. Un valore di 1,5em dentro un altro elemento di 1,5em viene renderizzato a 2,25× la radice — utile per componenti che devono ridimensionarsi con il proprio contesto di dimensione del font (come il padding di un pulsante), rischioso per qualsiasi cosa annidata su più livelli.
- Il vecchio "trucco del 62,5%" — impostare la radice a 10px in modo che 1rem = 10px, per facilitare il calcolo mentale — funziona ancora ma vale la pena evitarlo nei nuovi progetti: la maggior parte delle librerie di componenti presuppone una radice di 16px, e sovrascriverla può produrre dimensioni impreviste nel codice di terze parti.
- pt è definito rispetto a px, non viceversa. Il CSS fissa il rapporto a 1in = 96px = 72pt, quindi 1pt = 96/72 = esattamente 1,333px. Questo conta soprattutto quando si esporta un design per la stampa o il PDF, dove pt è l'unità nativa — la conversione mantiene coerenti le dimensioni a schermo e quelle stampate.
Domande Frequenti
Perché il mio valore in em è diverso da quello in rem?
em si moltiplica per la dimensione del font definita più vicina, che si annida: un 1,5em dentro un elemento da 1,5em equivale a 2,25 volte la radice. rem fa sempre riferimento alla radice — questa prevedibilità è il motivo del suo successo.
1pt è davvero 1,333px?
In CSS sì, per definizione: 1in = 96px = 72pt. I PDF di stampa e il CSS concordano su questo rapporto, anche se la dimensione fisica reale dipende dal DPI effettivo dello schermo.
Perché le linee guida sull'accessibilità raccomandano rem invece di px per il testo?
Perché rem si ridimensiona con la preferenza di dimensione del font dell'utente, mentre px no. Chi aumenta la dimensione del testo predefinita del browser — un adattamento comune per l'ipovisione — vede ogni dimensione del font e spaziatura basata su rem crescere proporzionalmente, mentre il testo basato su pixel resta bloccato alla sua dimensione originale, esattamente il tipo di problema che gli audit di accessibilità segnalano.
Cosa succede ai valori in rem se un utente cambia la dimensione del font predefinita del browser?
Si ridimensionano automaticamente. Se la dimensione del font radice è lasciata al valore predefinito del browser e un utente imposta quel valore predefinito a, ad esempio, 20px invece di 16px, ogni 1rem nel tuo CSS ora equivale a 20px invece di 16px — senza bisogno di modifiche al codice. Questo funziona solo se la dimensione del font radice stessa è lasciata non impostata o definita in modo relativo, non fissata in px.
Dovrei mai usare px?
Sì, per le cose che non devono davvero mai ridimensionarsi con il testo: bordi sottilissimi, icone di dimensione fissa o ombre da 1px. La regola pratica che usano la maggior parte dei team è: rem per la dimensione del font e la spaziatura del layout, em per il padding relativo al componente, e px solo per i dettagli che devono restare visivamente costanti indipendentemente dall'impostazione della dimensione del testo dell'utente.
Strumenti Simili
Segnala un Problema
Convertitore PX ↔ REM ↔ EM ↔ PT
Commenti
Ancora nessun commento — scrivi il primo!