Chrome'un öğe denetçisinde bir CSS kuralı grileştiğinde ne anlama gelir?


249

h2Bir web sayfasındaki bir öğeyi Google Chrome'un öğe denetçisini kullanarak inceliyorum ve uygulandığı anlaşılan bazı CSS kuralları gri görünüyor. Görünüşe göre bir tersine çevirme, bir kuralın geçersiz kılındığını gösterir, ancak bir stil gri olduğunda ne anlama gelir?

Yanıtlar:


96

Benim için şu anki cevaplar sorunu yeterince açıklamamıştı, bu yüzden umarım başkalarına faydalı olabilecek bu cevabı ekliyorum.

Gri / soluk metin, ya

  1. tarayıcının uyguladığı, varsayılan kısa el özelliklerini içeren varsayılan bir kural / özelliktir.
  2. Biraz daha karmaşık olan kalıtım içerir.

miras

Not: Chrome geliştirici araçları "stil" paneli bir kural kümesi görüntüler, çünkü gruptan bir veya daha fazla kural seçili olan DOM düğümüne uygulanır. Sanırım, bütünlük uğruna, dev araçları, uygulanmış olsun olmasın, bu kümedeki tüm kuralları gösterir.

Kalıtım nedeniyle seçili olan öğeye bir kuralın uygulanması durumunda (yani, kural bir ataya uygulandı ve seçilen öğe miras aldı), krom yine tüm kural kümesini görüntüler.

Seçili öğeye uygulanan kurallar normal metinde görünür.

Bu kümede bir kural varsa ancak devralınamayan bir özellik (ör. Arka plan rengi) olduğu için uygulanmazsa, gri / soluk metin olarak görünür.

İşte iyi bir açıklama veren bir makale - (Not: ilgili öğe makalenin altındadır - şekil 21 - maalesef ilgili bölümün başlığı yoktur) - http://commandlinefanatic.com/cgi-bin /showarticle.cgi?article=art033

Makaleden alıntı

Bu [kalıtım senaryosu] zaman zaman biraz karışıklık yaratabilir, çünkü varsayılan kısa el özellikleri; Şekil 21, miras alınmayan özelliklerle birlikte font özelliğinin varsayılan kısa el özelliklerini gösterir. Sadece öğeleri incelerken baktığınız bağlamın farkında olun.


10
"Miras alınan ancak uygulanmayan kurallar gri / soluk metin olarak görünecek" ifadesi yanlıştır. Eğer uygulanmazsa üstü çizili olacaktır. Cevabımı bir ekran görüntüsü ve canlı bir örnekle güncelledim.
Rob Sobers

10
Bu doğru cevap!!! Anahtar cümle ... "Bu kümede bir kural varsa ancak devralınamayan bir özellik (ör. Arka plan rengi) olduğu için uygulanmazsa, gri / soluk metin olarak görünür."
Niko Bellic

Bu kesinlikle doğru cevap. "[Seçici] 'den devralındı" yazan bir bölüm içinde gri renkli bir özellik görünürse, geçerli öğeye uygulanmayan devralınamayan bir özelliktir. Üzerinde çarpı işareti olan tüm özellikler daha özel bir stil tarafından geçersiz kılınmıştır.
onlynone

1
Kurallar devralınamayacakları zaman gri renkteyse, div öğem neden 'genişlik' kurallarını gri renkte göstermiş? Genişlik devralınmaz mı? Bu arada ciddiye istiyorum.
moosefetcher

1
... Dolayısıyla, Chrome'un çok fazla uygulanmakta olan css kurallarını grileştirdiğini görüyorsanız - bunların işaretlerini kaldırabileceğiniz (veya değerlerini değiştirebileceğiniz) ve sayfada karşılık gelen bir değişiklik görebilirsiniz - kural öğeyi etkiliyor olabilir ancak özellikle bu öğeye değil, bir üst öğeye uygulanır .
Ben Wheeler

82

Bu kuralın miras alındığı, ancak seçilen öğeye uygulanamayacağı anlamına gelir:

http://code.google.com/chrome/devtools/docs/elements-styles.html#computed_style

Bölme, yalnızca seçili öğeye doğrudan uygulanabilen kurallardan özellikler içerir. Devralınan özellikleri ek olarak görüntülemek için Devralınanları göster onay kutusunu etkinleştirin. Bu tür özellikler soluk bir yazı tipinde görüntülenir.

gri renkli kurallar atalardan devralınır

Canlı örnek: "Merhaba dünya!" Metnini içeren öğeyi inceleyin.

div { 
  margin: 0;
}

div#foo { 
  margin-top: 10px; 
}
<div id="foo">Hello, world!</div>


13
@ Kesin olarak, bir stil gri renkte gösterildiğinde, başka bir kuşatıcı elemandan miras alınmış ancak seçilen eleman için geçerli olmadığı anlamına gelir . Belgelerden: "Bölme yalnızca seçili öğeye doğrudan uygulanabilen kurallardan özellikler içeriyor. Devralınan özellikleri ek olarak görüntülemek için Devralınanları göster onay kutusunu etkinleştirin. Bu özellikler soluk bir yazı tipinde görüntülenecektir."
drkvogel

