2009-08-30 9 views
7

Intenté validar el CSS de mi sitio utilizando el W3C CSS Validator. Desafortunadamente, reset-min.css del framework YUI produjo un error de análisis en la cadena "{* font-size: 100%;".¿Por qué YUI Reset CSS no pasa la Validación?

The validator results.

En una investigación más me di cuenta del error siguiente en la consola de error de Firefox:

Advertencia: Se espera la declaración pero se encontró '*'. Saltado a la siguiente declaración.

No he podido encontrar ninguna explicación para el significado del '*', ni referencias para un problema en este popular restablecimiento CSS.

¿Qué me estoy perdiendo?

Respuesta

9

Este es un truco para IE7 y versiones anteriores. IE7 e inferior omitirán el asterisco y continuarán el análisis del CSS de forma normal. Otros navegadores simplemente ignorarán la regla completa.

Como ejemplo, como CSS usará la última versión declarada de una regla, hacer lo siguiente hará que IE7 y abajo usen un font-size de 113%, mientras que otros navegadores usan un font-size de 100% para los párrafos.

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

Hay un poco más de información en webdevout.net.

Personalmente, creo que es aceptable utilizar dichos hacks para solucionar el problema de IE. Aparentemente, Yahoo! se siente de la misma manera.

+4

Si bien no soy purista, aún prefiero tirar esa basura en un IE condicional (más preocupado por lo feo que por la validez). –

6

Probablemente sea un hack de compatibilidad de IE.

Hay muchos errores de sintaxis CSS que algunos navegadores (especialmente IE 6) ignorarán y otros no. Algunos archivos CSS usarán los errores para crear una regla que un navegador verá y otro navegador no. Para obtener una lista completa, ver here. En su caso particular, esa regla solo se verá en IE 7 o inferior.

+2

Sí, simplemente tome las declaraciones con * y colóquelas en un archivo CSS condicional de IE sin el * y luego puede validar. –

Cuestiones relacionadas