Вероятно, есть много обходных путей для этого, в зависимости от сложности, с которой вы хорошо работаете.
Не зная деталей вашего проекта, это может быть одним из решений - если я правильно понимаю, как вы используете свою функцию:
$base-size: 16px;
@function rem($size, $screen: desktop) {
$remSize: null;
@if ($screen == desktop) {
$remSize: ($size / $base-size) * 16/16;
}
@if ($screen == mobile) {
$remSize: ($size / $base-size) * 12/16;
}
@else {
$remSize: $size / $base-size;
}
@return #{$remSize}rem;
}
.some-text {
font-size: rem(24px); /* = 1.5rem */
}
@media (max-width: 480px) {
.some-text {
font-size: rem(24px, mobile); /* = 1.125rem */
}
}
Добавив аргумент $screen
в функцию rem()
, вы можете переключать базовый размер между рабочим столом и мобильным компьютером без изменения статической переменной.
В этом примере по умолчанию используется desktop
и используется max-with
в медиа-запросе, но с таким же успехом можно установить значение по умолчанию mobile
, и вы можете различать с помощью min-width
.