Интерполяция
Интерполяцию можно использовать практически в любом месте таблицы стилей Sass, чтобы встроить результат выражение SassScript в фрагмент CSS. Просто заключите выражение в #{}
в любом из следующих мест:
- Селекторы в правилах стиля
- Имена свойств в объявлениях
- Значения настраиваемых свойств
- CSS at-rules
@extend
- Обычный CSS
@import
ы - Строки в кавычках или без кавычек
- Специальные функции
- Простые имена функций CSS
- Громкие комментарии
В SassScript permalinkВ SassScript
- Dart Sass
- ✓
- LibSass
- ✗
- Ruby Sass
- since 4.0.0 (unreleased)
В SassScript можно использовать интерполяцию для внедрения SassScript в [строки без кавычек]unquoted strings. Это особенно полезно при динамическом создании имен (например, для анимации) или при использовании значений, разделенных косой чертой. Обратите внимание, что интерполяция в SassScript всегда возвращает строку без кавычек.
💡 Интересный факт:
Интерполяция полезна для вставки значений в строки, но в остальном она редко требуется в выражениях SassScript. Вам определенно не нужно просто использовать переменную в значении свойства. Вместо того, чтобы писать color: #{$accent}
, вы можете просто написать color: $accent
!
⚠️ Внимание!
Практически всегда использовать числовую интерполяцию - плохая идея. Интерполяция возвращает строки без кавычек, которые нельзя использовать для дальнейших вычислений, и избегает встроенных мер безопасности Sass, чтобы гарантировать правильное использование единиц измерения.
В Sass есть мощная арифметика единиц, которую вы можете использовать вместо этого. Например, вместо того, чтобы писать #{$width}px
, напишите $width * 1px
или, еще лучше, объявите переменную $width
в терминах px
для начала. Таким образом, если у $width
уже есть единицы измерения, вы получите красивое сообщение об ошибке вместо компиляции поддельного CSS.
Процитированные строки permalinkПроцитированные строки
В большинстве случаев интерполяция вводит тот же текст, который использовался бы, если бы выражение использовалось как значение свойства. Но есть одно исключение: кавычки вокруг цитируемых строк удаляются (даже если эти цитируемые строки находятся в списках). Это позволяет писать строки в кавычках, содержащие синтаксис, недопустимый в SassScript (например, селекторы), и интерполировать их в правила стиля.
⚠️ Внимание!
While it’s tempting to use this feature to convert quoted strings to unquoted strings, it’s a lot clearer to use the string.unquote()
function. Instead of #{$string}
, write string.unquote($string)
!