Generalidades ************* Antes de entrar de lleno en la descripción de su sintaxis, es preciso exponer algunos aspectos introductorios del lenguaje: .. _css-vers: Versiones ========= |CSS| es una tecnología cuyo estándar es propuesto por el |W3C|. Presenta, más que versiones, niveles, porque el siguiente se va construyendo sobre el anterior. |CSS|\ 1 Se publicó a finales de 1995 e incluía aspectos básicos: propiedades de la tipografía, colores, alineaciones, :ref:`propiedades de las cajas ` como bordes o márgenes, presentación de listas, etc. |CSS|\ 2 Se publicó en 1998 y añadió `posicionamiento `_, estilos :ref:`según el medio ` y algunas cosas más. La especificación contenía algunos problemas de funcionalidad por lo que en 2011 se publicó la revisión |CSS|\ 2.1, que los corregía y añadía alguna funcionalidad más. |CSS|\ 3 Se publicó a partir de 2011 y, aunque añadió bastantes funcionalidades, su principal aportación fue modularizar las especificaciones de |CSS| para que cada uno de sus módulos pueda ir evolucionando de forma independiente. Por ejemplo, un módulo es "Fondos y colores" y sólo se encarga de las reglas referentes a este aspecto, mientras que hay otro específico para describir ":ref:`Selectores `". Al segregarse, cada módulo avanza a su ritmo y algunos pueden encontrarse en nivel **3**, otros en nivel **4** y otros próximos a alcanzar el nivel **5**. Por tanto, ya no existirá jamás una especificación |CSS| de nivel 4. .. _css-decl: Asociación al |HTML| ==================== Dado que las reglas |CSS| se aplican a un documento |HTML|, es necesario establecer la asociación entre las unas y el otro. Hay tres estrategias que, de menor a mayor conveniencia, son: #. Reglas **en línea**, esto es, aplicar directamente el estilo mediante el atributo ``style``: .. code-block:: html

Esto es un párrafo

#. Reglas **internas**, esto es, incluir reglas |CSS| dentro del elemento :ref:`style ` de la :ref:`cabecera `: .. code-block:: html Ejemplo de cómo usar style .. note:: Las dos reglas no son exactamente equivalentes. La primera se aplica sólo al elemento párrafo que contiene el atributo, mientras que la segunda se aplicará a todos los elementos párrafo del documento. Ya profundizaremos más adelante en los :ref:`selectores `. #. Reglas **externas**, esto es, escribir las reglas en uno o varios documentos aparte y referirlos dentro del |HTML| usando el elemento :ref:`link ` de la cabecera: .. code-block:: html Ejemplo de cómo usar style En principio y salvo excepciones muy, muy puntuales, el método aconsejable para llevar a cabo la asociación es el tercero, ya que es el que separa realmente la presentación del contenido. De este modo, cambiar el aspecto del documento consiste únicamente en cambiar la referencia al archivo (o los archivos) |CSS|, acción que puede llevarse a cabo incluso de forma dinámica con *Javascript*, como ya veremos. Recuérdese, además, que pueden definirse estilos alternativos dotándolos de un nombre, tal como se indicó al estudiar el elemento |link|. Herramientas ============ Como herramientas para la creación, prueba y validación de documentos |CSS| es válido lo expuesto en el :ref:`apartado respectivo para HTML `. .. |CSS| replace:: :abbr:`CSS (Cascading Style Sheets)` .. |W3C| replace:: :abbr:`W3C (W3 Consortium)` .. |link| replace:: :ref:` `