2009-08-30 8 views
7

Próbowałem sprawdzić poprawność kodu CSS mojej witryny za pomocą Walidatora CSS W3C. Niestety, reset-min.css z frameworku YUI spowodował błąd parsowania w ciągu znaków "{* font-size: 100%;".Dlaczego YUI Reset CSS nie przejdzie walidacji?

The validator results.

Na dalszych badań zauważyłem następujący błąd w konsoli błędów Firefoksa:

Ostrzeżenie: Oczekiwano deklaracji, ale odnaleziono '*'. Przeskoczono do następnej deklaracji.

Nie mogłem znaleźć żadnego wyjaśnienia znaczenia "*", ani odniesienia do problemu w tym popularnym resetującym CSS.

Czego mi brakuje?

Odpowiedz

9

To jest hack dla IE7 i niższy. IE7 i lower pomijają gwiazdkę i nadal parsują CSS jak zwykle. Inne przeglądarki po prostu zignorują całą regułę.

Jako przykład, ponieważ CSS użyje ostatnio zadeklarowanej wersji reguły, wykonanie poniższych czynności spowoduje, że IE7 i poniżej użyją font-size z 113%, podczas gdy inne przeglądarki używają font-size z 100% dla akapitów.

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

Jest trochę więcej informacji pod numerem webdevout.net.

Osobiście uważam, że dopuszcza się używanie takich hacków w celu obejścia załamania IE. Najwyraźniej Yahoo! czuje się w ten sam sposób.

+4

Chociaż nie jestem purystą, nadal wolę wyrzucać te śmieci do warunku IE (bardziej martwiąc się o brzydotę niż ważność). –

6

To prawdopodobnie hack kompatybilności IE.

Istnieje wiele błędów składniowych CSS, które niektóre przeglądarki (w szczególności IE 6) będą ignorowane, a inne nie. Niektóre pliki CSS będą używać tych błędów do utworzenia reguły, którą zobaczy jedna przeglądarka, a inna przeglądarka nie. Aby uzyskać pełną listę, zobacz here. W twoim przypadku reguła ta będzie widoczna tylko w IE 7 lub niższym.

+2

Tak, po prostu pobierz deklaracje z * i umieść je w warunkowym pliku CSS bez *, a następnie możesz sprawdzić. –