@eugenedrvnk

Когда стоит применять em вместо rem?

Как-то у меня мозг довольно сильно запутался в плане применения "ремов" и "емов", по этому надеюсь на вашу помощь.

Есть следующий пример:


У всего макета стоит "font-size: 62.5%;" дабы в дальнейшем 1rem = 10px для простоты вычислений.

Скорее всего, у меня возникнет ситуация когда одной из секций (в этом случае единственной), нужно будет уменьшить шрифт, соответственно и отступы между текстом и т.д. Каким образом это должно делаться?

Если через задавать стили для h1 и p в rem, то тогда прийдётся делать так же как и с пикселями, изменять каждое значение. Тогда по идее тут логичнее использовать em, задавая, к примеру секции font-size: 1rem, а значения абзаца и параграфа - в em и в дальнейшем просто уменьшать 1rem на нужное кол-во. Но в некоторых источниках натыкался на информацию мол использовать em и вовсе не стоит, и как тогда поступать?)

И так же, как правильнее будет сделать, к примеру, этот компонент?
e9vAjPs.png
Задавать отсутпы в rem и потом через media их менять повсюду?
Или же для компонентов логичнее всё время всё таки использовать em?
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега CSS
Руководитель frontend направления, предприниматель
Верстка на rem-ах производится с вычислением от корня документа, т.е. body, html, а em от родителя. Притом если у родителя нет изменения в размере font-size, то поиск изменения будет подниматься вверх вплоть до корня.

Пример тут.

PS: такой подход позволяет на десктопа указать в html, body{ font-size: 20px, а для таблеток и мобильных html, body{ font-size: 16px и верстка будет пересчитана сама.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AntonLitvinenko
@AntonLitvinenko
HTML coder
Вот тут хорошо описано отличие em от rem:
https://learn.javascript.ru/css-units
В двух словах, em наследует от текущего размера родителя, а rem от базового размера шрифта, заданого html.

Недавно довелось дорабатывать верстку, сделанную полностью на rem. Так вот, я по привычке некоторыее размеры писал в пикселях, в частности размеры кнопки у слайдера итд. Идея была в том, чтобы на мониторах 4к хорошо выглядело, в итоге базовый шрифт для 4к мониторов был увеличен до 30. НО! Все размеры что я писал в пикселях пришлось тоже переписать на ремы, потому что кнопки стали пропорционально слишком мелкие

Собственно есть даже плагины для галпа, которые переводят ваши пиксели сразу в ремы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы