¿Qué significa una propiedad precedida de estrellas en CSS?

Estaba buscando un archivo css hoy y encontré el siguiente conjunto de reglas:

div.with-some-class { display:block; margin:0; padding:2px 0 0 0; *padding:1px 0 0 0; font-size:11px; font-weight:normal; *line-height:13px; color:#3D9AD0; } 

¿Qué significa la estrella en * relleno y * altura de línea?

Gracias.

Este es el “truco de propiedad estrella” en la misma línea que el “corte bajo subrayado”. Incluye basura antes de la propiedad que IE ignora (el * funciona hasta IE 7, el _ hasta IE 6).

En CSS? Nada; es un error

Debido a errores en algunas versiones de Internet Explorer, no ignorarán correctamente el nombre de propiedad no válido, por lo que esta es una forma de proporcionar CSS que es específico para esos navegadores.

Sin embargo, usar comentarios condicionales es más claro y seguro.

El carácter asteriscos es un comodín válido en CSS. Usarlo solo significa que las siguientes propiedades de CSS se usarán contra todos los nodos de elementos en el DOM. Ejemplo:

 *{color:#000;} 

La propiedad anterior se aplicará a todos los elementos DOM, con lo que se anulará la cascada natural en CSS. Solo se puede redefinir mediante la creación de elementos DOM específicos en los que esa orientación comience con una referencia de identificador única. Ejemplo:

 #uniqueValue div strong{color:#f00;} 

La propiedad anterior anulará el comodín y hará que el texto de todos los elementos fuertes que ocurren en un div dentro de un elemento con un valor de atributo id de “uniqueValue”.

Usar un comodín de aplicación universal, como el primer ejemplo, puede ser un método rápido y sucio para escribir una hoja de estilo de reinicio. Es rápido y sucio porque la definición granular de presentación después del comodín probablemente creará una hoja de estilo extremadamente hinchada. Si vas a utilizar el comodín, te sugiero que lo uses más específicamente, como por ejemplo:

 * strong{color:#f00;} 

El ejemplo anterior hará que el texto de todos los elementos fuertes tenga un color rojo independientemente de otras propiedades de CSS no especificadas con un identificador único. Esto se considera mucho más seguro que usar la statement “! Importante” ya que se sabe que esa statement interfiere con la funcionalidad natural de los comportamientos previstos y es una pesadilla de mantenimiento.

Los asteriscos en su ejemplo se encuentran en el lugar equivocado, ya que parecen ocurrir dentro de las declaraciones de propiedad, el código que está dentro de llaves, y que probablemente causará un error.

Este es un truco para IE7.

Si escribes esto:

 .test { z-index: 1; *z-index: 2; } 

en todos los navegadores que respetan el estándar W3C

HTMLElement tiene un z-index: 1 pero para IE7, este elemento tiene un z-index: 2 .

Esto no es estándar.

Para lograr lo mismo con el estándar W3C, siga estos pasos:

  • Agregue algunos Comentarios condicionales de Internet Explorer (este es un Comentario HTML simple para todos los demás navegadores, por lo tanto, es una forma estándar).

Y usa las reglas previas como esta:

 .test { z-index: 1; } .ie7 .test { z-index: 2; }