Что это значит, когда правило CSS не отображается в инспекторе элементов Chrome?

Я проверяю элемент h2 на веб-странице с помощью инспектора элементов Google Chrome, и некоторые правила CSS, которые, как представляется, применяются, неактивны. Кажется, что пробой указывает, что правило было переопределено, но что это значит, когда стиль неактивен?

Ответ 1

Для меня текущие ответы не полностью объяснили проблему, поэтому я добавляю этот ответ, который, надеюсь, может быть полезен другим.

Текст Greyed/dimmed out может означать либо

  • это правило/свойство по умолчанию, применяемое браузером, которое включает в себя невыполненные короткие свойства.
  • Он включает в себя наследование, которое немного сложнее.

Наследование

Примечание. Панель инструментов "dev" в Chrome dev отобразит набор правил, поскольку одно или несколько правил из набора применяются к выбранному в данный момент DOM node. Я полагаю, для полноты, dev tools показывает все правила из этого набора, независимо от того, применяются они или нет.

В случае, когда правило применяется к текущему выбранному элементу из-за наследования (т.е. правило применяется к предку, а выбранный элемент унаследовал его), хром снова отобразит весь набор правил.

Правила, применяемые к текущему выбранному элементу, отображаются в обычном тексте.

Если правило существует в этом наборе, но не применяется, поскольку оно является не наследуемым свойством (например, цветом фона), оно будет отображаться как текст с серым/тусклым цветом.

вот статья, которая дает хорошее объяснение - (Примечание: соответствующий элемент находится внизу статьи - рисунок 21 - к сожалению, в соответствующем разделе нет заголовка) - http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art033

Выдержка из статьи

Этот [сценарий наследования] может иногда создавать путаницу, потому что дефолт свойства коротких рук; Рисунок 21 иллюстрирует невыполненные обязательства свойства свойства шрифта вместе с не унаследованным свойства. Просто знайте контекст, на который вы смотрите, когда изучение элементов.

Ответ 2

Это означает, что правило было унаследовано, но не применимо к выбранному элементу:

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

Панель содержит только свойства из правил, которые непосредственно применимы к выбранному элементу. Чтобы дополнительно отобразить унаследованные свойства, включите флажок "Показать унаследованный". Такие свойства будут отображаться в затемненном шрифте.

greyed out rules are inherited from ancestors

Пример Live: проверьте элемент, содержащий текст "Hello, world!"

div { 
  margin: 0;
}

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

Ответ 3

Майкл Коулман имеет правильный ответ. Я просто хочу добавить простой образ, чтобы согласиться с ним. Ссылка, которую он включил, содержит этот простой пример: http://commandlinefanatic.com/art033ex4.html

HTML/DOM выглядит так:

HTML

Панель "Стили" в Chrome выглядит так, когда вы выбираете элемент p...

Стили

Как вы можете видеть, элемент p наследуется от своих предков (divs). Итак, почему стиль background-color: blue недоступен? Потому что это часть набора правил, который имеет по крайней мере один стиль, который наследуется. Этот наследуемый стиль text-indent: 1em

background-color:blue не наследуется, а является частью набора правил, содержащего text-indent: 1em, который является неотъемлемым, и разработчики Chrome хотели быть полными при отображении наборов правил. Однако, чтобы различать стили в наборе правил, которые наследуются от стилей, которые не являются, стили, которые не являются наследуемыми, неактивны.

Ответ 4

Это также происходит, если вы добавляете стиль через инспектора, но этот новый стиль не применяется к выбранному элементу. Обычно показанные стили - только те, которые выбраны для выбранного элемента, поэтому серый означает, что только что добавленный стиль не выбирает элемент, который имеет фокус в навигаторе DOM.

Ответ 5

Это означает, что правило было заменено другим правилом с более высоким приоритетом. Например, таблицы стилей с:

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

Инспектор отобразит правило color:red; с серым цветом и color:blue; как обычно.

Прочитайте наследование CSS, чтобы узнать, какие правила наследуются/имеют более высокий приоритет.

EDIT:

Mixup: правила с серым цветом - это правила отмены, которые используют специальную таблицу стилей по умолчанию, которая применяется ко всем элементам (правила, которые делают элемент визуализируемым, потому что все стили должны иметь значение).

Ответ 6

При использовании webpack любое правило или свойство css, которое было изменено в исходном коде, неактивно, когда страница перезагружается после восстановления. Это действительно раздражает и заставляет меня перезагружать страницу каждый раз.

Ответ 7

введите описание изображения здесь

Новая версия разработчика chrome показывает, где она унаследована.