O que significa quando o Chrome Dev Tools mostra uma propriedade computada esmaecida

97

Observe, não o painel Estilos (eu sei o que acinzentado significa nesse contexto - não aplicado), mas o próximo painel, o painel de propriedades Computadas.

O que significa quando uma propriedade Computed é mostrada em cinza?

Exemplo:

insira a descrição da imagem aqui

AmbroseChapel
fonte

Respostas:

64

NB: Esta resposta não tem evidências sólidas, é baseada em minhas observações ao longo do tempo.

As propriedades calculadas em cinza não são padrão nem herdadas. Isso ocorre apenas em propriedades que não foram definidas para o elemento, mas calculadas a partir de seus filhos ou pai com base na renderização do layout do tempo de execução.

Veja esta página simples como exemplo, displayé padrão e font-sizeé herdada:

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

insira a descrição da imagem aqui

Neste exemplo específico, heighté calculado a partir <p>do nó filho - texto (tamanho da fonte mais altura da linha), widthé calculado a partir da <div>largura de seu pai , que também é calculada a partir de seu pai <body>.


EDIT: Bem, eu pensei de novo, aqui está minha resposta baseada em opinião . Eu realmente deveria dar uma olhada no código-fonte do Chromium mais tarde: D

Ao expandir essas setas, você pode ver qual regra real é aplicada ao elemento, entre todas aquelas definidas contra ele (diretamente ou herdadas, pelo desenvolvedor ou navegador):

insira a descrição da imagem aqui

Aqui você pode rastrear cada definição, mesmo incluindo as regras integradas do navegador, e verificar com o mecanismo CSS em cascata (substituição).

Portanto, para aqueles elementos que não têm definição CSS (nenhum definido diretamente, nenhum herdado, nenhum navegador embutido), você não tem nenhuma fonte para rastrear. E os valores das propriedades são totalmente calculados em tempo de execução.

Se você marcar Mostrar tudo , mais propriedades acinzentadas serão mostradas. Eles também não estão definidos em lugar nenhum. Mas, ao contrário das capturas de tela anteriores, eles não são calculados em tempo de execução - são os valores padrão das especificações CSS.

insira a descrição da imagem aqui

Leo
fonte
2
Isso faz sentido. Um outro detalhe: propriedades acinzentadas não podem ser clicadas, como as outras podem, para mostrar a origem de seus valores em uma declaração particular.
AmbroseChapel
@AmbroseChapel Pensei novamente e atualizei minha resposta. Eu realmente deveria ler o código-fonte. Boa pergunta.
Leo
Certamente faz sentido que as propriedades de cinza sejam, run-time calculateduma vez que as propriedades de cinza são geralmente 'altura' e 'largura', que se você pensar sobre isso, são valores que dependem dinamicamente dos filhos de um elemento (por exemplo, quantidade de texto e tamanho da fonte de o texto contido no elemento ou a largura do pai quando o elemento tem largura: 100%)
Niko Bellic
4
Um bom recurso do CDT para isso seria: ver como os valores são calculados, significa: quais elementos se somam ao widthestilo, por exemplo.
Legends