Bir css özellik değerinde! Default ne anlama gelir?


84

Twitter önyükleme kodunun sonunda bir olan birçok CSS özelliği vardır !default.

Örneğin

p {
  color: white !default;
}

Ne yapar !default?

GÜNCELLEME

Açık olmadığım için hatam. Bootstrap'in SASS bölümünü kullanıyorum.


Css 2.1'de mevcut değil w3.org/TR/CSS2
Marcin

1
daha önce hiç görmedim. sadece önyükleme için geçerli bir şey olabilir, belki de bunu arayan bir tür ayrıştırmaları vardır
Huangizm

Yanıtlar:


53

Twitter Bootstrap, gördüğüm kadarıyla DAHA AZ kullanıyor. Öte yandan, !defaultaslında Sass'ın bir parçasıdır ve Sass değişkenlerinin ( $var) varsayılan değerlerini vermek için kullanılır , bu da sizin verilen bağlamda, Sass'ta bile geçersiz kılar .

Ayrıca, ben ilişkin referansları bulmak mümkün olmamıştır ettik !defaultyılında AZ belgeler ve bildiğim kadarıyla bu Sass özeldir. Bunu Bootstrap'ın kaynağında bulduğunuzdan ve başka bir yerde bulmadığınızdan emin misiniz? Çünkü Bootstrap'ın stil sayfalarında Sass / SCSS kodunu gördüğümü hatırlamıyorum.

Ne için 's değerinde, tek geçerli jeton bununla başlar !CSS içinde !important, zaten farkında olabilen .


1
Tamam, ben sadece indirilen ve Bootstrap yeni bir kopyasını grepped ve gerçekten, bu kesinlikle bir değil ... Bootstrap adlı kaynaktan
BoltClock

1
Yanılıyor olabilir veya Bootstrap'in Sass bağlantı noktasını kullanıyor olabilir . Hangi şekilde olursa olsun, belirsiz bir soru sordu.
otuz nokta

@thirtydot: İlginç, böyle bir bağlantı noktasının farkında değildim. Yukarıda verilen kod yine de geçersiz Sass ve bilmek için Sass portunu açmam bile gerekmiyor.
BoltClock

@BoltClock Kırmızı ringa için üzgünüm. Gerçekten de Bootstrap'in SASS portu üzerinde çalışıyordum. İşte koddan bir örnek:$yellow: #ffc40d !default;
Coffee Bite

@Robert Pounder: Cevap verene ya kabul edilen cevapları değiştirebilecekleri gelmedi ya da bu soruyu unuttular (cevaplarımızın yaklaşık 5 yıl arayla olduğunu unutmayın) ya da umursamıyorlar.
BoltClock

85

! default, Bootstrap Sass'ta sıklıkla kullanılır. Tersine benzer! Önemli. Tüm Bootstraps Değişkenleri, geliştiricinin önyüklemeyi daha da özelleştirmesine izin vermek için! Default kullanılarak ayarlanır. İle! Default sass, bir değişkeni yalnızca önceden ayarlanmamışsa tanımlar.

Bu, daha fazla esneklik sağlar.

//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;

Peki bu neden önemli? Bootstrap bir pakettir. Çoğu kişi Bootstrap kaynağını düzenlemez. BOOTSTRAP KAYNAĞINI ASLA GÜNCELLEMEYİN. Önyüklemeyi özelleştirmek için kendi değişken dosyanızı ekleyecek ve önyükleme koduyla derleyeceksiniz, ancak yerel önyükleme paketine asla dokunmayacaksınız. Bootstrap sass'ın sayfası, belgelerde nasıl özelleştirileceği ve derleneceği konusunda tam bir zayıflığa sahiptir.

Neden daha azının bunu yapmadığını bilmiyorum. Daha azıyla çok çalışmadım ve kendi değişken yönetiminde yerleşik olup olmadığını bilmiyorum.

Örnek keman https://jsfiddle.net/siggysid/344dnnwz/


1
" Önyüklemeyi özelleştirmek için kendi değişken dosyanızı ekleyecek ve onu önyükleme koduyla derleyeceksiniz, ancak yerel önyükleme paketine asla dokunmayacaksınız. Bootstrap sass'ın sayfası, onu nasıl özelleştireceğiniz ve belgelerde nasıl derleyeceğiniz konusunda tam zayıflığa sahip. " bu biraz. İlgilenen herkes için, işte Sarah'nın bahsettiği sayfanın bağlantısı (v4.3) .
John E

1

Aşağıdaki tam tanımı ve iyi bir açıklamayı sass-lang web sitesinde doc bölümünde (değişken) bulabilirsiniz - varsayılan değer:

Normalde bir değişkene bir değer atadığınızda, bu değişkenin zaten bir değeri varsa, eski değerinin üzerine yazılır. Ancak bir Sass kitaplığı yazıyorsanız, CSS oluşturmak için kullanmadan önce kullanıcılarınızın kitaplığınızın değişkenlerini yapılandırmasına izin vermek isteyebilirsiniz. Bunu mümkün kılmak için Sass,! Varsayılan bayrağı sağlar. Bu, bir değişkene yalnızca değişken tanımlanmamışsa veya değeri boş ise bir değer atar. Aksi takdirde mevcut değer kullanılacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.