Descripcion de CSS
Las hojas de estilos aparecieron poco después que el lenguaje de etiquetas SGML, alrededor del año 1970. Desde la creación de SGML,
se observó la necesidad de definir un mecanismo que permitiera aplicar
de forma consistente diferentes estilos a los documentos electrónicos.
El gran impulso de los lenguajes de hojas de estilos se produjo con el boom de Internet y el crecimiento exponencial del lenguaje HTML para la creación de documentos electrónicos. La guerra de navegadores y la falta de un estándar para la definición de los estilos dificultaban la creación de documentos con la misma apariencia en diferentes navegadores.
El organismo W3C (World Wide Web Consortium), encargado de crear todos los estándares relacionados con la web, propuso la creación de un lenguaje de hojas de estilos específico para el lenguaje HTML y se presentaron nueve propuestas. Las dos propuestas que se tuvieron en cuenta fueron la CHSS (Cascading HTML Style Sheets) y la SSP (Stream-based Style Sheet Proposal).
La propuesta CHSS fue realizada por Håkon Wium Lie y SSP fue propuesto por Bert Bos. Entre finales de 1994 y 1995 Lie y Bos se unieron para definir un nuevo lenguaje que tomaba lo mejor de cada propuesta y lo llamaron CSS (Cascading Style Sheets).
En 1995, el W3C decidió apostar por el desarrollo y estandarización de CSS y lo añadió a su grupo de trabajo de HTML. A finales de 1996, el W3C publicó la primera recomendación oficial, conocida como "CSS nivel 1".
A principios de 1997, el W3C decide separar los trabajos del grupo de HTML en tres secciones: el grupo de trabajo de HTML, el grupo de trabajo de DOM y el grupo de trabajo de CSS.
El 12 de Mayo de 1998, el grupo de trabajo de CSS publica su segunda recomendación oficial, conocida como "CSS nivel 2". La versión de CSS que utilizan todos los navegadores de hoy en día es CSS 2.1, una revisión de CSS 2 que aún se está elaborando (la última actualización es del 23 de abril de 2009). Al mismo tiempo, la siguiente recomendación de CSS, conocida como "CSS nivel 3", continúa en desarrollo desde 1998 y hasta el momento sólo se han publicado borradores.
La adopción de CSS por parte de los navegadores ha requerido un largo periodo de tiempo. El mismo año que se publicó CSS 1, Microsoft lanzaba su navegador Internet Explorer 3.0, que disponía de un soporte bastante reducido de CSS. El primer navegador con soporte completo de CSS 1 fue la versión para Mac de Internet Explorer 5, que se publicó en el año 2000. Por el momento, ningún navegador tiene soporte completo de CSS
El gran impulso de los lenguajes de hojas de estilos se produjo con el boom de Internet y el crecimiento exponencial del lenguaje HTML para la creación de documentos electrónicos. La guerra de navegadores y la falta de un estándar para la definición de los estilos dificultaban la creación de documentos con la misma apariencia en diferentes navegadores.
El organismo W3C (World Wide Web Consortium), encargado de crear todos los estándares relacionados con la web, propuso la creación de un lenguaje de hojas de estilos específico para el lenguaje HTML y se presentaron nueve propuestas. Las dos propuestas que se tuvieron en cuenta fueron la CHSS (Cascading HTML Style Sheets) y la SSP (Stream-based Style Sheet Proposal).
La propuesta CHSS fue realizada por Håkon Wium Lie y SSP fue propuesto por Bert Bos. Entre finales de 1994 y 1995 Lie y Bos se unieron para definir un nuevo lenguaje que tomaba lo mejor de cada propuesta y lo llamaron CSS (Cascading Style Sheets).
En 1995, el W3C decidió apostar por el desarrollo y estandarización de CSS y lo añadió a su grupo de trabajo de HTML. A finales de 1996, el W3C publicó la primera recomendación oficial, conocida como "CSS nivel 1".
A principios de 1997, el W3C decide separar los trabajos del grupo de HTML en tres secciones: el grupo de trabajo de HTML, el grupo de trabajo de DOM y el grupo de trabajo de CSS.
El 12 de Mayo de 1998, el grupo de trabajo de CSS publica su segunda recomendación oficial, conocida como "CSS nivel 2". La versión de CSS que utilizan todos los navegadores de hoy en día es CSS 2.1, una revisión de CSS 2 que aún se está elaborando (la última actualización es del 23 de abril de 2009). Al mismo tiempo, la siguiente recomendación de CSS, conocida como "CSS nivel 3", continúa en desarrollo desde 1998 y hasta el momento sólo se han publicado borradores.
La adopción de CSS por parte de los navegadores ha requerido un largo periodo de tiempo. El mismo año que se publicó CSS 1, Microsoft lanzaba su navegador Internet Explorer 3.0, que disponía de un soporte bastante reducido de CSS. El primer navegador con soporte completo de CSS 1 fue la versión para Mac de Internet Explorer 5, que se publicó en el año 2000. Por el momento, ningún navegador tiene soporte completo de CSS
Sintaxis
CSS tiene
una sintaxis muy sencilla, que usa unas cuantas
palabras clave tomadas del inglés para especificar los nombres de varias
propiedades de estilo.
Una hoja de
estilo se compone de una lista de reglas. Cada regla o conjunto de reglas
consiste en uno o más selectores y un bloque de declaración (o
«bloque de estilo») con los estilos a aplicar para los elementos del documento
que cumplan con el selector que les precede. Cada bloque de estilos se define
entre llaves, y está formado por una o varias declaraciones de estilo con el
formato propiedad:valor;.<!R0>
En el CSS,
los selectores marcarán qué elementos se verán afectados por cada bloque
de estilo que les siga, y pueden afectar a uno o varios elementos a la vez, en
función de su tipo, nombre (name), ID, clase
(class), posición dentro del Document Object Model,
etcétera.<!R1>
Abajo puede
verse un ejemplo de una parte de una hoja de estilos CSS:
selector [, selector2, ...] [:pseudo-class][::pseudo-element]
{
propiedad:
valor;
[propiedad2:
valor2;
...]
}
/* comentarios */
Uso
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
leía esa página con un navegador perdía
totalmente el control sobre la visualización del texto.
Cuando se
utiliza CSS, la etiqueta <h1> no debería proporcionar información
sobre cómo 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,
por ejemplo.
Por otro
lado, antes de que estuviera disponible CSS, la única forma de componer espacialmente
una página era el uso de tablas <table>. Aunque
esta era una técnica cómoda y versátil, ello conllevaba el uso de un elemento
con una semántica particular, y en el que la distribución
de los datos no se ajustaban al flujo de la información que se obtenía en la
vista desde los navegadores habituales, lo que redundaba en una merma
en la accesibilidad a la página por parte de otros navegadores (orientados a
personas con alguna deficiencia sensorial, o a ciertos dispositivos
electrónicos).
Mediante el
uso de CSS, se ha permitido eliminar el uso de tablas para el diseño, usándolas
solamente para la muestra de datos tabulados, si bien es cierto que obtener la
versatilidad que ofrecía el diseño con tablas, es algo más complicado si no se
usan.
Propiedad | Descripción | Valores |
contador | Contador | counter(nombre, estilo) |
familia-genérica | Familia genérica de fuente | cursive | fantasy | monospace | serif | sans-serif |
forma | Forma | rect(top, right, bottom, left) |
tamaño-absoluto | Tamaño absoluto de fuente | xx-small | x-small | medium | large | x-large | xx-large |
tamaño-relativo | Tamaño relativo de fuente | larger | smaller |
uri (para imagen de fondo o fuentes web) | Dirección absoluta o relativa | url("ruta_y_nombre_de_archivo") |
![]() |
||
Propiedad | Descripción | Valores |
font | propiedad compuesta | [ [ font-style || font-variant || font-weight ]? font-size [ / line-height ]? font-family ] | caption | icon | menu | message-box | small-caption | status-bar |
font-family | tipo de letra (fuente) | [ nombre-fuente | familia-genérica ] [, nombre-fuente | familia-genérica ]* |
font-size | tamaño | tamaño-absoluto | tamaño-relativo | distancia | porcentaje |
font-style | inclinación (cursiva) | normal | italic | oblique |
font-variant | versalitas | normal | small-caps |
font-weight | grosor del trazo (negrita) | normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 |
![]() |
||
Propiedad | Descripción | Valores |
color | color del texto | color |
direction | dirección del texto | ltr | rtl |
letter-spacing | espacio entre carácteres | normal | distancia |
line-height | espaciado entre líneas | normal | número | distancia | porcentaje |
text-align | alineación del texto | center | justify | left | right |
text-decoration | decoración del texto | none | blink | line-through | overline | underline |
text-indent | sangría de la primera línea | distancia | porcentaje |
text-transform | mayúsculas / minúsculas | none | capitalize | lowercase | uppercase |
unicode-bidi | dirección del texto | normal | embed | bidi-override |
vertical-align | alineación vertical | baseline | bottom | middle | sub | super | text-bottom | text-top | top | distancia | porcentaje |
white-space | espacios en blanco, saltos de línea y wrap | normal | nowrap | pre | pre-line(+) | pre-wrap(+) |
word-spacing | espacio entre palabras | normal | distancia |
![]() |
||
Propiedad | Descripción | Valores |
border | cuatro bordes simultáneamente | border-color || border-width || border-style |
border-top | borde superior | border-color || border-width || border-style |
border-right | borde derecho | border-color || border-width || border-style |
border-bottom | borde inferior | border-color || border-width || border-style |
border-left | borde izquierdo | border-color || border-width || border-style |
border-color | color de los bordes | [ color | transparent ] {1, 4} |
border-width | grosor de los bordes | [ medium | thick | thin | distancia ] {1, 4} |
border-style | estilos de los bordes | [ none | hidden | dashed | dotted | double | groove | inset | outset | ridge | solid ] {1, 4} |
border-top-color | color del borde superior | [ color | transparent ] {1, 4} |
border-top-width | grosor del borde superior | [ medium | thick | thin | distancia ] {1, 4} |
border-top-style | estilo del borde superior | [ none | hidden | dashed | dotted | double | groove | inset | outset | ridge | solid ] {1, 4} |
border-right-color | color del borde derecho | [ color | transparent ] {1, 4} |
border-right-width | grosor del borde derecho | [ medium | thick | thin | distancia ] {1, 4} |
border-right-style | estilo del borde derecho | [ none | hidden | dashed | dotted | double | groove | inset | outset | ridge | solid ] {1, 4} |
border-bottom-color | color del borde inferior | [ color | transparent ] {1, 4} |
border-bottom-width | grosor del borde inferior | [ medium | thick | thin | distancia ] {1, 4} |
border-bottom-style | estilo del borde inferior | [ none | hidden | dashed | dotted | double | groove | inset | outset | ridge | solid ] {1, 4} |
border-left-color | color del borde izquierdo | [ color | transparent ] {1, 4} |
border-left-width | grosor del borde izquierdo | [ medium | thick | thin | distancia ] {1, 4} |
border-left-style | estilo del borde izquierdo | [ none | hidden | dashed | dotted | double | groove | inset | outset | ridge | solid ] {1, 4} |