Можно ли отключить SASS RGB -> Имя цвета - PullRequest
13 голосов
/ 08 марта 2012

У меня есть такое правило CSS:

background: #fff url('/assets/img/file.png');

Оно компилируется в:

background: white url("/assets/img/file.png");

Есть ли способ предотвратить его преобразование таким образом?На моей странице есть JS, который ищет значения RGB, и мне не нужно преобразовывать эти строки в RGB в какой-нибудь хакерской функции.

1 Ответ

27 голосов
/ 08 марта 2012

По умолчанию Sass не будет преобразовывать буквенные значения цвета из их шестнадцатеричных значений, если вы не заставляете Sass интерполировать с #{} или переменной.

Использование интерполяции вернет "to_sass" версию интересующего вас значения. Например, #{ #fff } будет интерполировать в "white".Это также происходит во время замены переменных: цветовые литералы преобразуются в объекты Color при использовании в качестве переменных, а затем "to_sass" редактируются в вашей таблице стилей.

Кроме того, вы можете указать параметр стиля compressed, который будет возвращатьверсия с меньшей длиной байта (т.е. red вместо #f00).Поскольку white имеет длину 5 символов, а #fff - только 4, вместо этого ваше правило будет заменено на #fff.

Невозможно отключить обратное преобразование имени цвета HTML4 при использовании переменных.В качестве обходного пути вы можете объявить переменные цвета в виде строки, а затем использовать их в стилях с помощью функции unquote().

$color: '#fff';
.white { color: unquote($color) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...