Hojas de estilo en cascada
Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirá de estándar para los agentes de usuario o navegadores.
La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación.
Por ejemplo, el elemento de HTML <H1> indica que un bloque de texto es un encabezamiento y que es más importante que un bloque etiquetado como <H2>. Versiones más antiguas de HTML permitían atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamaño de fuente). No obstante, cada etiqueta <H1> debía disponer de la información si se deseaba un diseño consistente para una página, y además, una persona que lea esa página con un navegador pierde totalmente el control sobre la visualización del texto.
Cuando se utiliza CSS, la etiqueta <H1> no debería proporcionar información sobre como va a ser visualizado, solamente marca la estructura del documento. La información de estilo separada en una hoja de estilo, especifica cómo se ha de mostrar <H1> : color, fuente, alineación del texto, tamaño, y otras características no visuales como definir el volumen de un sintetizador de voz (véase Sintetización del habla), por ejemplo.
La información de estilo puede ser adjuntada tanto como un documento separado o en el mismo documento HTML. En este último podrían definirse estilos generales en la cabecera del documento o en cada etiqueta particular mediante el atributo «style».
Las ventajas de utilizar CSS (u otro lenguaje de estilo) son:
- Control centralizado de la presentación de un sitio web completo con lo que se agiliza de forma considerable la actualización del mismo.
- Los Navegadores permiten a los usuarios especificar su propia hoja de estilo local que será aplicada a un sitio web remoto, con lo que aumenta considerablemente la accesibilidad. Por ejemplo, personas con deficiencias visuales pueden configurar su propia hoja de estilo para aumentar el tamaño del texto o remarcar más los enlaces.
- Una página puede disponer de diferentes hojas de estilo según el dispositivo que la muestre o incluso a elección del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo móvil, o ser «leída» por un sintetizador de voz.
- El documento HTML en sí mismo es más claro de entender y se consigue reducir considerablemente su tamaño.
Hay varias versiones : CSS1 y CSS2, con CSS3 en desarrollo por el World Wide Web Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas diferencias de implementación según marcas y versiones de los navegadores¹. CSS2, sin embargo, está solo parcialmente implentado en los más recientes.
Maquetación CSS
Aunque de un tiempo atrás los diseñadores web han optado la utilización de tablas para el diseño de páginas webs. De esta forma, el uso que daban a las tablas era como elementos de estilo cuando su verdadero cometido es albergar contenido. La maquetación CSS consiste en utilizar capas (layers) que en HTML se definen con las marcas <div></div> (de apertura y cierre, respectivamente) para estructurar la aplicación web, como alternativa a las tablas y los marcos (frames). Así, podemos nombrar cada capa con el atributo id de manera que podremos definir las propiedades de dicha capa en el archivo CSS externo al documento, aunque también se puede incluir el código CSS en la misma página que el HTML, pero es poco funcional (es convieniente hacer uso de la modularidad para hacer más fácil el mantenimiento).
Recomendaciones del W3C
Cascading Style Sheets, nivel 1 (CSS1), Diciembre de 1996
- Propiedades de fuentes
- Propiedades de color y fondo
- Propiedades de texto
- espaciado de palabras
- alineación
- Propiedades de caja
- Margen
- Borde
- Relleno
- Propiedades de clasificación
- visualización
- listas
Ilustración de propiedades de caja:
Margen (Margin)
Margen (Margin) |
Si se define una caja con el atributo width (ancho), se interpreta por el modelo de caja del W3C como la anchura del contenido. La anchura del relleno y del borde se añaden a la anchura total del elemento.
En el modelo de caja de Microsoft el atributo de anchura es la anchura total, es decir, la anchura del contenido, del relleno y del borde.
Esto restringe severamente el uso de este modelo en una especificación para varios navegadores. Si uno quiere evitarlo, no puede especificar el margen, el relleno o el borde en la misma etiqueta que el ancho del contenido. Otra posibilidad es usar un hack (véase la sección de enlaces).
No obstante Internet Explorer 6.0 puede variarse a un modo acorde con el estándar si se usa una declaración !DOCTYPE apropiada.