【问题标题】:What does it mean when Chrome Dev Tools shows a computed property greyed outChrome 开发工具显示计算属性灰显是什么意思
【发布时间】:2016-04-15 05:05:20
【问题描述】:

请注意,不是样式面板(我知道在该上下文中变灰意味着什么——未应用),而是下一个面板,计算属性面板。

Computed 属性显示为灰色是什么意思?

例子:

【问题讨论】:

标签: css google-chrome google-chrome-devtools


【解决方案1】:

注意:这个答案没有确凿的证据,它是基于我一直以来的观察。

灰色计算属性既不默认,也不继承。这仅发生在未为元素定义的属性上,而是根据运行时布局渲染从其子元素或父元素计算得出的。

以这个简单的页面为例,display是默认的,font-size是继承的:

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

在这个特定的例子中,height 是根据 &lt;p&gt; 的子节点 - 文本节点(字体大小加上行高)计算得出的,width 是根据其父节点 - &lt;div&gt; 的宽度计算得出的,这也是从其父 &lt;body&gt; 计算。


编辑:好吧,我又想了想,这是我的基于意见的答案。以后我真的应该去看看 Chromium 源代码 :D

通过展开这些箭头,您可以看到在针对它定义的所有规则(直接或继承,由开发人员或浏览器)中应用于元素的实际规则:

您可以在此处追溯每个定义,甚至包括浏览器内置规则,并检查 CSS 级联(覆盖)机制。

因此,对于那些没有 CSS 定义(没有直接定义、没有继承、没有内置浏览器)的元素,您没有任何来源可追踪。并且属性值完全是运行时计算的。

如果您选中全部显示,则会显示更多灰色属性。这些也没有在任何地方定义。但与之前的截图不同,这些是不是运行时计算的 - 它们是 CSS 规范的默认值。

【讨论】:

  • 这是有道理的。另一个细节:无法像其他属性一样单击灰色属性,以在特定声明中显示其值的来源。
  • @AmbroseChapel 我再次思考并更新了我的答案。我真的应该去阅读源代码。好问题。
  • 灰色属性是run-time calculated当然是有道理的,因为灰色属性通常是“高度”和“宽度”,如果你考虑一下,它们是动态依赖于元素的子元素的值(例如,元素中包含的文本的数量和字体大小,或者当元素具有宽度时父级的宽度:100%)
  • 一个很好的 CDT 特性是:查看值是如何计算的,意味着:例如,哪些元素加起来是 width 样式。
猜你喜欢
  • 2019-08-07
  • 2011-12-25
  • 1970-01-01
  • 2018-02-01
  • 2018-03-25
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
相关资源
最近更新 更多