Що це означає, коли Chrome Dev Tools показує обчислене властивість сірим


93

Зверніть увагу, не панель «Стилі» (я знаю, що означає «сіре» в цьому контексті - не застосовується), а наступна панель, панель «Обчислювані властивості».

Що означає, коли обчислювана властивість відображається сірим?

Приклад:

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



Відповіді:


62

NB: Ця відповідь не має вагомих доказів, вона ґрунтується на моїх спостереженнях у той час.

Властивості, що обчислюються сірим кольором, не є ні типовими, ні успадкованими. Це відбувається лише для властивостей, які не були визначені для елемента, але обчислювались на основі його дочірніх або батьківських даних на основі візуалізації макета середовища виконання.

Візьмемо цю просту сторінку як приклад, вона displayє типовою та font-sizeуспадковується:

<style>
  div { font-size: 13px; }
</style>
<div>
  <p>asdf</p>
</div>

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

У цьому конкретному прикладі heightобчислюється з <p>текстового вузла дітей (розмір шрифту плюс висота рядка), widthобчислюється з <div>ширини батьківського елемента, який також обчислюється з батьківського рівня <body>.


EDIT: Ну, я ще раз подумав, ось відповідь на основі моєї думки . Мені справді слід піти і поглянути на вихідний код Chromium пізніше: D

Розширивши ці стрілки, ви зможете побачити, яке фактичне правило застосовується до елемента, серед усіх визначених проти нього (або безпосередньо, або успадковане, розробником або браузером):

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

Тут ви можете прослідкувати до кожного визначення, включаючи вбудовані правила браузера, і перевірити за допомогою механізму каскадного (перевизначення) CSS.

Отже, для тих елементів, які не мають визначення CSS (відсутні безпосередньо визначені, не успадковані, не вбудований браузер), у вас немає джерела для відстеження. І значення властивостей обчислюються повністю під час виконання.

Якщо встановити прапорець Показати все , відображатимуться більше сірих властивостей. Вони також ніде не визначені. Але на відміну від попередніх знімків екрану, вони не обчислюються під час виконання - це значення CSS за замовчуванням.

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


2
Що має сенс. Ще одна деталь: не можна натискати сірі властивості, як це можна зробити для відображення походження їх значень у певній декларації.
AmbroseChapel

@AmbroseChapel Я ще раз подумав і оновив свою відповідь. Мені справді слід піти і прочитати вихідний код. Хороше питання.
Лев

Безумовно, має сенс, що властивості сірого кольору, run-time calculatedоскільки властивості сірого, як правило, мають значення `` висота '' та `` ширина '', що, якщо подумати, це значення, які динамічно залежать від дочірніх елементів елемента (наприклад, кількість тексту та розмір шрифту текст, що міститься в елементі, або ширина батьківського елемента, коли елемент має ширину: 100%)
Ніко Беллік

4
Приємною функцією CDT для цього буде: бачити, як обчислюються значення, означає: які елементи складаються зі widthстилем, наприклад.
Legends
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.