Apéndice B: Cambios con respecto a CSS1
Este apéndice es informativo, no normativo.
CSS2 se cimenta en CSS1 y todas las hojas de estilo CSS1 válidas son hojas de estilo CSS2 válidas. Los cambios entre la especificación CSS1 (ver [CSS1]) y esta especificación caben en tres grupos: nuevo funcionamiento, descripciones actualizadas del funcionamiento de CSS1 y cambios a CSS1.
Además del funcionamiento de CSS1, CSS2 soporta:
- El concepto de tipos de medios.
- El valor 'inherit' para todas las propiedades.
- Medios paginados
- Hojas de estilo auditivas
- Algunas características de internacionalización, incluyendo estilos de numeración de listas, soporte para texto bidireccional y soporte para comillas sensibles al idioma.
- Un mecanismo extendido de selección de fuentes, incluyendo equivalencia inteligente, síntesis y fuentes descargables. También, se ha introducido el concepto de fuentes del sistema y una nueva propiedad, 'font-size-adjust', ha sido agregada.
- Tablas, incluyendo nuevos valores en 'display' y 'vertical-align'.
- Posicionamiento relativo y absoluto, incluyendo posicionamiento fijo.
- Nuevos tipos de cajas (junto con las de bloque y de línea): compact y run-in.
- La capacidad de controlar el desbordamiento, recorte y visibilidad del contenido en el modelo de formato visual.
- La capacidad de especificar anchos y alturas mínimos y máximos en el modelo de formato visual.
- Un mecanismo selector extendido, incluyendo selectores de hijos, selectores de adyacentes y selectores de atributos.
- Contenido generado, contadores y numeración automática, y marcadores.
- Texto con sombra, a través de la nueva propiedad 'text-shadow'.
- Algunas nuevas pseudo-clases, :first-child, :hover, :focus, :lang.
- Colores y fuentes del sistema.
- Cursores.
- Contornos dinámicos.
La especificación CSS1 era breve y concisa. Esta especificación es mucho más voluminosa y más legible. Mucho del contenido adicional describe el nuevo funcionamiento, pero la descripción de las características de CSS1 ha sido también extendida. Excepto en los pocos casos descriptos abajo, las descripciones revisadas no indican un cambio en la sintaxis ni en la semántica.
Mientras que todas las hojas de estilo CSS1 son hojas de estilo CSS2 válidas, hay unos pocos casos donde la hoja de estilo CSS1 tendrá un significado distinto cuando sea interpretada como una hoja de estilo CSS2. La mayoría de los cambios se deben a la implementación en la especificación de la experiencia acumulada, pero también hay alguna corrección de errores.
- El significado de "!important" ha sido cambiado. En CSS1, "!important" en una hoja de estilo del autor tenía preponderancia por sobre una especificada en una hoja de estilo del usuario. Esto ha sido invertido en CSS2.
- En CSS2, los valores para color son recortados con respecto a la gama del dispositivo, no con respecto a la gama sRGB como en CSS1.
- CSS1 simplemente decía que 'margin-right' era ignorado si tanto 'margin-left' como 'width' estaban establecidos. En CSS2 la elección entre 'margin-right' o 'margin-left' depende de la dirección de escritura.
- En CSS1, varias propiedades (ej., 'padding') tenía valores referidos al ancho del elemento padre. Esto era un error; el valor debe siempre referirse al ancho del elemento a nivel de bloque y esta especificación refleja esto introduciendo el término "bloque de contención".
- El valor inicial de 'display' es 'inline' en CSS2, no 'block' como en CSS1.
- En CSS1, la propiedad 'clear' se aplicaba a todos los elementos. Esto era un error, y la propiedad sólo se aplica a los elementos a nivel de bloque en CSS2.
- En CSS1, ':link', ':visited' y ':active' eran mutuamente excluyentes; en CSS2, ':active' puede aparecer junto con ':link' o ':visited'.
- El factor de escala sugerido entre índices adyacentes de 'font-size' en la tabla de tamaños de la fuente ha sido reducido de 1.5 a 1.2.
- El valor computado, no es valor real, de 'font-size' es heredado.
- La descripción en CSS1 de 'inside' (para 'list-style-position') posibilitaba la interpretación de que el margen izquierdo del texto era afectado, en lugar de la posición de la viñeta. En CSS2 esa interpretación está corregida.
- Por favor, también consulte la sección normativa en diferencias entre los comandos de CSS1 y CSS2.