2009-08-30 16 views
7

Ho provato a convalidare il CSS del mio sito utilizzando il validatore CSS W3C. Sfortunatamente, reset-min.css dal framework YUI ha prodotto un errore di analisi sulla stringa "{* font-size: 100%;".Perché il reset YUI CSS non supera la convalida?

The validator results.

Su ulteriori indagini ho notato il seguente errore sulla console degli errori di Firefox:

Attenzione: Si ritiene dichiarazione, trovato '*'. Saltato alla prossima dichiarazione.

Non ho trovato alcuna spiegazione per il significato di "*", né riferimenti per un problema in questo popolare reset CSS.

Cosa mi manca?

risposta

9

Questo è un hack per IE7 e inferiore. IE7 e inferiore salteranno l'asterisco e continueranno a analizzare il CSS come di consueto. Gli altri browser ignoreranno l'intera regola.

Ad esempio, poiché il CSS utilizzerà l'ultima versione dichiarata di una regola, facendo in modo che IE7 e inferiore utilizzino uno font-size del 113%, mentre altri browser utilizzano uno font-size del 100% per i paragrafi.

p { font-size: 100%; *font-size: 113%; } 

C'è un po 'più di informazioni allo webdevout.net.

Personalmente, penso che sia accettabile utilizzare tali hack allo scopo di aggirare la scomposizione di IE. Apparentemente, Yahoo! si sente allo stesso modo.

+4

Mentre non sono un purista, preferisco comunque gettare quella spazzatura in un condizionale di IE (più preoccupato del brutto che della validità). –

6

È probabilmente un hack di compatibilità IE.

Ci sono molti errori di sintassi CSS che alcuni browser (in particolare IE 6) ignoreranno e altri no. Alcuni file CSS useranno gli errori per fare una regola che un browser vedrà e un altro browser no.

MODIFICA: per un elenco completo, vedere here. Nel tuo caso particolare, tale regola sarà vista solo da IE 7 o inferiore.

+2

Sì, basta prendere le dichiarazioni con * e inserirle in un file CSS condizionale di IE senza * e quindi è possibile convalidare. –