La mia comprensione dal leggere thread come questo è che il punto di ems è per definire tutte le misure nella tua pagina web, tramite la dimensione del carattere di base , che può essere impostata dal tuo browser.
Ad esempio, in Chrome puoi farlo andando a settings -> show advanced settings -> web content -> font size: very large
. Potrei farlo se usassi un monitor grande e ad alta risoluzione, che era molto lontano.
Ho creato un plunker che dimostra la differenza tra ems e px nel ridimensionamento.
#div1 {
width: 320px
}
#div2 {
width: 20em;
}
Se nel mio browser ho impostato la dimensione del carattere su media, queste div saranno della stessa dimensione, la dimensione del font di base è 16px, quindi 20em = 320px.
Tuttavia,quandocambioladimensionedelcaratteredelmiobrowserfinoamoltogrande,possiamovederecheildivmisuratoinemshaaumentatoledimensioni.
Tuttavia,questoeffettoverràannullatoseadesempiodefiniscoladimensionedelcarattereneltagbody.
body{font-size:16px;}
Perchéorailmiocssstascavalcandoladimensionedelcarattereimpostatadalbrowser.
Hocapitochegliemsarebberostatiimportantiaitempideibrowserpiùvecchi,incuilozoomsullapaginaridimensionavasoloicaratteri.Maalgiornod'oggiibrowsermoderniaumentanosiapixelchefont,rendendoilproblemadellozoomproblematico.
SeguardiintornoalWeb,moltisitifannoimpostanoladimensionedelcaratterenellorotagbody.
Overflowdellostack,adesempio,impostaladimensionedelfontsu13pxneltagbody.L'impostazionedelladimensionedelcaratterenelmiobrowsernoninfluisceminimamentesullayoutdiOverflowdellostack.
IrisultatidiricercadiGooglenonlofanno.
(entrambi questi screenshot sono stati ripresi con le dimensioni dei caratteri di Chrome impostate su un valore molto grande e con uno zoom del 100%).
Quindi forse potresti obiettare che l'impostazione della dimensione del carattere nel tag del corpo è una cattiva idea perché impedisce le impostazioni di accessibilità di un utente. Ma dato che l'utente può ingrandire per aumentare le dimensioni (che aumenteranno proporzionalmente anche tutti i pixel) - questo non sembra un vero problema.