Что это значит, когда правило 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 показывает, где она унаследована.