1 Acerca de la Especificación CSS2

Contenidos

1.1 Leyendo la especificación

Esta especificación se ha escrito con dos tipos de lectores en mente: autores de CSS e implementadores de CSS. Esperamos que la especificación provea a los autores de las herramientas que necesitan para componer documentos eficaces, atractivos y accesibles, sin agobiarlos con detalles acerca de la implementación de las CSS. Los implementadores, sin embargo, deben encontrar todo lo necesario para desarrollar aplicaciones del usuario con conformidad. La especificación comienza con una presentación general de las CSS y luego se hace más técnica y específica. Para el rápido acceso a la información, un tabla general de contenidos, tablas de contenidos específicas al comienzo de cada sección y un índice facilitan la búsqueda, tanto en la versión electrónica como en la impresa.

La especificación se ha escrito con dos modos de presentación en mente: electrónica e impresa. Aunque ambas presentaciones serán, sin duda, similares, los lectores encontrarán algunas diferencias. Por ejemplo, los vínculos no funcionarán en la versión impresa (obviamente) y los números de las páginas no aparecerán en la versión electrónica. En caso de discrepancia, la versión electrónica es considerada la versión dominante.

1.2 Cómo está organizada la especificación

La especificación está organizada en las siguientes secciones:

Sección 2: Una introducción a CSS2
La introducción incluye un breve manual de instrucciones de CSS2 y una discusión de los fundamentos de diseño que se encuentran detrás de CSS2.
Secciones 3 - 20: Manual de referencia de CSS2
El cuerpo principal del manual de referencia consiste en la referencia del lenguaje CSS2. Esta referencia define qué puede incluirse en una hoja de estilo CSS2 (sintaxis, propiedades, valores) y cómo las aplicaciones del usuario deben interpretar estas hojas de estilo para aspirar a su conformidad.
Apéndices:
Los apéndices contienen información sobre un ejemplo de hoja de estilo para HTML 4.0, cambios efectuados sobre CSS1 , implementación y notas sobre el funcionamiento, la gramática de CSS2, una lista de referencias normativas e informativas, y tres índices: uno para las propiedades, uno para los descriptores, y un índice general.
.

1.3 Convenciones

1.3.1 Elementos y atributos en el lenguaje del documento

1.3.2 Definición de las propiedades CSS

Cada definición de una propiedad CSS comienza con un resumen de la información clave que se asemeja a lo siguiente:

'nombre_de_la_propiedad'
Valor:  valores permitidos y sintaxis
Inicial:  valor inicial
Se aplica a:  elementos a los cuáles se aplica esta propiedad
Se hereda:  si la propiedad es heredada
Porcentajes:  cómo se interpretan los valores de porcentaje
Medios:  a qué grupo de medios se aplica la propiedad

Valor

Esta parte especifica el conjunto de valores válidos para la propiedad. Los tipos de valor pueden ser designados de varias maneras:

  1. palabras clave (ej., auto, disc, etc.)
  2. datos básicos, que aparecen entre "<" y ">" (ej., <medida>, <porcentaje>, etc.). En la versión electrónica del documento, cada instancia de un dato básico contiene un vínculo a su definición.
  3. tipos que tienen el mismo rango de valores que una propiedad con igual nombre (ej., <'border-width'> <'background-attachment'>, etc.). En este caso, el nombre del tipo es el nombre de la propiedad (completo con comillas) entre "<" y ">" (ej., <'border-width'>). En la versión electrónica del documento, cada instancia de este tipo no-terminal es un vínculo a la correspondiente definición de la propiedad.
  4. no-terminales que no comparten el mismo nombre que una propiedad. En este caso, el nombre no-terminal aparece entre "<" y ">", como en <border-width>. Note la diferencia entre <border-width> y <'border-width'>; el último se define en términos del anterior. La definición de un no-terminal se encuentra en su primera aparición dentro de la especificación. En la versión electrónica del documento, cada instancia de este tipo de valor es un vínculo a la correspondiente definición del valor.

