I CSS em
sono un ottimo strumento, ma ci sono cose che mi hanno sempre infastidito, probabilmente perché non li capisco completamente.In che modo i valori della dimensione dei font vengono convertiti nei rendering CSS tra i browser?
I caratteri non vengono visualizzati correttamente a ogni dimensione e, in particolare, a valori inesatti. Ecco perché, se si vuole dare utilizzando em
valori esatti pixel per i font, devi fare le cose come (supponendo che non ha cambiato la dimensione del font 16px del corpo):
font-size: 0.875em; /* 14px */
font-size: 1.25em; /* 18px */
Forse voleva solo per aumentare le dimensioni un po ', ma poi rendersi conto che 0.9em
= 14.4px
, e poi ti sei spaventato il tuo carattere potrebbe sembrare sfocato! In ogni caso, se si specifica un paragrafo font-size
di 1.25em
(18px
) e quindi si modifica la dimensione del corpo da 16px a 14px, il paragrafo sarà 17.5px
. Di nuovo sfocato!
Supponendo che stiamo lavorando su comuni schermi a razione 1x come quelli desktop, come sarebbe, ad esempio, il rendering di un font 11.5px
? Li ho stampati su un file html di prova e sembrano esattamente come un font 12px
. Ma questo è il comportamento consigliato tra tutti i browser? E per quanto riguarda le dimensioni come padding e margine che possono essere determinate dalla dimensione del font quando si utilizza ems? Vengono anche arrotondati?
MODIFICA: Ho fatto un confronto tra i rendering su 3 browser di sindaco. Eccolo:
ho scalato l'alto (200%) un po ', in modo che sia più facile vedere i dettagli. In alto, puoi vedere come lo stesso testo esegue il rendering a 14px (a sinistra) e 14,4px (a destra). Di seguito, li ho sovrapposti a Photoshop usando la modalità di fusione Differenza per vedere se c'è qualche differenza. Come puoi vedere, Chrome arrotonda la dimensione del carattere e lo rende alla stessa dimensione, mentre l'altezza della scatola è diversa. Firefox ha la stessa altezza ma il rendering del font è leggermente diverso sull'asse x, mentre l'altezza del carattere sembra uguale. Il risultato di IE è una specie di mix. In ogni caso, sono davvero sorpreso perché il font 14.4px non sembra essere affatto blured.
Nel mio caso non vedo un salto da 0.5px, vedo una linea di pixel orizzontali dissolvenza sempre di più fino a che scompaiono – Vandervals
Quale browser utilizzando. Ho provato questo su Firefox 45 e 47? – Druzion
in realtà hai ragione per firefox, ma non sembra così su chrome ... – Vandervals