При использовании единиц измерения rem верстальщики зачастую выставляю базовый размер шрифта равный 10 пикселям. В таком случае всё сводится к простым вычислениям, для которого не нужен калькулятор:

  • 10px -> 1rem
  • 23px -> 2.3rem

и так далее.

Такой подход хоть и имеет право на существование, но связан с одной проблемой: браузеры позволяют выставлять минимальный размер шрифта в своих настройках. При этом он выставляется не для тега html, что позволило бы пересчитать все единицы rem на странице, а просто насильно увеличивается размер шрифта. Это приводит к порой страшным результатам, особенно, если стоит не стандартное значение свойства line-height. Слипшиеся строки вам гарантированы.

Если мы всё же хотим использовать единицы rem и при этом высчитывать значения от реального базового размера шрифта, то нам понадобится конвертер px в rem.

В этом задании вам необходимо написать функцию px-to-rem, которая принимает на вход значения в пикселях, а на выходе возвращает значение в rem. На вход функции может поступать любое количество значений, разделённых пробелом. Это позволит писать адекватный SASS код в тех свойствах, где может быть не одно значение.

Возвращённое значение из функции обязательно должно быть в виде строки. Это позволит при любом наборе данных иметь на выходе значения, которые имеют одинаковый тип данных.

Примеры

$rem-base: 16px;

.px-20 {
  padding-left: px-to-rem(20px);
  padding-right: px-to-rem(20px);
}

.card {
  padding: px-to-rem(20px 15px 30px 45px);
}

После компиляции должен получится следующий CSS код:

.px-20 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.card {
  padding: 1.25rem 0.9375rem 1.875rem 2.8125rem;
}

Подсказки

  • Для перевода значения в строку можно воспользоваться интерполяцией.
Успешных завершений: 68%

Последние код-ревью

Автор Дата обновления Версий
user-157d14ee7bf1733e 24 июня, 14:04 1
frontlab 29 мая, 15:20 1
1g0rbm 28 мая, 19:25 1
tatiana_zh 27 мая, 13:53 1
ana_jj 12 мая, 19:14 1