Los estilos predeterminados de un navegador se definen en su hoja de estilo de agente de usuario, cuyas fuentes puede encontrar aquí . Desafortunadamente, la especificación de nivel 3 en cascada y herencia no parece proponer una forma de restablecer una propiedad de estilo a su valor predeterminado del navegador. Sin embargo, hay planes para reintroducir una palabra clave para esto en Cascading and Inheritance level 4 : el grupo de trabajo simplemente no se ha decidido por un nombre para esta palabra clave todavía (el enlace dice actualmente revert
, pero no es definitivo). revert
Puede encontrar información sobre el soporte del navegador para caniuse.com .
Si bien la especificación de nivel 3 introduce una initial
palabra clave , establecer una propiedad en su valor inicial la restablece a su valor predeterminado según lo define CSS , no según lo define el navegador . El valor inicial de display
es inline
; Esto se especifica aquí . La initial
palabra clave se refiere a ese valor, no al valor predeterminado del navegador. La especificación en sí misma hace esta nota debajo de la all
propiedad :
Por ejemplo, si un autor especifica all: initial
un elemento, bloqueará toda la herencia y restablecerá todas las propiedades, como si no aparecieran reglas en los niveles de autor, usuario o agente de usuario de la cascada.
Esto puede ser útil para el elemento raíz de un "widget" incluido en una página, que no desea heredar los estilos de la página externa. Sin embargo, tenga en cuenta que cualquier estilo "predeterminado" aplicado a ese elemento (como, por ejemplo, display: block
desde la hoja de estilo UA en elementos de bloque como <div>
) también quedará impresionado.
Así que supongo que la única forma en este momento usando CSS puro es buscar el valor predeterminado del navegador y configurarlo manualmente para eso:
div.foo { display: inline-block; }
div.foo.bar { display: block; }
(Sería una alternativa a lo anterior div.foo:not(.bar) { display: inline-block; }
, pero eso implica modificar el selector original en lugar de una anulación).
unset
.