2009-03-14 14 views
5

Ho cercato un trucco per risolvere un problema CSS che ho. Ne ho usato uno per creare una regola personalizzata per Internet Explorer.Qual è lo scopo dell'hack * CSS?

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

Questa modifica si applica a tutti i browser IE? Questo hack appare in qualsiasi versione di Firefox o Safari?

risposta

9

Questo vale per IE7 e di seguito. Ma sappi che non è valido CSS e potrebbe interrompersi in qualsiasi momento. Vedi here per un elenco più completo dei vari hack CSS e di quali browser hanno effetto.

Sebbene Internet Explorer 7 corretto il suo comportamento quando un nome di proprietà è preceduto da un trattino o un trattino, altri prefissi di caratteri non alfanumerici vengono trattati come erano in IE6. Pertanto, se si aggiunge un carattere non alfanumerico come un asterisco (*) immediatamente prima del nome di una proprietà, la proprietà verrà applicata in IE e non in altri browser. A differenza del metodo trattino e sottolineatura, la specifica CSS non fa alcuna riserva per l'asterisco come prefisso, quindi l'uso di questo hack potrebbe comportare un comportamento imprevisto man mano che le specifiche CSS si evolvono.

Consiglio vivamente di riconsiderare se hai davvero bisogno di questo trucco e se non c'è un modo migliore per fare ciò che vuoi.

+1

Bene, preferirei non utilizzare un commento condizionale per includere un altro foglio di stile, ovvero un'altra richiesta HTTP per gli utenti di IE. – Sam152

+1

Questo è un po 'un falso dilemma: non devi necessariamente scegliere tra (a) fogli di stile condizionali e (b) hack CSS. Ci sono modi per scrivere CSS in modo che abbiano lo stesso aspetto in IE e altri browser, anche se ammetto che è un po 'più difficile. –

+0

La particolare situazione in cui mi trovo è un po 'difficile. Qualcosa che ha a che fare con il modo in cui IE gestisce gli UL annidati e galleggia. – Sam152