2009-03-14 16 views
5

He estado buscando un truco para resolver un problema de CSS que tengo. Yo había usado uno para crear una regla personalizada para Internet Explorer.¿Cuál es el alcance del * CSS hack?

margin-top:45px; 
*margin-top:0px; 

¿Este truco se aplica a todos los navegadores IE? ¿Este hack aparece en cualquier versión de Firefox o Safari?

Respuesta

9

Esto se aplica a IE7 y siguientes. Pero tenga en cuenta que no es válido CSS, y podría romperse en cualquier momento. Consulte here para obtener una lista más completa de los diversos hacks de CSS y los navegadores a los que afectan.

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

Recomiendo encarecidamente reconsiderar si realmente necesita este truco, y si no hay una mejor manera de hacer lo que quiere.

+1

Bueno, preferiría no utilizar un comentario condicional para incluir otra hoja de estilo, lo que significa otra solicitud HTTP para usuarios de IE. – Sam152

+1

Eso es un dilema falso: no necesariamente tiene que elegir entre (a) hoja de estilo condicional y (b) pirateo CSS. Hay formas de escribir CSS para que se vean iguales en IE y otros navegadores, aunque concedo que es un poco más difícil. –

+0

La situación particular es un poco difícil. Algo relacionado con la forma en que IE maneja los UL y los flotantes anidados. – Sam152

Cuestiones relacionadas