Що означає! За замовчуванням у значенні властивості css?


84

Завантажувальний код twitter має багато властивостей CSS з !defaultкінцем.

Напр

p {
  color: white !default;
}

Що робить !default?

ОНОВЛЕННЯ

Шкода, що не зрозуміла. Я використовую частину SASS Bootstrap.


Чи не присутній в CSS 2.1 w3.org/TR/CSS2
Marcin

1
ніколи раніше не бачив. може бути чимось, що стосується лише завантажувального ремесла, можливо, у них є якийсь синтаксичний аналіз, який шукає це
хуангізм

Відповіді:


53

Twitter Bootstrap використовує МЕНШЕ, наскільки я бачив. З іншого боку, !defaultнасправді є частиною Sass і використовується для надання змінним Sass ( $var) значень за замовчуванням, що робить його недійсним у даному контексті, навіть у Sass .

Крім того, я не змогло знайти якісь - або посилання на !defaultв документації МЕНШЕ , і до мого знання це виключно Сассо. Ви впевнені, що знайшли це в джерелі Bootstrap, а не деінде? Тому що я, чесно кажучи, не пам’ятаю, щоб бачив код Sass / SCSS у таблицях стилів Bootstrap.

Наскільки це варте, єдиним дійсним маркером, який починається з !CSS, є той !important, про який ви вже знаєте .


1
Добре, я щойно завантажив і захопив нову копію Bootstrap, і справді, це, безумовно, не з джерела Bootstrap ...
BoltClock

1
Він може помилитися, або, можливо, він використовує порт Sass Bootstrap . У будь-якому випадку, він задав незрозуміле запитання.
тридцять пунктів

@thirtydot: Цікаво, я не знав про такий порт. Наведений вище код, як і раніше, недійсний Sass, і мені навіть не потрібно згрібати порт Sass, щоб знати.
BoltClock

@BoltClock Вибачте за червону оселедець. Я справді працював у порту SASS Bootstrap. Ось зразок з коду:$yellow: #ffc40d !default;
Coffee Bite

@ Роберт Поундер: Або відповідачеві не спало на думку, що вони можуть змінити прийняті відповіді, або вони забули про це запитання (зауважте, що наші відповіді мають майже 5 років різниці), або їм просто байдуже.
BoltClock

85

! за замовчуванням часто використовується в Bootstrap Sass. Це схоже на реверс! Важливо. Усі змінні Bootstraps встановлюються за замовчуванням !, щоб дозволити розробнику додатково налаштувати bootstrap. За допомогою! 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, але ніколи не торкаєтесь власного пакета bootstrap. Сторінка Bootstrap Sass містить повну інформацію про те, як її налаштувати та скласти в документації.

Не знаю, чому менше цього не робить. Я мало працював з меншими і не знаю, чи є у нього власне вбудоване управління змінними.

Приклад скрипки https://jsfiddle.net/siggysid/344dnnwz/


1
" Щоб налаштувати bootstrap, ви додасте власний файл змінної та скомпілюєте його із кодом bootstrap, але ніколи не торкаєтесь власного пакета bootstrap. На сторінці Bootstrap sass повністю описано, як налаштувати та скомпілювати його в документації. " Мені довелося шукати це трохи. Для всіх зацікавлених, ось посилання (v4.3) на сторінку, про яку згадує Сара.
Джон Е

1

Ви можете знайти наступне точне визначення та гідне пояснення на веб - сайті sass-lang у його розділі doc (змінна) - значення за замовчуванням:

Зазвичай, коли ви присвоюєте значення змінної, якщо ця змінна вже мала значення, її старе значення замінюється. Але якщо ви пишете бібліотеку Sass, можливо, ви захочете дозволити своїм користувачам налаштовувати змінні вашої бібліотеки, перш ніж використовувати їх для генерації CSS. Щоб це стало можливим, Sass надає прапорець за замовчуванням! Це присвоює змінні значення, лише якщо ця змінна не визначена або її значення дорівнює нулю. В іншому випадку буде використано існуюче значення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.