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 revertpodem ser encontradas em caniuse.com .
Embora a especificação do nível 3 introduza uma initialpalavra - 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 initialpalavra-chave refere-se a esse valor, não ao padrão do navegador. A própria especificação faz esta anotação sob a allpropriedade :
Por exemplo, se um autor especificar all: initialum 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: blockda 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.