Qué es una hoja de estilo

Qué es una hoja de estilo

En las primeras versiones del HTML, el código fuente de una página web contenía tanto la información (el contenido) como la forma de representarse (el diseño o formato). Actualmente, estos dos aspectos se pueden separar. La página web (el documento html) sólo debe contener información, mientras que el formato se debe definir en las llamadas hojas de estilo (en inglés, CSS, Cascading Style Sheets, es decir, Hojas de Estilo en Cascada).


El funcionamiento de las hojas de estilo es el siguiente:

página web (ejemplo.html) ... <link rel="stylesheet" type="text/css" href="estilo.css" /> enlace a la hoja de estilo ... <p>Esto es un párrafo.</p> etiqueta html ... hoja de estilo (estilo.css) color: red; } p   { etiqueta html + resultado en el navegador Esto es un párrafo.

Las ventajas de utilizar hojas de estilo son muchas, sobre todo permiten hacer un diseño consistente y fácil de modificar. Si varias páginas web hacen referencia a la misma hoja de estilo, para cambiar la apariencia de todas las páginas es suficiente con hacer los cambios en un único lugar, en la hoja de estilo.

Sintaxis de las hojas de estilo

Una hoja de estilo es un fichero de texto plano (sin formato) en el que se define el aspecto de las etiquetas de una página web:

@charset "utf-8"; h1 { color: white; background-color: black; } p { color: red; background-color: lightyellow; }

Una hoja de estilo está formada por una o varias sentencias:

@charset "utf-8"; h1 { color: white; background-color: black; } p { color: red; background-color: lightyellow; } sentencias

Existen dos tipos de sentencias: las reglas-arroba y las reglas:

@charset "utf-8"; h1 { color: white; background-color: black; } p { color: red; background-color: lightyellow; } regla-arroba reglas

Las reglas-arroba empiezan por el símbolo de arroba (@) pegado a un identificador y terminan por un punto y coma (;):

@charset "utf-8"; regla-arroba identificador punto y coma

Algunas reglas-arroba (@charset, @import o @namespace) deben aparecer al principio de la hoja de estilo, pero el resto (@font-face, @media, etc.) pueden escribirse en cualquier lugar de la hoja de estilo.

Las reglas están formadas por un selector y un bloque de declaración. El bloque de declaración empieza y acaba con llaves { }.

h1   { color: white; background-color: black; } p   { color: red; background-color: lightyellow; } selectores llaves declaraciones

Cada declaración está formada por una o varias propiedades y sus valores correspondientes. Las propiedades van separadas entre sí por puntos y comas. El valor (o valores) van separados de las propiedades por dos puntos. En general, si una propiedad necesita varios valores, los valores van separados por espacios en blanco. En general, si una propiedad admite varios valores alternativos, los valores van separados por comas.

h1   { color :   white ; background-color :   black ; } propiedad dos puntos espacio en blanco valor punto y coma

Errores más comunes

Un error bastante habitual es escribir los caracteres < y > en la hoja de estilo.

Incorrecto
<p> {
  color: red;
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Estilos en cascada

El formato final de cualquier elemento depende de la combinación de todas las propiedades que afectan al elemento. La denominación de hojas de estilo en cascada hace referencia precisamente a este hecho. En la lección Estilos en cascada se detallan las reglas que emplean los navegadores.

Por ejemplo, una de esas reglas es que a un elemento le afectan todas las propiedades de los elementos en los que está incluido, como muestra el ejemplo siguiente, en el que el color de texto del párrafo <p> viene determinado por la propiedad establecida para el elemento <body>:

body {
  color: white;
}

p {
  background-color: lightcoral;
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Definir varios selectores simultáneamente

Se pueden definir varios selectores simultáneamente escribiendo los selectores separados por comas, como muestran los siguientes ejemplos:

p, address {
  color: red
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Lo que no es correcto es definir varias propiedades simultáneamente, como muestran los siguientes ejemplos:

Incorrecto
p {
  border-top, border-bottom: red 3px solid;
}
ERROR (no puede mostrarse el objeto)
Enlace externo
Correcto
p {
  border-top: red 3px solid;
  border-bottom: red 3px solid;
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Repetir selectores

Aunque no es incorrecto, no se aconseja repetir selectores, ya que distribuye la información en varios lugares de la hoja de estilo y eso dificulta la lectura y interpretación de la hoja de estilo a los lectores humanos.

Si se repiten las propiedades, el navegador aplica la propiedad que aparece en último lugar, como muestra el siguiente ejemplo:

Desaconsejado
p {
  color: red;
}

p {
  color: blue;
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Si no se repiten las propiedades, el navegador aplica todas las propiedades, como muestra el siguiente ejemplo:

Desaconsejado
p {
  color: white;
}

p {
  background-color: black;
}
ERROR (no puede mostrarse el objeto)
Enlace externo

Comentarios en las hojas de estilo

Una hoja de estilo puede contener comentarios. Los delimitadores del comentario son /* ... */ (como en el lenguaje de programación C). Los comentarios pueden extenderse varias líneas, como ilustra el siguiente ejemplo:

/* Autor: Bartolome Sintes Marco
   Fecha: 3 de octubre de 2014
*/
h1 {
  color: white ;                 /* texto blanco */
  background-color: black ;      /* sobre fondo negro */
}

Hoja de estilo básica

El ejemplo siguiente muestra una hoja de estilo básica, que se puede utilizar de plantilla para los ejercicios propuestos en este curso.

Esta plantilla Únicamente incluye la regla-arroba que indica que la hoja de estilo utiliza el juego de caracteres UTF-8, como se recomienda en estos apuntes.

@charset "utf-8";