Documente Academic
Documente Profesional
Documente Cultură
HTML y al CSS
Marc Llibre Giralt
PID_00168095
© FUOC • PID_00168095 Introducción al HTML y al CSS
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea éste eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
de los titulares del copyright.
© FUOC • PID_00168095 Introducción al HTML y al CSS
Índice
2. HTML..................................................................................................... 7
2.1. ¿Qué es HTML? ........................................................................... 7
2.2. World Wide Web ......................................................................... 8
2.3. Estructura de un documento HTML ........................................... 9
2.4. Elementos, etiquetas y atributos ................................................. 12
2.5. Apariencia de una página ........................................................... 16
2.6. Guía de elementos básicos HTML .............................................. 18
2.7. Caracteres especiales ................................................................... 20
2.8. Enlaces HTML ............................................................................. 22
2.9. URL .............................................................................................. 23
2.9.1. Enlaces relativos y absolutos ......................................... 24
2.9.2. Otro tipo de enlaces habituales ..................................... 27
2.10. Listas ............................................................................................ 28
2.11. Imágenes ...................................................................................... 29
2.12. Tablas ........................................................................................... 31
2.13. Maquetación de páginas más complejas .................................... 34
3. CSS.......................................................................................................... 37
3.1. Selectores ..................................................................................... 40
3.2. Unidades de medida ................................................................... 45
3.3. Colores ......................................................................................... 46
3.4. Box model ................................................................................... 47
3.4.1. Propiedades anchura y altura ........................................ 48
3.4.2. Propiedad margin (margen) .......................................... 48
3.4.3. Propiedad padding (relleno) .......................................... 51
3.4.4. Propiedad border (bordes) ............................................. 51
3.4.5. Tamaño final de un elemento ....................................... 53
3.4.6. Fondos ............................................................................ 54
3.5. Tipografía ..................................................................................... 57
3.6. Texto ............................................................................................ 60
3.7. Enlaces ......................................................................................... 62
3.8. Listas ............................................................................................ 65
3.9. Posicionamiento de los elementos HTML .................................. 68
3.9.1. Posicionamiento normal ............................................... 69
3.9.2. Posicionamiento float .................................................... 71
3.9.3. Posicionamiento absoluto ............................................. 74
3.10. Layout .......................................................................................... 77
© FUOC • PID_00168095 5 Introducción al HTML y al CSS
Internet está formado por millones de servidores web que almacenan una in-
finidad de páginas web. Para crear una página web, primero tenemos que crear
archivos escritos en HTML en nuestro ordenador o portátil y después ponerlos
en un servidor web. A este último paso también se lo denomina subir los ar-
chivos al servidor vía FTP, que es el protocolo que sirve para este fin. Veremos
más adelante cómo se realiza este paso.
Los códigos HTML y CSS de nuestras páginas web indican a los navegadores
cómo se debe mostrar la página. Si lo hemos hecho cumpliendo los estándares
web, veremos nuestras páginas correctamente a través de cualquiera de ellos
e incluso a través de PDA y dispositivos móviles.
¿Qué�hace�un�servidor�web?�¿Y�el�navegador�web?
© FUOC • PID_00168095 6 Introducción al HTML y al CSS
Los servidores web están funcionando las 24 horas del día en Internet, espe-
rando que algún navegador solicite cualquiera de las páginas web que almace-
na. Cuando el servidor recibe una solicitud de una página, la busca y la entrega
al navegador para que este haga su trabajo.
2. HTML
Como hemos visto, HTML es el código con el que se hacen las páginas web
y que los navegadores son capaces de interpretar para que nosotros podamos
visualizarlas correctamente.
• Etiqueta de cierre: carácter <, seguido del carácter /, seguido del nombre
de�la�etiqueta�(sin espacios en blanco) y terminado con el carácter >
Se puede editar un fichero HTML con cualquier editor de texto siempre y cuan-
do se tenga en cuenta que deberemos guardar el archivo con una de las dos
extensiones anteriores. Para estas prácticas usaremos el Bloc de Notas para los
usuarios de Windows, y el TextEdit para los usuarios de Mac.
© FUOC • PID_00168095 8 Introducción al HTML y al CSS
Algunas de estas recomendaciones que indica el W3C para HTML abarcan des-
de la obligatoriedad de cerrar etiquetas, al uso de minúsculas para programar
HTML.
Además, hay navegadores aún más permisivos, de modo que si hay etiquetas
sin su correspondiente cierre, intentan deducir dónde debería ir ese cierre y
muestran la página más o menos de forma adecuada.
Existen dos variantes principales de la última versión del lenguaje HTML de-
finido por el W3C: Transitional y Strict. En la variante Transitional, se pueden
utilizar todas las etiquetas y atributos, pero en la variante Strict, estamos limi-
tados a aquellos que no tengan nada que ver con la apariencia de la página.
Esta apariencia se debe definir en una hoja de estilos CSS, de modo que en la
variante Strict no podemos utilizar la etiqueta <font> (que define característi-
cas del texto como color o tamaño) o <center> (alinea la página en el centro),
ni atributos como bgcolor (color de fondo de la página).
Por lo tanto, deberemos poner en nuestro archivo HTML, en el inicio del do-
cumento incluso antes de la etiqueta <HTML>, lo siguiente:
<html xmlns="http://www.w3.org/1999/xhtml">
Hay que tener en cuenta que esta forma de estructurar la creación de un sitio
web facilita mucho el trabajo, nos evitará tener que estar buscando código para
cambiar el aspecto de nuestras páginas web, podremos centralizar el formato
de la web en hojas de estilo CSS.
<html>
<head>
<title>El lenguaje HTML</title>
</head>
<body>
<p>El lenguaje HTML es <strong>tan sencillo</strong> que prácticamente se entiende sin estudiar
© FUOC • PID_00168095 10 Introducción al HTML y al CSS
<p>Los colores, el tipo de letra, el tamaño, etc. se definen a través de estilos CSS,
separándolos completamente de la estructura HTML de una página.</p>
</body>
</html>
Vamos a realizar ahora este primer ejemplo. Estos son los pasos que tenemos
que seguir:
2) Escribimos el código HTML del ejemplo. Hay que tener cuidado de no co-
meter errores tipográficos, y de cerrar todas las etiquetas HTML.
Una vez creado y guardado el archivo HTML ya podemos abrirlo con nuestro
navegador web y visualizaremos la página web.
Etiquetas�HTML
Como hemos visto anteriormente, las etiquetas HTML que escribimos en nues-
tra página se encierran en los caracteres <�y�>.
Elemento�HTML�=�etiqueta�apertura�+�contenido�+�etiqueta�cierre
Atributos�de�las�etiquetas
Otros�ejemplos�de�atributos�de�elementos�HTML:
© FUOC • PID_00168095 13 Introducción al HTML y al CSS
<a href="pagina.html"> : El atributo href nos dice el destino del vínculo que
definimos con la etiqueta HTML <a>
Elementos�HTML
Por otra parte, el lenguaje HTML clasifica a todos los elementos en dos grupos:
elementos en línea (inline elements en inglés) y elementos de bloque (block
elements en inglés).
© FUOC • PID_00168095 14 Introducción al HTML y al CSS
<html>
<head>
<title>Ejemplo de elementos en línea y elementos de bloque</title>
</head>
<body>
<h1>Los encabezados son elementos de bloque</h1>
<p>Los párrafos son elementos de bloque.</p>
<a href="http://www.google.com">Los enlaces son elementos en línea</a>
<p>Dentro de un párrafo, <a href="http://www.google.com">los enlaces</a> siguen siendo elementos
en línea.</p>
</body>
</html>
Los encabezados (h1, h2, h3, h4, h5, h6) son elementos de bloque, y el nave-
gador reserva todo el espacio hasta el final de línea, haciendo un salto de línea
al final de este.
El primer párrafo contiene un texto corto que sólo ocupa la mitad de la an-
chura de la ventana del navegador. De todas formas, el navegador también
reserva para este
elemento HTML todo el espacio hasta el final de esa línea, por lo que resulta
evidente que los elementos párrafo <p> también son elementos de bloque.
El primer enlace del ejemplo anterior también tiene un texto corto que ocupa
solamente la mitad de la anchura de la ventana del navegador. En este caso, el
navegador sólo reserva para el enlace el sitio necesario para mostrar sus con-
tenidos. Si se añade otro enlace en esa misma línea, se mostraría a continua-
ción del primer enlace, sin salto de línea. Por lo tanto, los elementos <a> son
elementos en línea.
Por último, el segundo párrafo sigue ocupando todo el espacio disponible has-
ta el final de línea (por ser un elemento de bloque) y el enlace que se encuentra
dentro del párrafo sólo ocupa el sitio necesario para mostrar sus contenidos
(por ser un elemento en línea).
Los elementos en línea definidos por HTML son: a, abbr, acronym, b, basefont,
bdo, big, br, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp,
select, small, span, strike, strong, sub, sup, textarea, tt, u, var.
Los elementos de bloque definidos por HTML son: address, blockquote, center,
dir, div, dl, fieldset, form, h1, h2, h3, h4, h5, h6, hr, isindex, menu, noframes,
nos-cript, ol, p, pre, table, ul.
Los siguientes elementos también se considera que son de bloque: dd, dt, fra-
me-set, li, tbody,td, tfoot, th, thead, tr.
Los siguientes elementos pueden ser en línea y de bloque según las circuns-
tancias: button, del, iframe, ins, map, object, script.
Comentarios�en�HTML
Como hemos visto, el lenguaje HTML nos da una forma para describir la es-
tructura de contenidos de la página. Cuando el navegador muestra nuestro
archivo HTML, utiliza su propio estilo por defecto para presentarlo y mostrar-
lo en la pantalla. Obviamente, esta apariencia que nos da el navegador por
defecto no será de nuestro agrado y lo queremos personalizar y aplicar un di-
seño nuestro.
Aquí es cuando entran en escena los CSS. CSS nos da una forma para describir
cómo queremos presentar y mostrar nuestro contenido. CSS es la abreviación
de Cascading Style Sheet. Más adelante veremos en detalle los estilos CSS pe-
ro vamos a ver en un ejemplo cómo podemos cambiar el aspecto de nuestro
ejemplo anterior.
El siguiente código lo tenemos que añadir dentro de las etiquetas <head> </
head> (que recordamos que nos sirven para definir información sobre nuestra
página), y normalmente se sitúa antes de cerrar la etiqueta HEAD.
<head>
<title>El lenguaje HTML</title>
<style type="text/css">
body {
background-color: #000000;
color: #FFFFFF;
margin-left: 20%;
margin-right: 20%;
border: 1px dotted gray;
padding: 10px 10px 10px 10px;
font-family: sans-serif;
}</style>
© FUOC • PID_00168095 17 Introducción al HTML y al CSS
</head>
Dentro de las etiquetas <style> </style> se definen los estilos de los elementos
HTML que queramos para darle una apariencia. Aquí es donde se pone la sin-
taxis CSS para definir los estilos, que es algo diferente al lenguaje HTML.
Como todo este código y sintaxis CSS está en la cabecera <HEAD> </HEAD>,
no se visualiza en sí directamente, sino que se está aplicando en los elementos
que se definen. Recordamos que lo que se muestra de una página web es lo
que se define dentro de las etiquetas <BODY> </BODY>.
Más adelante entraremos en profundidad con los CSS, y veremos cómo darle
la apariencia que nosotros queramos a nuestra página web.
Veremos también que los CSS se pueden definir en la misma página HTML,
o bien se puede definir todo en un archivo externo .css para que todas las
páginas de nuestro sitio web puedan usar los mismos estilos.
Haced las pruebas que queráis con cada elemento con cualquiera de los ejem-
plos vistos anteriormente, o bien con un archivo nuevo con toda la estructura
de un archivo HTML. Si añadís cualquiera de los siguientes elementos HTML
con sus etiquetas de inicio y de cierre, y su contenido, debéis guardar los cam-
bios, y abrir o actualizar la página con el navegador si ya la tenéis abierta.
<p> </p> Párrafo. Los párrafos creados con HTML son elementos de
bloque, por lo que siempre ocupan toda la anchura de la ven-
tana del navegador. Además, no tienen atributos específicos,
pero sí que se les pueden asignar los atributos comunes de
HTML básicos, de internacionalización y de eventos.
<em> </em> Énfasis. Realza la importancia del texto que encierra. La eti-
queta <em> marca un texto indicando que su importancia es
mayor que la del resto del texto. Por defecto, los navegadores
muestran los elementos <em> en cursiva para hacer evidente
su importancia. Mediante CSS podremos cambiar el aspecto
de esta etiqueta a nuestro gusto. Antes para hacer una cursi-
va se usaban las etiquetas <i> </i>. Aunque se permite su uso,
ahora se aconseja usar <em> </em>, ya que la cursiva la hare-
mos en CSS. Es un elemento en línea.
© FUOC • PID_00168095 19 Introducción al HTML y al CSS
<blockquote> </blockquote> Citas. Se emplea para indicar que el texto que encierra es una
cita textual de otro texto externo. Para indicar de forma cla-
ra que el texto es una cita externa, los navegadores muestran
por defecto el texto del elemento <blockquote> con un gran
margen en la parte izquierda. Es un elemento de bloque.
<abbr> </abbr> Abreviaturas. Se emplea para marcar las abreviaturas del tex-
to y proporcionar el significado de esas abreviaturas. Es un
elemento en línea.
Atributo específico:
title = "texto" - Indica el significado completo de la abreviatu-
ra
Ejemplo: <abbr title="Barcelona">Barna</ abbr >. El texto que
define el atributo title aparecerá al mantener el ratón quieto
sobre el texto Barna.
• Los caracteres que utiliza HTML para definir sus etiquetas (<, > y ") no se
pueden utilizar libremente.
• Los caracteres propios de los idiomas que no son el inglés (ñ, á, ç, ¿, ¡, etc.)
pueden ser problemáticos dependiendo de la codificación de caracteres
utilizada.
Entidad Carácter
< <
> >
& &
" "
' '
Por otra parte, los caracteres propios de los idiomas diferentes al inglés también
pueden ser problemáticos. El motivo es que desde que se crea una página web
hasta que llega al navegador del usuario, intervienen numerosos procesos que
pueden afectar a la correcta visualización de los acentos:
• El diseñador crea la página web con su editor HTML (por ejemplo, Dream-
weaver).
La palabra párrafo del ejemplo anterior incluye la letra á. Si el editor HTML del
diseñador utiliza la codificación UTF-8, el entorno de desarrollo del programa-
dor también utiliza UTF-8, el servidor web sirve las páginas con esa codifica-
ción y el navegador del usuario es capaz de visualizar las páginas con formato
UTF-8, el texto anterior se verá correctamente en el navegador del usuario.
Sin embargo, muchas veces no es posible que todos los procesos involucrados
utilicen la misma codificación de caracteres. Por limitaciones técnicas o por
decisiones de los diseñadores y programadores, los textos pueden pasar de co-
dificación UTF-8 a codificación ISO-8859 en cualquier momento. Si se produ-
ce este cambio sin realizar una conversión correcta, el navegador del usuario
mostrará caracteres extraños en todos los acentos y en todas las letras como
la ñ.
codificación�ISO-8859
codificación�UTF-8
La solución más sencilla para asegurar que todos estos caracteres potencial-
mente problemáticos se van a visualizar correctamente en el navegador del
usuario consiste en sustituir cada carácter problemático por su entidad HTML:
Entidad Carácter
ñ ñ
Ñ Ñ
á á
é é
í í
ó ó
ú ú
© FUOC • PID_00168095 22 Introducción al HTML y al CSS
Entidad Carácter
Á Á
É É
Í Í
Ó Ó
Ú Ú
€ €
La incorporación del hipertexto fue una de las claves del éxito del lenguaje
HTML, ya que permitió crear documentos interactivos que proporcionan in-
formación adicional cuando se solicita. El elemento principal del hipertexto
es el "hiperenlace", también llamado "enlace web" o simplemente "enlace".
Los enlaces se utilizan para establecer relaciones entre dos recursos. Aunque la
mayoría de enlaces relacionan páginas web, también es posible enlazar otros
recursos como imágenes, documentos y archivos.
Aquellos elementos (texto, imágenes, etc.) sobre los que se desee insertar un
enlace han de encontrarse entre las etiquetas de ancla <a> y </a>.
© FUOC • PID_00168095 23 Introducción al HTML y al CSS
Ejemplo
Visita Google
Código HTML
Probamos este ejemplo escribiendo este pequeño código dentro de las etiquetas HTML
y veremos cómo funciona el enlace.
<a> </a> Enlace. Se emplea para enlazar todo tipo de recursos. Es un elemento en línea.
Atributo específico:
href = "url" - Indica la URL del recurso que se quiere enlazar
target = "_blank" - Indica que la página con la que se quiere enlazar se debe
abrir en una ventana nueva del navegador
2.9. URL
El acrónimo URL (del inglés uniform resource locator) hace referencia al identi-
ficador único de cada recurso disponible en Internet. Las URL son esenciales
para crear los enlaces, pero también se utilizan en otros elementos HTML, co-
mo las imágenes y los formularios.
Las URL permiten que cada página HTML publicada en Internet tenga un nom-
bre único que permita diferenciarla de las demás. De esta forma es posible crear
enlaces que apunten de forma inequívoca a una determinada página.
La URL de las páginas es imprescindible para crear los enlaces, ya que permite
distinguir una página de otra.
http://www.mipagina.es/carpeta1/archivo.html
Por tanto, las URL no sólo identifican de forma única cada recurso de Internet,
sino que también proporcionan a los navegadores la información necesaria
para poder llegar hasta ese recurso.
Las URL absolutas incluyen todas las partes de la URL (protocolo, servidor y
ruta), mientras que las URL relativas prescinden de algunas partes de la URL
para hacerlas más cortas.
Aunque las URL relativas pueden ser difíciles de entender para los que comien-
zan con HTML, son tan útiles que todos los sitios web las utilizan.
Una URL relativa es una versión abreviada de una URL absoluta. Su objetivo
es eliminar todas las partes de la URL absoluta que se pueden adivinar a partir
de la información de contexto de la página web. En otras palabras, las URL
relativas aprovechan la "inteligencia" de los navegadores para crear URL in-
completas que los navegadores pueden completar deduciendo la información
que falta.
1)�Página�origen�y�destino�están�en�el�mismo�directorio
http://www.mipagina.com/carpeta1/archivo1.html
http://www.mipagina.com/carpeta1/archivo2.html
2)�La�página�destino�del�enlace�se�encuentra�en�una�carpeta�superior
Origen: http://www.mipagina.com/carpeta1/carpeta2/archivo1.html
Destino: http://www.mipagina.com/ carpeta1/archivo2.html
Origen: http://www.mipagina.com/carpeta1/carpeta2/archivo1.html
Destino: http://www.mipagina.com/ archivo2.html
Origen: http://www.mipagina.com/carpeta1/carpeta2/archivo1.html
Destino: http://www.mipagina.com/carpeta3/archivo2.html
3)�La�página�destino�del�enlace�se�encuentra�en�una�carpeta�inferior
Origen: http://www.mipagina.com/carpeta1/carpeta2/archivo1.html
Destino: http://www.mipagina.com/carpeta1/carpeta2/carpe-
ta3/archivo2.html
4)�La�página�destino�del�enlace�se�encuentra�en�direcciones�muy�diferentes
respecto�a�la�página�origen
Ya hemos visto cómo se enlaza un recurso web con otro, y recordamos que
un recurso web puede ser tanto un archivo html, como imágenes (archi-
vos .jpg, .gif, ...) archivos pdf, archivo .doc, etc.
1)�Enlace�a�la�home�del�sitio�web
Los dos funcionan igual de bien. Al pulsar el enlace anterior desde cualquier
página web, se vuelve directamente a la página de inicio, home o página prin-
cipal del sitio web.
2)�Enlace�a�un�correo�electrónico
3)�Enlace�con�un�archivo�CSS
Recordamos que los archivos CSS nos darán información de la apariencia, co-
lores, etc. de la página HTML.
Se usa un elemento HTML diferente al <a> </a>. El elemento que se usa para
este tipo de enlace es <link> y se debe poner dentro de la cabecera HEAD (entre
las etiquetas <head> </head>.
2.10. Listas
Las listas sirven para agrupar diferentes palabras o frases mediante un listado.
Uno de los usos más habituales de las lista es la creación de un menú. Más
adelante veremos que mediante CSS podemos dar a una lista y a los enlaces
que la forman una apariencia de menú.
El lenguaje HTML define tres tipos diferentes de listas para agrupar los ele-
mentos:
• Listas no ordenadas
• Listas ordenadas
• Listas de definición
1)�Listas�no�ordenadas
<li> </li> Elemento�de�una�lista. Se emplea para definir los elementos de las listas (or-
denadas y no ordenadas). Es un elemento de bloque.
© FUOC • PID_00168095 29 Introducción al HTML y al CSS
Ejemplo
2)�Listas�ordenadas
Son listas de palabras o frases marcadas con números o letras. La lista ordenada
se define con la etiqueta <ol>. Los elementos de la lista se definen mediante
la etiqueta <li>, la misma que se utiliza en las listas no ordenadas.
Ejemplo:
3)�Listas�de�definición
2.11. Imágenes
Para insertar una imagen en una página web es necesario almacenarla como
un archivo independiente del documento HTML.
© FUOC • PID_00168095 30 Introducción al HTML y al CSS
Las imágenes son un recurso más de todo el sitio web, son archivos indepen-
dientes de los archivos HTML que forman y construyen las páginas. Por lo
tanto, deberemos tener muy claro la estructura de archivos de todo nuestro
sitio web, y en este caso, dónde tenemos las imágenes guardadas para decir al
navegador las rutas hacia ellas.
Los tipos de archivos más admitidos en entorno web son JPEG y GIF. Los ar-
chivos JPEG suelen utilizarse para representar fotografías, mientras que los de
tipo GIF, para iconos e imágenes que no requieran de un número elevado de
colores.
Los nombres de los archivos que contienen imágenes, igual que los de los
documentos HTML, son sensibles a mayúsculas/minúsculas y por lo tanto, .gif
no es lo mismo que .GIF, con lo que al referirnos al archivo debemos escribir
su nombre y extensión respetando mayúsculas y minúsculas.
<img /> Imagen. Se emplea para enlazar todo tipo de recursos. Es un elemento en lí-
nea.
Atributo específico:
src = "url" - Indica la URL de la imagen
alt = "texto" – Descripción corta de la imagen
height = "píxeles" – Altura de la imagen
widht = "píxeles" – Anchura de la imagen
Código HTML
El atributo alt nos permite incluir una descripción en texto de la imagen. Será
utilizada por los navegadores cuando no puedan mostrar la imagen: navega-
dores solo texto, com el lynx, o navegadores que tengan deshabilitada la op-
ción de abrir gráficos e imágenes... o navegadores que en ese momento con-
creto no puedan acceder a la imagen. Es también útil para los lectores de per-
sonas con discapacidades visuales.
2.12. Tablas
Desde sus primeras versiones, HTML incluyó el soporte para crear tablas de
datos en las páginas web. Además de ser sencillo, el modelo definido por HTML
es muy flexible y bastante completo.
Las tablas en HTML utilizan los mismos conceptos de filas, columnas, cabece-
ras y títulos que los que se utilizan en cualquier otro entorno de publicación
de documentos.
A pesar de que las tablas HTML son fáciles de comprender y utilizar, son uno
de los elementos más polémicos de HTML. El problema de las tablas es que no
siempre se utilizan adecuadamente. Aunque parezca obvio, las tablas se deben
utilizar para mostrar información tabular.
Hasta hace unos años, las tablas también se utilizaban para definir la estructura
de las páginas web. La cabecera de la página era una fila de una gran tabla, el
pie de página era otra fila de esta tabla y la zona de contenidos estaba formada
por varias columnas dentro de esa gran tabla.
Aunque algunos malos diseñadores siguen utilizando hoy en día las tablas
para definir la estructura completa de las páginas web, se trata de una técnica
obsoleta y nada recomendable.
Ejemplo:
La etiqueta <table> encierra todas las filas y columnas de la tabla. Las etiquetas
<tr> (del inglés table row) definen cada fila de la tabla y encierran todas las
columnas. Por último, la etiqueta <td> (del inglés table data cell) define cada
una de las columnas de las filas, aunque realmente HTML no define columnas
sino celdas de datos.
Al definir una tabla, se debe pensar en primer lugar en las filas que la forman
y a continuación en las columnas. El motivo es que HTML procesa primero
las filas y por eso las etiquetas <tr> aparecen antes que las etiquetas <td>.
<table> </ table > Tabla. Se emplea para definir tablas de datos. Elemento de bloque.
<tr> </tr> Fila�de�tabla. Se emplea para definir cada fila de las tablas de datos.
Es un elemento de bloque.
<td> </td> Celda�de�tabla. Se emplea para definir cada una de las celdas que
forman las filas de una tabla, es decir, las columnas de la tabla. Es un
elemento tipo bloque.
Atributos específicos más importantes
scope = "col, row, colgroup, rowgroup" - Indica las celdas para las
que esta celda será su cabecera. Ej: scope="col" indica que esta celda
es la cabecera de todas las demás celdas que están en la misma co-
lumna.
colspan = "numero" - Número de columnas que ocupa esta celda.
rowspan = "numero" - Número de filas que ocupa esta celda.
<th> </th> Celda�cabecera�de�tabla. Se emplea para definir las celdas que son cabecera
de una fila o de una columna de la tabla. Elemento de bloque.
Mismos atributos que <td>.
Los atributos de la etiqueta <th> son idénticos que los atributos definidos para
la etiqueta <td>.
En este caso, el atributo más utilizado es scope, que permite indicar si la celda
es cabecera de la fila o de la columna (<th scope="row"> y <th scope="col">
respectivamente).
Por otra parte, HTML define la etiqueta <caption> para establecer la leyenda
o título de una tabla. La etiqueta debe colocarse inmediatamente después de
la etiqueta <table> y cada tabla sólo puede incluir una etiqueta <caption>.
Ejemplo:
Es importante remarcar que atributos que se ven en estos ejemplos, como align
o border, están en desuso porque los estándares recomiendan que se use me-
diante CSS, ya que hacen referencia a temas de visualización.
© FUOC • PID_00168095 34 Introducción al HTML y al CSS
Hasta ahora hemos estado viendo un gran número de elementos HTML que
nos sirven para marcar y estructurar nuestras páginas (tablas, listas, párrafos,
imágenes,...). Aunque con estos elementos ya estamos creando páginas web,
no podemos hacer maquetaciones complejas.
Para agrupar los elementos que forman cada zona o división de la página se
utiliza la etiqueta <div>:
Las páginas web complejas que están bien diseñadas utilizan decenas de eti-
quetas <div>. Con mucha diferencia, los atributos más utilizados con esta eti-
queta son id (para identificar la capa de forma única) y class (para aplicar a
la capa estilos CSS).
• menu (menu) se emplea para agrupar todos los elementos del menú lateral
de navegación de la página.
• pie (footer) que incluye todos los elementos invariantes de la parte inferior
de la página (aviso de copyright, política de privacidad, términos de uso,
etc.).
• lateral (sidebar) se emplea para agrupar los elementos de las columnas la-
terales y secundarias de la página.
© FUOC • PID_00168095 36 Introducción al HTML y al CSS
3. CSS
Si el lenguaje HTML se utiliza para marcar los contenidos, es decir, para desig-
nar lo que es un párrafo, lo que es un titular o lo que es una lista de elementos,
el lenguaje CSS se utiliza para definir el aspecto de todos los contenidos, es
decir, el color, tamaño y tipo de letra de los párrafos de texto, la separación
entre titulares y párrafos, la tabulación con la que se muestran los elementos
de una lista, etc.
Cómo�incluir�CSS�en�un�documento�HTML
1)�Incluir�CSS�en�el�mismo�documento�HTML
<style type="text/css">
p { color: black; font-family: Verdana; }
</style>
Este código lo incluimos dentro del HEAD entre las etiquetas <head> y </
head>.
2)�Incluir�CSS�en�un�archivo�externo
Este código lo incluimos dentro del HEAD entre las etiquetas <head> y </
head>.
De las tres formas de aplicar CSS a los documentos HTML, esta es la más utili-
zada (sobre todo mediante la etiqueta <link>). La principal ventaja es que se
puede incluir un mismo archivo CSS en multitud de páginas HTML, por lo
que se garantiza la aplicación homogénea de los mismos estilos a todos los
documentos que forman un sitio web.
3)�Incluir�CSS�en�los�elementos
Esta forma nos permite incluir los CSS directamente en los elementos HTML.
Solamente se utiliza en determinadas situaciones en las que se debe incluir un
estilo muy específico para un solo elemento concreto.
Definición�de�una�regla�CSS
h1 { color: black; }
CSS define una serie de términos que permiten describir cada una de las partes
que componen los estilos CSS. El siguiente esquema muestra las partes que
forman un estilo CSS muy básico:
• Regla: cada uno de los estilos que componen una hoja de estilos CSS. Cada
regla está compuesta de una parte de "selectores", un símbolo de "llave
de apertura" ({), otra parte denominada "declaraciones" y por último, un
símbolo de "llave de cierre" (}).
Un archivo CSS puede contener infinitas reglas CSS, cada regla puede contener
infinitos selectores y cada declaración puede estar formada por un número
infinito de pares propiedad/valor.
Agrupación�de�reglas
Una de las características más importantes de los estilos definidos con CSS es
que se pueden agrupar las diferentes reglas que se aplican a un mismo selector.
h1 {color: red;}
h1 {font-size: 2em;}
h1 {font-family: Verdana;}
h1 {
color: red;
font-size: 2em;
font-family: Verdana;
Comentarios�en�archivos�CSS
/* Esto es un comentario */
3.1. Selectores
La declaración se utiliza para decir "qué hay que hacer" y el selector es lo que
dice "a quién hay que hacérselo". La declaración de una regla sencilla puede
indicar que el color de la letra debe ser rojo, y el selector de esa regla sencilla
puede indicar que los elementos a los que se aplica ese estilo son todos los
párrafos de la página.
Aunque CSS 2.1 define una docena de tipos de selectores, la mayoría de las
páginas web se pueden definir utilizando solamente los 5 selectores básicos.
Además, Internet Explorer, el navegador web que más utilizan los usuarios,
no soporta los selectores avanzados, por lo que es casi obligatorio utilizar so-
lamente los selectores básicos.
Selectores�básicos
1)�Selector�universal
* {
margin: 0;
padding: 0;
}
2)�Selector�de�tipo�o�etiqueta
Selecciona todos los elementos de la página cuya etiqueta HTML coincide con
el valor del selector. El siguiente ejemplo selecciona todos los párrafos de la
página:
p {
...
}
h1 {
color: red;
}
h1 {
color: blue;
}
© FUOC • PID_00168095 42 Introducción al HTML y al CSS
p {
color: black;
}
CSS permite aplicar directamente los mismos estilos a varios selectores de for-
ma simultánea.
Para ello, se indican todos los selectores diferentes separados por una coma
(,). Así nos podemos ahorrar el hecho de volver a escribir la misma regla CSS
a otro elemento HTML.
La siguiente regla CSS muestra cómo aplicamos un mismo estilo a tres selec-
tores diferentes:
h1, h2, h3 {
color: #8A8E27;
font-weight: normal;
font-family: Arial, Helvetica, sans-serif;
}
h1, h2, h3 {
color: #8A8E27;
font-weight: normal;
font-family: Arial, Helvetica, sans-serif;
}
h1 { font-size: 2em; }
h2 { font-size: 1.5em; }
h3 { font-size: 1.2em; }
3)�Selector�descendente
<p>
© FUOC • PID_00168095 43 Introducción al HTML y al CSS
...
<span>texto1</span>
...
<a href="">...<span>texto2</span></a>
...
</p>
Aplicando la regla CSS anterior, tanto texto1 como texto2 se verán en negrita.
La razón es que con el selector descendente, un elemento no tiene que ser
"hijo directo" de otro, sino que la única condición es que esté dentro de ese
elemento, sin importar lo profundo que se encuentre.
4)�Selector�de�clase
Los selectores de clase son los selectores más utilizados junto con los selecto-
res de ID (que se verán a continuación). Utilizando este selector, se pueden
seleccionar todos los elementos de la página cuyo atributo class coincida con
el selector.
El selector está formado por un signo de punto (.) y el nombre del atributo
class que se quiere seleccionar. Por tanto, en el siguiente ejemplo, solamente
el segundo párrafo se mostrará de color rojo:
<p>Primer párrafo</p>
<p class="especial">Segundo párrafo</p>
<p>Tercer párrafo</p>
Combinando este selector con los anteriores, se puede restringir el alcance del
selector. El siguiente ejemplo aplica la regla CSS solamente a los elementos de
tipo <p> que tengan un atributo class igual al indicado:
p.aviso {
padding: 0.5em;
border: 1px solid #98be10;
background: #f6feda;
}
5)�Selector�de�ID
<p>Primer párrafo</p>
<p id="especial">Segundo párrafo</p>
<p>Tercer párrafo</p>
La principal diferencia entre este selector y el selector de clase tiene que ver con
HTML y no con CSS. Como se sabe, en una misma página, el valor del atributo
id debe ser único, de forma que dos elementos diferentes no pueden tener el
mismo valor de id. Sin embargo, el atributo class no es obligatorio que sea
único, de forma que muchos elementos HTML diferentes pueden compartir el
mismo valor para su atributo class.
Por tanto, cuando se quiere aplicar un estilo concreto a un solo elemento es-
pecífico, se utiliza el selector de id. Si se quiere aplicar un estilo concreto a
varios elementos diferentes, se utiliza el selector de clase.
Al igual que los selectores de clase, en este caso también se puede restringir el
alcance del selector mediante la combinación con otros selectores. El siguiente
ejemplo aplica la regla CSS solamente a los elementos de tipo <p> que tengan
un atributo id igual al indicado:
p#aviso {
padding: 0.5em;
border: 1px solid #98be10;
background: #f6feda;
© FUOC • PID_00168095 45 Introducción al HTML y al CSS
CSS divide las unidades de medida en dos grupos: absolutas y relativas. Las
medidas relativas definen su longitud en relación con otra medida. Las unida-
des absolutas establecen de forma completa el valor de una medida.
Unidades relativas:
Son más flexibles que las unidades absolutas porque se adaptan más fácilmente
a los diferentes medios.
• em, relativa respecto del tamaño de letra del sistema del usuario
• ex, relativa respecto del tamaño de la letra x del sistema del usuario
3.3. Colores
Palabras�clave
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, pur-
ple, red, silver, teal, white, yellow
Ejemplo:
h1 { color: yellow;}
RGB�hexadecimal
p { color: #4762B0; }
El diseño de cualquier página web está compuesto por cajas rectangulares. CSS
permite definir la altura y anchura de cada caja, el margen que se dejará entre
cada caja y el espacio de relleno interior que mostrará cada caja.
Ejemplo
Margin-top Margen�superior,�margen�derecho,�margen�inferior,�Margen�izquierdo.
Margin-right Establece cada uno de los márgenes horizontales y verticales de un elemen-
Margin-bottom to.
Margin-left
© FUOC • PID_00168095 49 Introducción al HTML y al CSS
Además de las cuatro propiedades que controlan los márgenes del elemento,
CSS define una propiedad que permite definir los cuatro márgenes de forma
directa empleando una única propiedad. Este tipo de propiedades resumidas
se denominan propiedades de tipo shorthand y CSS define varias propiedades
de este tipo, como se verá más adelante.
Estos dos ejemplos son exactamente iguales. Esta regla se aplicaría a cualquier
imagen que esté dentro de un div.
CSS define 4 propiedades para controlar cada uno de los espacios de relleno
horizontales y verticales de un elemento.
Padding-top Relleno�superior,�relleno�derecho,�relleno�inferior,�relleno�izquierdo.
Padding-right Establece cada uno de los rellenos horizontales y verticales de un elemen-
Padding-bottom to.
Padding-left
Como sucede con la propiedad margin, CSS también define una propiedad de
tipo shorthand para establecer los 4 rellenos de un elemento de forma directa.
Ejemplo: probamos este código para ver las diferencias entre margin y�pad-
ding:
CSS permite definir el aspecto de cada uno de los 4 bordes horizontales y ver-
ticales de los elementos. Para cada borde se puede establecer su anchura, su
color y su estilo.
Border-top-width Anchura�del�borde�superior,�anchura�del�borde�derecho,�anchu-
Border-right-width ra�del�borde�inferior,�anchura�del�borde�izquierdo. Establece la
Border-bottom-width anchura de cada uno de los cuatro bordes de los elementos.
Border-left-width
El valor de las propiedades que controlan la anchura de los bordes puede estar
formado por una medida (absoluta o relativa y en cualquier unidad de medida
de las definidas) o por una palabra clave (seleccionada entre las palabras thin,
medium y thick).
Para�definir�el�color�del�borde:
Border-top-color Color�del�borde�superior,�color�del�borde�derecho,�color�del�bor-
Border-right-color de�inferior,�color�del�borde�izquierdo. Establece el color de cada
Border-bottom-color uno de los cuatro bordes de los elementos.
Border-left- color
Para�definir�el�estilo�del�borde:
Border-top-style Estilo�del�borde�superior,�estilo�del�borde�derecho,�estilo�del
Border-right-style borde�inferior,�estilo�del�borde�izquierdo. Establece el estilo de
Border-bottom-style cada uno de los cuatro bordes de los elementos.
Border-left-style
Los estilos de los bordes pueden ser: none, hidden, dotted, dashed, solid, dou-
ble, groove, ridge, inset, outset.
Los bordes más utilizados en los diseños habituales son solid y dashed, segui-
dos de double y dotted.
Ejemplo: probamos este código para ver las diferentes propiedades del border:
© FUOC • PID_00168095 53 Introducción al HTML y al CSS
También podemos agrupar las diferentes propiedades CSS del borde en una
sola línea. De esta forma podemos definir el mismo borde del ejemplo anterior
de la siguiente manera:
Todas las propiedades que definen el BOX MODEL de un elemento HTML nos
dirán finalmente el tamaño de este elemento. Es decir, el margen, el relleno
y los bordes establecidos a un elemento determinan la anchura (y altura) fi-
nal del elemento. En el siguiente ejemplo se muestran los estilos CSS de un
elemento:
Así, la anchura (y altura) establecida con CSS siempre hace referencia a la an-
chura del contenido. La anchura (y altura) total del elemento debe tener en
cuenta además los valores del resto de elementos del box model.
3.4.6. Fondos
El último elemento que forma el box model es el fondo de la caja del elemen-
to. El fondo puede ser un color simple o una imagen. El fondo solamente se
visualiza en el área ocupada por el contenido y su relleno, ya que el color de los
bordes se controla directamente desde los bordes y las zonas de los márgenes
siempre son transparentes.
Para�definir�el�color�del�fondo:
Para�definir�una�imagen�de�fondo:
Background-image Imagen�de�fondo. Establece una imagen como fondo para los elemen-
tos.
Las imágenes de fondo se indican a través de su URL, que puede ser absoluta o
relativa. Suele ser recomendable crear una carpeta de imágenes que se encuen-
tre en el mismo nivel que los archivos CSS y que almacene todas las imágenes
utilizadas en el diseño de la página.
© FUOC • PID_00168095 55 Introducción al HTML y al CSS
Por otra parte, suele ser habitual indicar un color de fondo siempre que se
muestra una imagen de fondo. En caso de que la imagen no se pueda mostrar
o contenga errores, el navegador mostrará el color indicado (que debería ser,
en lo posible, similar a la imagen) y la página no parecerá que contiene errores.
Con una imagen muy pequeña (y que por tanto, tarda muy poco en ser envia-
da hasta el ordenador del usuario) se consigue cubrir completamente el fondo
de la página, con lo que se consigue un gran ahorro de ancho de banda.
Para�definir�la�repetición�de�la�imagen�de�fondo:
Los valores de esta propiedad pueden ser: repeat, repeat-x, repeat-y, no-repeat.
El valor repeat indica que la imagen se debe repetir en todas direcciones y por
tanto, es el comportamiento por defecto. El valor no-repeat muestra una sola
vez la imagen y no se repite en ninguna dirección.
Para�definir�la�posición�de�la�imagen�de�fondo:
Palabras clave permitidas para este parámetro: top, left, center, right, bottom.
CSS permite mezclar porcentajes y palabras clave, como por ejemplo 50% 2cm,
center 2cm, center 10%.
Ejemplo: probamos este código para ver las diferentes propiedades del back-
ground-position:
Propiedad�background
Por último, CSS define una propiedad de tipo shorthand para indicar todas las
propiedades de los colores e imágenes de fondo de forma directa. La propiedad
se denomina background y es la que generalmente se utiliza para establecer
las propiedades del fondo de los elementos.
es equivalente a:
background-color: #222d2d;
background-image: url(./graphics/colorstrip.gif);
background-repeat: repeat-x;
background-position: 0 0;
3.5. Tipografía
Estas son las propiedades más importantes para definir la tipografía de nuestro
texto en CSS:
Una vez seleccionado el tipo de letra, se puede indicar el tamaño de letra me-
diante la propiedad font-size.
La siguiente imagen muestra una comparación entre los tamaños típicos del
texto y las unidades que más se utilizan:
Por defecto los navegadores asignan los siguientes tamaños a los títulos de
sección: h1 =xx-large, h2 = x-large, h3 = large, h4 = medium, h5 = small, h6
= xx-small.
Valores de font-weight: normal | bold | bolder | lighter | 100 | 200 | 300 | 400
| 500 | 600 | 700 | 800 | 900 | inherit
Los valores que normalmente se utilizan son normal (el valor por defecto) y
bold para los textos en negrita. El valor normal equivale al valor numérico 400
y el valor bold al valor numérico 700.
CSS proporciona una propiedad tipo shorthand y denominada font que per-
mite indicar de forma directa todas las propiedades de la tipografía de un texto.
3.6. Texto
Además de las propiedades relativas a la tipografía del texto, CSS define nu-
merosas propiedades que determinan la apariencia del texto en su conjunto.
Estas propiedades adicionales permiten controlar la alineación del texto, el
interlineado, la separación entre palabras, etc.
Estas son las propiedades más importantes para definir el texto en su conjunto
CSS:
Text-align
Los valores definidos por CSS permiten alinear el texto según los valores tra-
dicionales: a la izquierda, a la derecha, centrado y justificado.
Line-height
Text-decoration
El valor overline añade una línea en la parte superior del texto, un aspecto
que raramente es deseable. El valor line-through muestra el texto con una
línea tachándolo, por lo que su uso tampoco es muy habitual. Por último, el
valor blink�muestra el texto parpadeante y se recomienda evitar su uso por las
molestias que genera a la mayoría de usuarios.
Text-transform
Una de las propiedades de CSS más desconocidas y que puede ser de gran
utilidad en algunas circunstancias es la propiedad text-transform, que puede
variar de forma sustancial el aspecto del texto.
Vertical-align
Ejemplo:
3.7. Enlaces
Tamaño,�color�y�decoración
Los estilos más sencillos que se pueden aplicar a los enlaces son los que modi-
fican su tamaño de letra, su color y la decoración del texto del enlace.
Ejemplo:
© FUOC • PID_00168095 63 Introducción al HTML y al CSS
Pseudo-clases
CSS define cuatro pseudo-clases que permiten aplicar estilos avanzados para
los enlaces de los documentos. Cada pseudo-clase permite diferenciar el estilo
de un enlace según su tipo o estado: enlace no visitado, enlace visitado, enla-
ce en el que se pasa el puntero del ratón por encima y enlace activo en ese
momento.
• :link, permite aplicar estilos para los enlaces que aun no han sido pincha-
dos.
• :visited, aplica estilos a los enlaces que han sido pinchados anteriormente
(el navegador del usuario elimina automáticamente el historial de enlaces
visitados cada cierto tiempo).
a {
}
a:hover {
text-decoration: none;
}
Ejemplo:
© FUOC • PID_00168095 65 Introducción al HTML y al CSS
Ejemplo:
Imágenes
Eliminar�el�borde�de�las�imágenes�con�enlaces
Cuando una imagen forma parte de un enlace, los navegadores por defecto
muestran las imágenes con un borde azul ancho. Por tanto, la regla CSS más
habitual para modificar los estilos CSS por defecto suele ser la de eliminar los
bordes de las imágenes con enlaces:
3.8. Listas
CSS define varias propiedades para controlar el tipo de viñeta que muestran
las listas, la posición de la viñeta, etc.
Estas son las propiedades más importantes para definir el texto en su conjunto
CSS:
List-style-image Permite reemplazar las viñetas automáticas por una imagen perso-
nalizada.
List-style-type
© FUOC • PID_00168095 66 Introducción al HTML y al CSS
En primer lugar, el valor�none permite mostrar una lista en la que sus elemen-
tos no contienen viñetas, números o letras. Se trata de un valor muy utiliza-
do, ya que es imprescindible para los menús de navegación creados con listas,
como se verá más adelante.
Los valores gráficos son disc, circle y square y muestran como viñeta un círcu-
lo relleno, un círculo vacío y un cuadrado relleno respectivamente.
List-style-position
La diferencia entre los valores outside y inside se hace evidente cuando los
elementos contienen mucho texto, como en la siguiente imagen:
© FUOC • PID_00168095 67 Introducción al HTML y al CSS
List-style-image
Como es habitual, CSS define una propiedad de tipo shorthand, que permite
establecer todas las propiedades de una lista de forma directa. La propiedad
se denomina list-style.
CSS define 3 mecanismos para posicionar cada caja formada por los elementos
HTML:
Las 4 propiedades relacionadas con la propiedad position son las que determi-
nan el desplazamiento de los elementos respecto de sus posiciones originales.
CSS define para ello las propiedades top, right, bottom y left.
Si las cajas en línea ocupan más espacio del disponible en su propia línea, el
resto de cajas se muestran en las líneas siguientes. Si las cajas en línea ocupan
un espacio menor que su propia línea, se puede controlar la distribución de las
cajas mediante la propiedad text-align para centrarlas, alinearlas a la derecha
o justificarlas.
img.caja2 {
position: relative;
top: 4em;
left 4em;
}
Si no existe sitio en la línea actual, la caja pasa a la siguiente línea hasta que
encuentra el sitio necesario para mostrarse a la izquierda o derecha de la línea.
Los elementos en línea que se encuentran al lado de las cajas desplazadas me-
diante float�adaptan su anchura al espacio libre dejado por la caja desplazada.
Si en la línea donde se encuentra la caja desplazada no existe sitio necesario
para los contenidos de los elementos en línea, estos se visualizan en la línea
inmediatamente inferior.
El valor right tiene un funcionamiento idéntico, salvo que en este caso el ele-
mento se desplaza hacia la derecha. El valor none permite eliminar el posicio-
namiento y que el elemento se muestre en su posición original.
La regla CSS que se aplica al segundo párrafo del ejemplo anterior sería la
siguiente:
El valor both despeja los lados izquierdo y derecho del elemento, ya que des-
plaza el elemento de forma descendente hasta que el borde superior se en-
cuentre por debajo de cualquier borde inferior de los elementos desplazados
hacia la izquierda y hacia la derecha.
3.10. Layout
Centrar�una�página�completa
Por otra parte, las páginas se alinean por defecto a la izquierda de la ventana,
dando una sensación de vacío en los monitores con más resolución y las pá-
ginas muy estrechas.
Una solución para evitar los grandes espacios en blanco, es crear páginas con
una anchura fija adecuada y centrar la página respecto de la ventana del na-
vegador. CSS permite centrar las páginas de forma muy sencilla. Las siguientes
imágenes muestran el aspecto de una página centrada a medida que aumenta
la anchura de la ventana del navegador.
El resultado es una página centrada sea cual sea la resolución de pantalla del
ordenador del visitante.
Estructura�o�layout
Diseño�a�2�columnas�con�cabecera�y�pie�de�página
© FUOC • PID_00168095 79 Introducción al HTML y al CSS
Diseño�a�3�columnas�con�cabecera�y�pie�de�página
El código anterior crea una página con anchura variable que se adapta a la
ventana del navegador. Para definir una página con anchura fija, solamente
es necesario sustituir las anchuras en porcentajes por anchuras en píxel.