Строки
Строки - это последовательности символов (в частности, кодовые точки Unicode). Sass поддерживает два типа строк, внутренняя структура которых одинакова, но которые отображаются по-разному: строки в кавычках, например: "Helvetica Neue", и строки без кавычек (также известные как идентификаторы), например, bold. Вместе они охватывают различные типы текста, которые появляются в CSS.
💡 Интересный факт:
Вы можете преобразовать строку в кавычках в строку без кавычек, используя функцию string.unquote(), и вы можете преобразовать строку без кавычек в строку в кавычках, используя функцию string.quote().
Экранирования permalinkЭкранирования
Все строки Sass поддерживают стандартные CSS коды экранирования:
Любой символ, кроме буквы от A до F или числа от 0 до 9 (даже новая строка!) может быть включен как часть строки, написав перед ним
\.Любой символ может быть включен как часть строки, написав
\, за которым следует его номер кодовой точки Unicode, записанный в шестнадцатеричном формате. При желании вы можете включить пробел после номера кодовой точки, чтобы указать, где заканчивается номер Unicode.
💡 Интересный факт:
Для символов, которым разрешено появляться в строках, запись escape-последовательности Unicode дает в точности ту же строку, что и запись самого символа.
С кавычками permalinkС кавычками
Строки в кавычках заключаются в одинарные или двойные кавычки, как в "Helvetica Neue". Они могут содержать интерполяцию, а также любой неэкранированный символ, кроме:
\, который может быть экранирован как\\;'or", в зависимости от того, что было использовано для определения этой строки, которая может быть экранирована как\'или\";- символы новой строки, которые могут быть экранированы как
\a(включая конечный пробел).
Строки в кавычках гарантированно будут скомпилированы в строки CSS, которые имеют то же содержимое, что и исходные строки Sass. Точный формат может варьироваться в зависимости от реализации или конфигурации - строка, содержащая двойные кавычки, может быть скомпилирована в "\"" или '"', а символ, отличный от ASCII, может быть или не быть сбежал. Но это должно быть проанализировано одинаково в любой соответствующей стандартам реализации CSS, включая все браузеры.
💡 Интересный факт:
Когда строка в кавычках вставляется в другое значение посредством интерполяции, ее кавычки удаляются! Это упрощает написание строк, содержащих, например, селекторы, которые можно вставлять в правила стиля без добавления кавычек.
Без кавычек permalinkБез кавычек
Unquoted strings are written as CSS identifiers, following the syntax diagram below. They may include interpolation anywhere.
⚠️ Внимание!
Не все идентификаторы анализируются как строки без кавычек:
- Названия цветов CSS анализируются как цвета.
nullанализируются как значение Sassnull.trueиfalseанализируются как Booleans.not,andиorанализируются как логические операторы.
Из-за этого, как правило, рекомендуется писать строки в кавычках, если вы специально не пишете значение свойства CSS, которое использует строки без кавычек.
Экранирование в строках без кавычек permalinkЭкранирование в строках без кавычек
- Dart Sass
- since 1.11.0
- LibSass
- ✗
- Ruby Sass
- ✗
Когда анализируется строка без кавычек, буквальный текст escape-символов анализируется как часть строки. Например, \a разбирается как символы \, a и пробел. Тем не менее, чтобы гарантировать, что строки без кавычек, которые имеют одинаковое значение в CSS, анализируются одинаково, эти escape-последовательности нормализованы. Для каждой кодовой точки, вне зависимости от того, экранирован он или нет:
Если это действительный символ идентификатора, он включается без экранирования в строку без кавычек. Например,
\1F46Dвозвращает строку👭без кавычек.Если это печатный символ, отличный от новой строки или табуляции, он включается после символа
\. Например,\21возвращает строку\!без кавычек.В противном случае escape-последовательность Unicode в нижнем регистре включается с завершающим пробелом. Например,
\7Fxвозвращает строку\7f xбез кавычек.
Строковые индексы permalinkСтроковые индексы
В Sass есть ряд строковых функций, которые принимают или возвращают числа, называемые индексами, которые относятся к символам в строке. Индекс 1 указывает на первый символ строки. Обратите внимание, что это отличается от многих языков программирования, где индексы начинаются с 0! Sass также упрощает обращение к концу строки. Индекс -1 относится к последнему символу в строке, -2 относится к предпоследнему и так далее.