2
@RobSobers Ne yazık ki, örneğinizin miras gösterdiğini düşünmüyorum. Div'in miras aldığı ata ebeveyni nerede? Chrome'daki Styels bölmesinde aşağı kaydırırsanız, "Devralınan ..." başlıklı bölümleri görürsünüz. Buradaki gri renkli kurallar ne anlama geliyor? Bunu bir örneğe ekleyebilir misiniz?
Niko Bellic

8
Bu cevabın neden bir olduğunu anlamıyorum. en iyi cevap olarak işaretlenmiş ve b. çok fazla oyu var. Açıkça yanlış. Marjlar kalıtsal özellikler değildir ( stackoverflow.com/a/5612360/24267 ) Michael Coleman'ın cevabı doğrudur. Oh, bir ata elemanından miras alınmış demek istemiyorsun, yani ... Tam olarak ne demek istediğinden emin değilim. Her
neyse

3
Açıkçası oylar oklarla bazı MS Paint büyüsü ve bu kabarcık gölge efekti içindir. yanlış olarak değerlendirildi.
David

2
@ mhenry1384 "a" kolayca açıklanabilir: çünkü soruyu soran kişi tarafından yazılmıştır.
Andrew Grimm

27

Michael Coleman doğru cevabı veriyor. Ben sadece onunla birlikte gitmek için basit bir görüntü eklemek istiyorum. Eklediği bağlantı şu basit örneğe sahiptir: http://commandlinefanatic.com/art033ex4.html

HTML / DOM şöyle görünür ...

HTML

P öğesini seçtiğinizde Chrome'daki Stiller Bölmesi şöyle görünür ...

Stiller Bölmesi

Gördüğünüz gibi, p elemanı atalarından (div) miras alır. Öyleyse stil neden background-color: bluegri görünüyor? Çünkü bu, devralınabilen en az bir stile sahip bir kural kümesinin parçası. Bu kalıtsal stiltext-indent: 1em

background-color:bluedevralınamaz, ancak devralınabilen text-indent: 1emve Chrome geliştiricileri kural kümelerini görüntülerken tamamlanmak istedikleri kural kümesinin bir parçasıdır . Ancak, kural kümesindeki kalıtsal olmayan stillerden olmayan stilleri ayırt etmek için, devralınamayan stiller grileşir.


1
Bu basit bir demo verdiği için en iyi cevaptır. Yeni bir sekmede o URL'yi açın ve çeşitli seçmek için Chrome Geliştirici Araçları'nı kullanabilirsiniz divs ve p. Bunun background-colorgrileşmediğini göreceksiniz div#two. Ama background-coloriçin gri olur div#threeve p.
wisbucky

büyük açıklama
Dirk Boer

10

Bu, denetçi aracılığıyla bir stil eklerseniz de oluşur, ancak bu yeni stil seçtiğiniz öğeye uygulanmaz. Genellikle gösterilen stiller yalnızca seçilen öğenin stilleridir, bu nedenle gri, az önce eklediğiniz stilin DOM gezgininde odağı olan öğeyi seçmediğini gösterir.


Bu benim sorunumdu. Teşekkürler!
Chuck Le Butt

5

Bu, kuralın daha yüksek önceliğe sahip başka bir kuralla değiştirildiği anlamına gelir. Örneğin:

h2 {
  color: red;
}
h2 {
  color: blue;
}

Müfettiş kuralı color:red;gri renkte ve color:blue;normalde gösterecektir .

Hangi kuralların miras alındığını / daha yüksek önceliğe sahip olduğunu öğrenmek için CSS mirasını okuyun .

DÜZENLE:

Birleştirme: Gri renkteki kurallar, tüm öğelere (tüm stillerin bir değere sahip olması gerektiğinden, öğeyi yenilenebilir yapan kurallar) uygulanan özel bir varsayılan stil sayfası kullanan ayarlanmamış kurallardır .


Sadece test ettim ve bunun yanlış olduğunu düşünüyorum. Bir kuralın geçersiz kılınması durumunda, bir ihtar yapılır (sorumun gösterdiği gibi). Bakınız: yfrog.com/f/j3fooep
Rob Sobers

@Rob: Devtools başlamadığı için bir karmaşa vardı. Çalıştırdım ve cevabımı test edilen cevabımla düzenledim .
tcooc

Bunun doğru olduğundan da emin değilim; soluk kurallar kendi stil sayfamda belirlediğim kurallardır (ör. font-size: 20px;)
Rob Sobers

1

Web paketini kullanırken, sayfa yeniden oluşturulduktan sonra sayfa yeniden yüklendiğinde kaynak kodunda değiştirilen herhangi bir css kuralı veya özelliği grileşir. Bu gerçekten sinir bozucu ve beni her defasında sayfayı yeniden yüklemeye zorladı.


0

resim açıklamasını buraya girin

Chrome geliştiricisinin yeni sürümü, nereden devralındığını gösterir.


0

Soruyu zaten çok doğru cevaplar aldıktan sonra uzun süre yanıtlıyorum çünkü farklı bir CSS kodu bloğunun grileştiğini ve Chome DevTools'ta düzenlenemediğini fark ettim: Söz konusu blok U + 200B ZERO WIDTH SPACE karakterlerini içeriyordu . Bunları bulup kaldırdığımda, Chrome DevTools'ta bloğu tekrar düzenleyebilirim. Muhtemelen bu diğer ascii olmayan karakterlerde de olabilir, bunu anlamaya çalışmadım.

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.