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

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


person Rob Sobers    schedule 16.07.2010    source источник


Ответы (8)


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

Серый / затемненный текст может означать либо

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

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

Примечание. На панели «стиль» инструментов разработчика Chrome будет отображаться набор правил, поскольку одно или несколько правил из набора применяются к текущему выбранному узлу DOM. Думаю, для полноты картины инструменты разработчика показывают все правила из этого набора, независимо от того, применяются они или нет.

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

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

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

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

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

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

person Michael Coleman    schedule 04.03.2015
comment
Правила операторов, которые унаследованы, но не применяются, они будут отображаться как серый / затемненный текст, которые не соответствуют действительности. Если не применяется, они будут зачеркнуты. Я обновил свой ответ скриншотом и живым примером. - person Rob Sobers; 05.03.2015
comment
Это правильный ответ !!! Ключевое предложение: ... Если правило существует в этом наборе, но не применяется, потому что это ненаследуемое свойство (например, цвет фона), оно будет отображаться как серый / затемненный текст. - person Niko Bellic; 27.08.2015
comment
Это определенно правильный ответ. Если в разделе, в котором указано «Унаследовано от [селектор]», отображается выделенное серым цветом свойство, то это ненаследуемое свойство, которое не применяется к текущему элементу. Любое зачеркнутое свойство заменено более конкретным стилем. - person onlynone; 15.12.2015
comment
Если правила выделены серым цветом, когда они не наследуются, почему мой элемент div имеет серые правила «ширины»? Ширина не наследуется? Кстати, я серьезно об этом спрашиваю. - person moosefetcher; 12.10.2016
comment
Чтобы понять ответ Майкла Коулмана, полезно понять, что к текущему выбранному элементу применяются два смысла: 1. На элемент влияет правило (может все еще быть правдой, даже если правила выделены серым, потому что родитель ограничивает элемент, как с max-width) 2. элемент имеет правило, примененное к этому элементу, в частности (выделенные серым цветом правила таким образом не применяются) ... - person Ben Wheeler; 07.11.2018
comment
... Итак, если вы видите, что Chrome выделяет серые правила css, которые очень часто применяются - где вы можете снять их (или изменить их значения) и увидеть соответствующее изменение на странице - возможно, что правило влияет на элемент, но не применяется к этому элементу в частности, а к родительскому элементу. - person Ben Wheeler; 07.11.2018

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

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

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

серые правила наследуются от предков

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

div { 
  margin: 0;
}

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

