Propósito del asterisco antes de una propiedad CSS

101

Lo siguiente se tomó del restablecimiento de CSS de Yahoo. ¿Alguien puede explicar el propósito de los asteriscos?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}
Jeremy
fuente

Respuestas:

117

Es un truco CSS específico del navegador para las versiones 7 o inferiores de Internet Explorer.

*El valor de la propiedad

Aunque Internet Explorer 7 corrigió su comportamiento cuando el nombre de una propiedad tiene como prefijo un guión bajo o un guión, otros prefijos de caracteres no alfanuméricos se tratan como en IE6. Por lo tanto, si agrega un carácter no alfanumérico como un asterisco (*) inmediatamente antes del nombre de una propiedad, la propiedad se aplicará en IE y no en otros navegadores. A diferencia del método de guión y subrayado, la especificación CSS no hace reservas para el asterisco como prefijo, por lo que el uso de este truco podría resultar en un comportamiento inesperado a medida que evolucionan las especificaciones CSS.

* propiedad: valor aplica el valor de la propiedad en IE 7 e inferior. Puede que funcione o no en versiones futuras. Advertencia: esto usa CSS no válido.

De: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

Waleed Amjad
fuente
1

Todos los navegadores, excepto IE, ignoran las reglas. Es conocido como el truco estrella. Creo que IE7 ignorará las reglas en modo estándar.

En este caso, la regla de fuente se establece y luego se reemplaza para IE 6 y, a veces, 7.

Frank DeRosa
fuente
Este no es el truco de star-html. Ese va en el selector y es CSS válido.
Bobince
@bobince Star Hack y Star HTML Hack son dos cosas diferentes: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington
0

Hasta donde yo sé, el asterisco evita que Firefox lea el atributo, pero es válido en IE.

Vladimir Kocjancic
fuente
0

Es un truco de CSS, esa regla solo se aplicará a IE7 y versiones anteriores.

Sin embargo, no recomendaría usarlo, hay mejores formas de solucionar las incompatibilidades de IE.

Psilokan
fuente
0

Colocar caracteres como ese es un truco / solución para hacer que IE 6 use la propiedad de un estilo, mientras se oculta de los navegadores más "cuerdos".

Desde aqui :

Para abreviar una larga historia, el analizador de CSS de Internet Explorer es demasiado agresivo al tratar de descubrir los nombres de las propiedades y de hecho ignorará los caracteres no alfanuméricos iniciales. Según mis pruebas, este parece ser el caso desde al menos IE5 en adelante.

JasonWyatt
fuente