Что означает! Default в значении свойства css?

84

Код начальной загрузки twitter имеет множество свойств CSS с символом !defaultв конце.

Например

p {
  color: white !default;
}

Что !defaultделать?

ОБНОВИТЬ

Мое плохое за непонятность. Я использую часть SASS Bootstrap.

Укус кофе
источник
Нет в css 2.1 w3.org/TR/CSS2
Марцин
1
никогда раньше не видел. может быть что-то, что применимо только к бутстрапу, может у них есть какой-то синтаксический анализ, который ищет это
Хуангизм

Ответы:

53

Насколько я видел, Twitter Bootstrap использует МЕНЬШЕЕ. С другой стороны, !defaultфактически является частью Sass и используется для задания $varзначений по умолчанию Sass variables ( ), что сделало бы его недействительным в вашем контексте, даже в Sass .

Кроме того, я не смог найти никаких ссылок !defaultв документации LESS , и к моему знанию это исключительно Сассам. Вы уверены, что нашли это в исходном коде Bootstrap, а не где-либо еще? Потому что я, честно говоря, не помню, чтобы видел код Sass / SCSS в таблицах стилей Bootstrap.

Как бы то ни было, единственный действительный токен, который начинается !в CSS, - это !important, о чем вы, возможно, уже знаете .

BoltClock
источник
1
Хорошо, я только что загрузил новую копию Bootstrap, и действительно, это явно не из источника Bootstrap ...
BoltClock
1
Он может ошибаться или использовать порт Bootstrap на Sass . Как бы то ни было, он задал непонятный вопрос.
30dot
@thirtydot: Интересно, я не знал о таком порте. Приведенный выше код все еще недействителен для Sass, и мне даже не нужно использовать grep для порта Sass, чтобы узнать об этом.
BoltClock
@BoltClock Извините за отвлекающий маневр. Я действительно работал над SASS-портом Bootstrap. Вот пример кода:$yellow: #ffc40d !default;
Coffee Bite
@Robert Pounder: Либо респонденту не пришло в голову, что он может изменить принятые ответы, либо он забыл об этом вопросе (обратите внимание, что наши ответы разошлись почти на 5 лет), либо им просто все равно.
BoltClock
85

! default часто используется в Bootstrap Sass. Это похоже на обратное! Важно. Все переменные начальной загрузки устанавливаются с использованием! Default, чтобы разработчик мог дополнительно настраивать загрузку. С! Default sass будет определять переменную, только если она еще не была установлена.

Это обеспечивает большую гибкость.

//Example1 Dress color = red
$auroras-dress-color: blue;
$auroras-dress-color: red;

//Example2 Dress color = red
$auroras-dress-color: blue !default;
$auroras-dress-color: red;

//Example3 Dress color = blue
$auroras-dress-color: blue;
$auroras-dress-color: red !default;

Так почему это важно? Bootstrap - это пакет. Большинство людей не редактируют исходный код Bootstrap. НИКОГДА НЕ ОБНОВЛЯЙТЕ ИСТОЧНИК BOOTSTRAP. Для настройки начальной загрузки вы добавите свой собственный файл переменных и скомпилируете его с помощью кода начальной загрузки, но никогда не касайтесь собственного пакета начальной загрузки. На странице Bootstrap sass есть полная информация о том, как настроить и скомпилировать его в документации.

Я не знаю, почему less этого не делает. Я мало работал с меньшим и не знаю, есть ли у него собственное встроенное управление переменными.

Пример скрипки https://jsfiddle.net/siggysid/344dnnwz/

Сара М. Джайлз
источник
1
« Для настройки начальной загрузки вы добавите свой собственный файл переменных и скомпилируете его с помощью кода начальной загрузки, но никогда не касайтесь собственного пакета начальной загрузки. На странице Bootstrap sass есть полная информация о том, как настроить и скомпилировать его в документации». Мне пришлось искать это немного. Для всех, кто интересуется, вот ссылка (v4.3) на страницу, упомянутую Сарой.
John E
1

Вы можете найти следующее точное определение и достойное объяснение на веб - сайте sass-lang в его разделе документации (переменная) - значение по умолчанию:

Обычно, когда вы присваиваете значение переменной, если эта переменная уже имела значение, ее старое значение перезаписывается. Но если вы пишете библиотеку Sass, вы можете разрешить пользователям настраивать переменные вашей библиотеки, прежде чем использовать их для создания CSS. Чтобы сделать это возможным, Sass предоставляет флаг! По умолчанию. Это присваивает значение переменной, только если эта переменная не определена или ее значение равно null. В противном случае будет использовано существующее значение.

Аспиан
источник