Argomento vecchio, ma penso che abbia bisogno di maggiore chiarezza.
Sia em
e rem
sono unità relative, ma rem
è sempre rispetto alla dimensione del font html
(l'elemento “root”) piuttosto che la dimensione del carattere ereditato.
Mai utilizzare px
o pt
per quello, sullo schermo. Codificando a fondo la dimensione del carattere, ignori le impostazioni dei caratteri personali preferite dell'utente e rendi meno cooperativo lo zoom.
Entrambe em
e rem
hanno un ruolo utile da svolgere. Né è perfetto per tutte le occasioni. Ecco alcuni esempi:
Usa rem
per evitare dimensionamento compounding:
ul#something li { font-size: 1.2rem; }
… or …
ul#something li { font-size: 1.2rem; }
Il primo comporterà elenchi annidati avente progressivamente grande dimensioni, in quanto l'unità em
erediterà da un genitore li
elemento.
Usa rem
per impostare dimensioni indipendentemente:
article { font-size: .8rem; } /* article base font size */
article>h2 { font-size: 2rem; } /* … except for h2 */
E, naturalmente è possibile utilizzare entrambi:
div#something { font-size: 1.2rem; } /* based on html size */
div#something>h2 { font-size: 2em; } /* based on div#something */
Due anni lungo la pista, ora, e possiamo usarlo, ignorando tranquillamente i browser legacy.
Includi collegamenti per il bene superiore :) –
http://snook.ca/archives/html_and_css/font-size-with-rem copre le differenze tra rem ed em. – mjwills
Penso che il REM si divida. –