Os estilos padrão de um navegador são definidos em sua folha de estilo do agente do usuário, cujas fontes você pode encontrar aqui . Infelizmente, as especificações de nível 3 em cascata e herança não parecem propor uma maneira de redefinir uma propriedade de estilo para o padrão do navegador. No entanto, há planos de reintroduzir uma palavra-chave para isso no nível 4 em cascata e herança - o grupo de trabalho simplesmente ainda não definiu um nome para essa palavra-chave (o link diz atualmente revert
, mas não é final). Informações sobre o suporte ao navegador revert
podem ser encontradas em caniuse.com .
Embora a especificação do nível 3 introduza uma initial
palavra - chave , a configuração de uma propriedade como seu valor inicial redefine-a para seu valor padrão, conforme definido pelo CSS , não como definido pelo navegador . O valor inicial de display
é inline
; isso é especificado aqui . A initial
palavra-chave refere-se a esse valor, não ao padrão do navegador. A própria especificação faz esta anotação sob a all
propriedade :
Por exemplo, se um autor especificar all: initial
um elemento, ele bloqueará toda a herança e redefinirá todas as propriedades, como se nenhuma regra aparecesse nos níveis de autor, usuário ou agente de usuário da cascata.
Isso pode ser útil para o elemento raiz de um "widget" incluído em uma página, que não deseja herdar os estilos da página externa. Observe, no entanto, que qualquer estilo "padrão" aplicado a esse elemento (como, por exemplo, display: block
da folha de estilos do UA em elementos de bloco como <div>
) também será deslumbrado.
Então, acho que a única maneira agora de usar CSS puro é procurar o valor padrão do navegador e configurá-lo manualmente para isso:
div.foo { display: inline-block; }
div.foo.bar { display: block; }
(Uma alternativa ao acima seria div.foo:not(.bar) { display: inline-block; }
, mas isso envolve modificar o seletor original em vez de substituir.)
unset
.