Nota de la traducción:
Para evitar el desconcierto de quienes (como yo) no dominan los lenguajes de programación, aclaro que la denominación no-terminal (en inglés, non-terminal) está relacionada con el proceso de entrada de datos en un programa y las funciones de reconocimiento de esos datos.

Otras palabras en estas definiciones son palabras clave que deben aparecer literalmente, sin comillas (ej., red). La barra inclinada (/) y la coma (,) también deben aparecer literalmente.

Los valores pueden estar organizados de las siguientes maneras:

La yuxtaposición es más fuerte que la barra doble y la barra doble es más fuerte que la barra. De este modo, las siguientes líneas son equivalentes:

    a b   |   c || d e
  [ a b ] | [ c || [ d e ]]

Cada tipo, palabra clave o grupo encerrado entre corchetes puede ser seguido por uno de los siguientes modificadores:

Los siguientes ejemplos ilustran los diferentes tipos de valor:

Valor: N | NW | NE
Valor: [ <medida> | thick | thin ]{1,4}
Valor: [<family-name> , ]* <family-name>
Valor: <uri>? <color> [ / <color> ]?
Valor: <uri> || <color>

Inicial

Esta parte especifica el valor inicial de la propiedad. Si la propiedad se hereda, éste es el valor que se ha dado al elemento raíz de la estructura del documento. Por favor, consulte la sección sobre el concepto de cascada para obtener información acerca de la interacción entre valores especificados en las hojas de estilo, valores heredados y valores iniciales.

Se aplica a

Esta parte registra los elementos a los cuales se aplica la propiedad. Todos los elementos son considerados aptos para tener todas las propiedades, pero algunas propiedades no tienen ningún efecto sobre el procesamiento de algunos tipos de elementos. Por ejemplo, 'white-space' sólo afecta a los elementos a nivel de bloque.

Se hereda

Esta parte indica si el valor de la propiedad se hereda de un elemento antepasado. Por favor, consulte la sección sobre el concepto de cascada para obtener información sobre la interacción entre valores especificados en las hojas de estilo, valores heredados y valores iniciales.

Porcentajes

Esta parte indica cómo deben ser interpretados los porcentajes cuando aparecen en el valor de la propiedad. Si aquí aparece "N/A", significa que la propiedad no acepta porcentajes como valores.

Grupos de medios

Esta parte indica los grupos de medios a los cuales se aplica la propiedad. La condición de conformidad establece que las aplicaciones del usuario deben soportar esta propiedad en el caso de que soporten el procesamiento de los tipos de medio incluidos en estos grupos de medios.

1.3.3 Propiedades resumidas

Algunas propiedades son fórmulas resumidas, significando que permiten a los autores especificar los valores de varias propiedades con una sola propiedad.

Por ejemplo, la propiedad 'font' es una propiedad resumida para definir 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height' y 'font-family', todas de una sola vez.

Cuando algunos valores son omitidos en la fórmula resumida, a cada propiedad "ausente" le es asignado su valor inicial (ver la sección sobre cascada).

Ejemplo(s):

Las múltiples reglas de estilo de este ejemplo:

H1 { 
  font-weight: bold; 
  font-size: 12pt;
  line-height: 14pt; 
  font-family: Helvetica; 
  font-variant: normal;
  font-style: normal;
  font-stretch: normal;
  font-size-adjust: none
}

pueden re-escribirse con una sola propiedad resumida:

H1 { font: bold 12pt/14pt Helvetica }

En este ejemplo, 'font-variant', 'font-stretch', 'font-size-adjust' y 'font-style' toman sus valores iniciales.

1.3.4 Notas y ejemplos

Todos los ejemplos que ilustran usos no permitidos están claramente señados como "EJEMPLO ILICITO".

Todos los ejemplos de HTML están ajustados a la especificación HTML 4.0 strict DTD (definida en [HTML40]) a menos que se indique otra a través de una declaración del tipo de documento.

Todas las notas son sólo informativas.

Los ejemplos y notas están marcados dentro del código HTML para la especificación y las aplicaciones del usuario CSS1 los procesarán de modo especial.

1.3.5 Imágenes y descripciones extensas