person Rob Sobers    schedule 14.06.2011
comment
Я знаю, что на вопрос дан ответ, но как насчет этого: у меня есть ul, menu, dir {list-style-type: disc; } на панели с меню и каталогом, выделенными серым цветом, которые не являются элементами страницы. Означает ли это, что в данном случае они объявлены, но не являются частью страницы? - person hugo der hungrige; 09.03.2013
comment
@hugoderhungrige В этом случае да, это означает, что стиль объявлен для ul, menu и dir; но menu и dir отсутствуют, поэтому правило не может применяться к ним, только к ul. - person drkvogel; 18.03.2014
comment
@Rob Чтобы быть точным, когда стиль отображается серым, это означает, что он унаследован от какого-то другого охватывающего элемента, но не применим к выбранному элементу. Из документации: Панель содержит только свойства из правил, которые непосредственно применимы к выбранному элементу. Чтобы дополнительно отображать унаследованные свойства, установите флажок Показать унаследованные. Такие свойства будут отображаться тусклым шрифтом. - person drkvogel; 18.03.2014
comment
Ссылка, которой вы поделились, ничего не говорит по теме. Он упоминает только серый цвет, когда весь фон серый. - person CodyBugstein; 30.07.2014
comment
@Imray Да, это так. Цитата: Чтобы дополнительно отображать унаследованные свойства, установите флажок Показать унаследованные. Такие свойства будут отображаться тусклым шрифтом. - person Rob Sobers; 04.09.2014
comment
@RobSobers К сожалению, я не думаю, что ваш пример демонстрирует наследование. Где родитель-предок, от которого наследуется div? Если вы прокрутите вниз панель «Стили» в Chrome, вы увидите разделы под названием «Унаследовано от ...» Что означают правила, выделенные серым цветом? Можете ли вы включить это в пример? - person Niko Bellic; 27.08.2015
comment
Я не понимаю, почему это ответ. отмечен как лучший ответ и b. имеет так много голосов. Это явно неправильно. Поля не являются наследуемыми свойствами (stackoverflow.com/a/5612360/24267) Ответ Майкла Коулмана правильный. О, вы не имеете в виду унаследованный от элемента-предка, вы имеете в виду ... Я не совсем понимаю, что вы имеете в виду. Во всяком случае, в 2015 году, с Chrome 46, этот ответ неверен. - person mhenry1384; 28.10.2015
comment
A. Вы даете ссылку на документы для вкладки "Вычисленные стили", которая отличается от основной вкладки "Стили". Б. Вам не хватает случая наследования элементов, когда один элемент является потомком другого и таким образом наследует его стиль. В вашем примере «div» и «div # foo» применяются непосредственно к элементу div. Если бы у вас был элемент «p» внутри «div», а в CSS для «div» было сочетание наследуемых / ненаследуемых свойств, тогда вы бы увидели, о чем говорят другие. - person onlynone; 15.12.2015
comment
Ясно, что голоса отданы за магию MS Paint со стрелками и за эффект тени от пузырей. проголосовано против как неправильное. - person David; 12.03.2016
comment
@ mhenry1384 a легко объяснимо: потому что он написан человеком, задавшим вопрос. - person Andrew Grimm; 24.08.2016
comment
Это определенно неправильный ответ, не в последнюю очередь потому, что живой пример не демонстрирует каких-либо выделенных серым цветом правил. Ответ Коулмана правильный. - person T.J. Crowder; 05.02.2017
comment
@ T.J.Crowder Я считаю, что браузер Chrome изменился с 2011 года. Хотя я могу ошибаться. Есть ли еще один ответ, который вы считаете правильным? Я с радостью это поменяю. - person Rob Sobers; 06.02.2017
comment
@ Rob - Как я уже сказал выше, ответ Коулмана правильный. - person T.J. Crowder; 07.02.2017
comment
Привет! Можете убрать свой ответ, он сбивает с толку и неверен, новичок запутается. - person Suraj Jain; 17.06.2017
comment
@DavidAnderton, похоже, ShareX, утилита для создания снимков экрана, она дает моим скриншотам похожие стрелки, но тени и текст с контуром почти такие же. По теме: Я думал, OP говорил о таблицах стилей пользовательских агентов, лол. - person brandito; 31.01.2018
comment
Я получаю настраиваемое правило с серым фоном, которое не наследуется (применяется к одному классу, который есть у выбранного элемента). Что вызывает это? - person riv; 25.02.2019

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

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

HTML

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

Панель стилей

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

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

person Niko Bellic    schedule 27.08.2015
comment
Это лучший ответ, поскольку он дает простую демонстрацию. Откройте этот URL-адрес в новой вкладке и используйте Инструменты разработчика Chrome, чтобы выбрать различные div и p. Вы увидите, что background-color не отображается серым цветом для div#two. Но background-color неактивен для div#three и p. - person wisbucky; 09.11.2018
comment
отличное объяснение - person Dirk Boer; 12.02.2019

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

person AaronLS    schedule 18.03.2014
comment
Это была моя проблема. Спасибо! - person Chuck Le Butt; 31.07.2014

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

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

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

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

РЕДАКТИРОВАТЬ:

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

person tcooc    schedule 16.07.2010
comment
Я только что это проверил и считаю, что это неверно. В случае отмены правила будет зачеркнутый (как указывает мой вопрос). См .: yfrog.com/f/j3fooep - person Rob Sobers; 16.07.2010
comment
@Rob: произошла путаница, так как инструменты разработчика не запускались. Я запустил его и отредактировал свой ответ своим проверенным ответом. - person tcooc; 16.07.2010
comment
Я тоже не совсем уверен, что это правильно; блеклые правила - это те, которые я установил в своей собственной таблице стилей (например, font-size: 20px;) - person Rob Sobers; 17.07.2010

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

person user2528531    schedule 01.08.2016

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

В новой версии Chrome Developer показано, откуда он унаследован.

person jmojico    schedule 18.09.2017

Я отвечаю спустя много времени после того, как на вопрос уже есть много правильных ответов, потому что я столкнулся с другим случаем, когда блок кода CSS был выделен серым цветом и не редактировался в Chome DevTools: рассматриваемый блок содержал U + 200B символов ZERO WIDTH SPACE. Как только я нашел их и удалил, я снова мог редактировать блок в Chrome DevTools. Предположительно это может произойти и с другими персонажами, отличными от ascii, я не пытался понять это.

person davidreedernst    schedule 19.04.2018