Artem Borovikov: У ем есть одна специфическая черта, его размер зависит от font-size родителя.
Например: #myblock>a{text}
У тега А: размер шрифта 1em, а отступы по 0.5em.
Нам нужно уменьшить размер блока в два раза если открывают с мобилки, достаточно у #myblock поставить font-size: 0.5em и все внутренние элементы станут в двое меньше.
@Petroveg Безусловно согласен с первой частью, это только мое отношение к единице.
Наш разговор что то затянулся и сильно отошло от темы вопроса, так что искрении желаю удачи и по больше хороших проектов :)
@Petroveg вроде я уже тоже самое написал "Все браузеры преобразовывают в конечное число, то есть в PX.", только более кратко ))
Я знаю разницу, да и читал htmlbook.ru/content/edinitsy-izmereniya
Однако PX хоть не абсолютная единица измерения, все же предпочитаю к ней так относиться.
У нее нету четких определений в см, м. или километрах, но все равно она более менее жесткая единица.
Что 100 px на ноутбуке что 100 px на телефоне с ретиной, разницы в масштабировании "нету".
Да нету, определения в см, но прислонив телефон к монитору разницы Вы не заметите.
@Petroveg Все браузеры преобразовывают в конечное число, то есть в PX.
Речь шла об "А потом захочется поставить не 16px в root (он же html), а 24px. И поехала к чёрту такая вёрстка."
Можете проверить свое мнение об "И поехала к чёрту такая вёрстка", пожалуйста измените @font-size на 24px и посмотрите что все значения пересчитались и верстка ровная...
@Petroveg Конечно нет! Ведь не кто не высчитывает подобные вещи в калькуляторе, а используют препроцессоры LESS, SASS и т.д.
Задается базовый размер шрифта и от него считаются...
Простой пример:
@font-size: 24px;
@em: ( 1em / @font-size );
Например: #myblock>a{text}
У тега А: размер шрифта 1em, а отступы по 0.5em.
Нам нужно уменьшить размер блока в два раза если открывают с мобилки, достаточно у #myblock поставить font-size: 0.5em и все внутренние элементы станут в двое меньше.
Меньше кода, больше резины xD