La mayoría de las imágenes en la versión electrónica de esta especificación están acompañadas por "descripciones extensas" de lo que representan. Un vínculo a la descripción extensa es señalado por una "[D]" a la derecho de la imagen.

Las imágenes y las descripciones extensas sólo son informativas.

1.4 Reconocimientos

Esta especificación es producto del Grupo de Trabajo del W3C en Hojas de Estilo en Cascada y Propiedades de Formateo. Además de los editores de esta especificación, los miembros del Grupo del Trabajo son: Brad Chase (Bitstream), Chris Wilson (Microsoft), Daniel Glazman (Electricité de France), Dave Raggett (W3C/HP), Ed Tecot (Microsoft), Jared Sorensen (Novell), Lauren Wood (SoftQuad), Laurie Anna Kaplan (Microsoft), Mike Wexler (Adobe), Murray Maloney (Grif), Powell Smith (IBM), Robert Stevahn (HP), Steve Byrne (JavaSoft), Steven Pemberton (CWI), Thom Phillabaum (Netscape), Douglas Rand (Silicon Graphics), Robert Pernett (Lotus), Dwayne Dicks (SoftQuad) y Sho Kuwamoto (Macromedia). Agradecemos a ellos sus continuos esfuerzos.

Varios expertos invitados al Grupo de Trabajo han contribuido: George Kersher, Glenn Rippel (Bitstream), Jeff Veen (HotWired), Markku T. Hakkinen (The Productivity Works), Martin Dürst (W3C, formerly Universität Zürich), Roy Platon (RAL), Todd Fahrner (Verso), Tim Boland (NIST), Eric Meyer (Case Western Reserve University) y Vincent Quint (W3C).

La sección de fuentes de la Web fue producida principalmente por Brad Chase (Bitstream) David Meltzer (Microsoft Typography) y Steve Zilles (Adobe). Las siguientes personas también han contribuido de distintas maneras a la sección perteneciente a fuentes: Alex Beamon (Apple), Ashok Saxena (Adobe), Ben Bauermeister (HP), Dave Raggett (W3C/HP), David Opstad (Apple), David Goldsmith (Apple), Ed Tecot (Microsoft), Erik van Blokland (LettError), François Yergeau (Alis), Gavin Nicol (Inso), Herbert van Zijl (Elsevier), Liam Quin, Misha Wolf (Reuters), Paul Haeberli (SGI) y el rezagado Phil Karlton (Netscape).

La sección sobre medios paginados fue redactada en gran parte por Robert Stevahn (HP) y Stephen Waters (Microsoft).

Robert Stevahn (HP), Scott Furman (Netscape) y Scott Isaacs (Microsoft) contribuyeron en el tipiado de Posicionamiento CSS.

Mike Wexler (Adobe) fue el redactor del proyecto interno, el cual esbozó muchas de las nuevas características de CSS2.

T.V. Raman (Adobe) hizo contribuciones esenciales con relación a las Hojas de Estilo en Cascada Auditivas (ACSS) y a los conceptos de presentación auditiva basado en su trabajo en AsTeR (Audio System For Technical Readings). Ha contribuido con un proyecto inicial de la especificación ACSS que formó la actual especificación. Los valores para las propiedades auditivas en el ejemplo de hoja de estilo para HTML 4.0 son de su invención; él los usa actualmente de modo cotidiano en su computadora de audio junto con Emacspeak y el navegador W3 Emacs (creado por William Perry, quien también implementó las extensiones auditivas por parte de W3).

Todd Fahrner (Verso) investigó los navegadores históricos y contemporáneos para desarrollar el ejemplo de hoja de estilo en el apéndice.

Gracias a Jan Kärrman, autor de html2ps por su gran ayuda creando la versión PostScript de esta especificación.

A través de los encuentros electrónicos y físicos, las siguientes personas han contribuido al desarrollo de CSS2: Alan Borning, Robert Cailliau, Liz Castro, James Clark, Dan Connolly, Donna Converse, Daniel Dardailler, Al Gilman, Daniel Greene, Scott Isaacs, Geir Ivarsøy, Vincent Mallet, Kim Marriott, Brian Michalowski, Lou Montulli, Henrik Frystyk Nielsen, Jacob Nielsen, Eva von Pepel, William Perry, David Siegel, Peter Stuckey y Jason White.

