em і rem - це відносні одиниці на основі шрифтів, і різне використання ems для шрифтів або довжини, тому і ems, і rems засновані на шрифтах, але різниця між ними полягає в тому, що ems використовує батьківський або поточний елемент як посилання, тоді як rems використовуйте розмір кореневого шрифту як посилання.
Якщо ми хочемо використовувати ems для розмірів шрифтів, тоді посилання - це просто обчислений батьками розмір шрифту, подібний до того, що відбувається з відсотками.
У наведеному нижче прикладі розмір шрифту розміром до трьох символів у дочірньому елементі заголовка дає 72 пікселі просто тому, що це втричі більший розмір батьківського шрифту, який становить (150/100) * 16 = 24 пікселів. Тепер щодо довжини, це трохи інше. Заповнення 2em в заголовку, оскільки це вимірювання довжини, використовує розмір шрифту поточного елемента як еталон, і ми вже знаємо, що це 24 пікселі, тому 2em призведе до заповнення 48 пікселів, розумієте? Це незначна різниця, але важлива. Якщо ви використовуєте em, якщо для шрифтів посилання є батьківським, а довжина - посиланням є поточний елемент.
html,body{
font-size:16px;
width:80vw;
}
header{
font-size:150%;
padding 2em;
margin-bottom:10rem;
height:90vh;
widht 1000px;
}
header-child{
font-size:3em;
padding:10%;
}
Що стосується rem, він насправді працює однаково як для розмірів шрифту, так і для довжини, тому що завжди просто використовує розмір кореневого шрифту як посилання. Це означає, що 10 відступів, які ми маємо тут, дадуть 160 пікселів, оскільки розмір кореневого шрифту - 16.