Las discusiones en www-style@w3.org han influido en muchos temas claves para CSS. Especialmente, nos gustaría agradecer a Bjorn Backlund, Todd Fahrner, Lars Marius Garshol, Sue Jordan, Ian Hickson, Susan Lesch, Andrew Marshall, MegaZone, Eric Meyer, Russell O'Connor, David Perrell, Liam Quinn, Jon Seymour, Neil St. Laurent, Taylor, Brian Wilson y Chris Wilson por su participación.

Muchas gracias al Web Accessibility Initiative Protocols and Formats Technical Review Working Group (WAI PF) por ayudar a mejorar la accesibilidad de CSS2.

Muchas gracias a Philippe Le Hégaret, cuyo validador CSS contribuyó a asegurar ejemplos correctos y una gramática rigurosa.

Un especial agradecimiento a Arnaud Le Hors, cuya contribución técnica hace que este documento funcione.

Adam Costello mejoró esta especificación realizando una revisión detallada.

Por útlimo, gracias a Tim Berners-Lee sin quien nada de esto habría sido posible.

1.5 Aviso de Copyright

Copyright © 1997 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). Todos los derechos reservados.

Los documentos del sitio del W3C son proporcionados por los propietarios del copyright bajo la siguiente licencia. Obteniendo, usando y/o copiando este documento, o el documento del W3C del que esta declaración está vinculada, usted acuerda que ha leído, entendido y cumplirá con los siguiente términos y condiciones:

El permiso para usar, copiar y distribuir el contenido de este documento, o del documento del W3C del que esta declaración está vinculada, por cualquier medio, para cualquier propósito y sin cargo o retribución es concedido por este medio, con la condición de incluir lo siguiente en TODAS las copias del documento, o cualquiera de sus partes, que se usen:

  1. Un vínculo o URI al documento original del W3C.
  2. El anterior aviso de copyright del autor original, si no existe, un aviso con esta fórmula: "Copyright © World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). Todos los derechos reservados."
  3. Si existe, el ESTADO del documento del W3C.

Cuando el espacio lo permita, se debe proporcionar el texto completo de este AVISO. Además, se deberá otorgar crédito a los propietarios del copyright por cualquier programa, documento u otros artículos o productos que se elaboren de conformidad con la implementación del contenido de este documento o cualquier parte del mismo.

No se otorga ningún derecho para crear modificaciones o derivados de acuerdo con esta licencia.

ESTE DOCUMENTO SE ENTREGA "TAL CUAL ESTÁ" Y LOS PROPIETARIOS DEL COPYRIGHT NO OTORGAN REPRESENTACIONES O GARANTÍAS, EXPRESAS O IMPLÍCITAS, INCLUYENDO, PERO SIN LIMITARSE A, GARANTÍAS DE COMERCIABILIDAD, DE IDONEIDAD PARA DETERMINADO PROPÓSITO, DE NO CONTRAVENCIÓN O TÍTULO; QUE EL CONTENIDO DEL DOCUMENTO ES ADECUADO A CUALQUIER PROPÓSITO; NI QUE LA IMPLEMENTACIÓN DE TALES CONTENIDOS NO INFRINGEN NINGUNA PATENTE DE TERCEROS, PROPIEDAD INTELECTUAL, MARCAS REGISTRADAS U OTROS DERECHOS.

LOS PROPIETARIOS DEL COPYRIGHT NO SERÁN RESPONSABLES POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL O DERIVADO DE CUALQUIER USO DE ESTE DOCUMENTO O EL FUNCIONAMIENTO O IMPLEMENTACION DEL CONTENIDO DEL MISMO.

El nombre y la marca registrada de los propietarios del copyright NO pueden ser usados en publicidades o anuncios relacionados a este documento o su contenido sin una autorización previa explícita y por escrito. El derecho al copyright de este documento sigue siendo en todo momento de los propietarios del copyright.

Copyright  ©  1998 W3C (MIT, INRIA, Keio ), All Rights Reserved.

Traducción: Carlos Benavidez