Professional Documents
Culture Documents
Hola, te habla la autora :) Ests leyendo un manual que escrib hace ms de 6 aos. Aunque sigue siendo til, la tecnologa ha evolucionado y algunos contenidos estn obsoletos.
Ahora estoy trabajando en un libro sobre HTML5 y CSS3, con el mismo espritu que este, y algunas mejoras. Puedes conseguir ms informacin en:
www.html5deunamalditavez.com
ii
Licencia
Esta obra est bajo una licencia Reconocimiento-NoComercialCompartirIgual 2.5 Espaa de Creative Commons. Para ver una copia de esta licencia, visite la pgina de la licencia California 94305, USA.
1 o enve una
Resumen de la licencia:
Eres libre de. . . copiar, distribuir y comunicar pblicamente la obra hacer obras derivadas Bajo las siguientes condiciones
Compartir bajo la misma licencia. Si se altera o se transforma esta obra, o se genera una obra derivada, slo se puede distribuir la obra generada bajo una licencia idntica a sta.
1 http://creativecommons.org/licenses/by-nc-sa/2.5/es/
3 de diciembre de 2006
ndice general
i i
2 3
4 4 4 5 5 6
. . . . . . . . . . . . . . . . . . .
I XHTML
2 Estructura XHTML
2.1. 2.2. 2.3. 2.4. 2.5. 2.6. La codicacin El DOCTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
9
9 10 11 11 12 12
Etiquetas bsicas
3.1. 3.2. 3.3. 3.4. 3.5. Prrafos . . . . . . . . . . . . . . . . . . . . . . . . . Saltos de lnea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Los ttulos (headings)
13
13 14 14 15 16
NDICE GENERAL
3.6.
Comentarios . . . . . . . . . . . . . . . . . . . . . . .
16
Enlaces
4.1. 4.2. 4.3. 4.4. Enlace a una pgina externa . . . . . . . . . . . . . . Enlace a una pgina local . . . . . . . . . . . . . . . . . . . . . . . . . . Enlace a una direccin de e-mail
17
17 18 18 19
Anclas . . . . . . . . . . . . . . . . . . . . . . . . . .
Listas
5.1. 5.2. 5.3. 5.4. Listas ordenadas . . . . . . . . . . . . . . . . . . . . Listas sin ordenar . . . . . . . . . . . . . . . . . . . . Listas de denicin . . . . . . . . . . . . . . . . . . . Listas anidadas . . . . . . . . . . . . . . . . . . . . .
21
21 22 22 23
Imgenes
6.1. 6.2. 6.3. Insertar una imagen . . . . . . . . . . . . . . . . . . Imgenes como links . . . . . . . . . . . . . . . . . . Sobre el uso y abuso de imgenes . . . . . . . . . . .
25
25 26 27
Tablas
7.1. 7.2. 7.3. 7.4. Una tabla bsica Atributos de table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29 30 31 32
Formularios
8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7. 8.8. 8.9. La etiqueta FORM . . . . . . . . . . . . . . . . . . . Campos de texto . . . . . . . . . . . . . . . . . . . . Campos de contrasea . . . . . . . . . . . . . . . . . Etiquetar campos . . . . . . . . . . . . . . . . . . . . reas de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Casillas de vericacin . . . . . . . . . . . . . . . . . Botones de seleccin Listas de seleccin . . . . . . . . . . . . . . . . . . .
35
35 36 37 37 38 39 40 41 42
II CSS
9 Introduccin al CSS
9.1. Dnde escribo el cdigo CSS? . . . . . . . . . . . .
43
45
45
NDICE GENERAL
. . . . . . . . . . . . . .
46 46 47 48 48
Selectores? . . . . . . . . . . . . . . . . . . . . . . . Qu signica eso de cascading? . . . . . . . . . . . Puedo poner comentarios? . . . . . . . . . . . . . . . . . . . . . . . . . . Por qu #f signica blanco?
51
51 51 53
11 El modelo de caja
11.1. Cmo es el modelo de caja? 11.2. Ancho y alto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57 58 59 59 60 61 61
11.3. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 11.4. Bordes . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5. Mrgenes 11.6. Capas 11.7. Floats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Algunos truquitos
12.1. Links que cambian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2. Links con el subrayado de diferente color . . . . . . . 12.3. Campos de formulario chulos 12.4. Blockquotes 2.0 . . . . . . . . . . . . . . . . . . . . . 12.5. Cambiar texto por imagen . . . . . . . . . . . . . . .
63
63 64 65 65 66
69
69 70 71 71 72 72
. . . . . . . . . . . . . . . . . . . . . . .
14 Cabeceras
14.1. Cdigo XHTML . . . . . . . . . . . . . . . . . . . . 14.2. #header . . . . . . . . . . . . . . . . . . . . . . . . . 14.3. El heading . . . . . . . . . . . . . . . . . . . . . . . . 14.4. El enlace . . . . . . . . . . . . . . . . . . . . . . . . .
73
73 74 74 74
NDICE GENERAL
15 Listas personalizadas
15.1. Cdigo XHTML 15.2. La lista 15.3. Los tems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
77 77 78
16 Mens verticales
16.1. Cdigo XHTML 16.2. La lista 16.3. Enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
82 82 83
87
87 88 88 88 89 89 89 90 90 90
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
B.6. Cuidado al anidar etiquetas . . . . . . . . . . . . . . B.7. No existen los frames . . . . . . . . . . . . . . . . . . B.8. No se puede utilizar target . . . . . . . . . . . . . . . B.9. Las tablas no se usan para maquetar . . . . . . . . . B.10.Los ampersands dan por saco . . . . . . . . . . . . .
93
Captulo 1
Introduccin
Este manual cubre cmo crear pginas web usando las tecnologas estndares recomendadas por el World Wide Web Consor1 tium . No son necesarios conocimientos previos, as que lo nico que necesitas es: Un
de Windows, te sirve el Bloc de Notas. Ten cuidado si usas un procesador de textos, como el Word, ya que da formato y no queremos eso. Si usas GNU/Linux, tienes un montn para elegir: vim, emacs, Joe, Kate, etc.
navegador (o varios) que funcione bien y respete los estndares. El Mozilla Firefox, por ejemplo. Es multiplaUn taforma, libre, y lo puedes bajar desde la web del proyecto Mozilla . Un
1 Es
CAPTULO 1.
INTRODUCCIN
Adems de eso, es muy recomendable que tengas a mano el editor de texto y un navegador para ir probando los ejemplos que vayan saliendo. Es la nica forma de aprender.
1.1.
Qu es el XHTML?
es la versin modernizada del tradicional HTML . Si ya conoces HTML, al nal del manual hay un apndice para que sea ms fcil la migracin a XHTML. XHTML es un lenguaje
denimos el aspecto de las cosas, sino lo que signican. Por ejemplo, si tenemos el ttulo de nuestra pgina, en lugar de decir Lo quiero
grande en letras rojas , le indicamos al navegador que Este es el ttulo principal de la pgina. Haz algo para que destaque . Y ese
algo lo dejamos a decisin del navegador. Obviamente, podemos controlar el aspecto que tienen nuestras pginas, pero eso es tarea de las hojas de estilo CSS, no del XHTML.
1.2.
Y eso de CSS?
.html.
Garden
5 y al Proyecto Camalen 6 .
1.3.
web.
</h1>
Como ves,
<h1>
marca el
se encarga de
inicio de la etiqueta, mientras que cerrarla. Hay etiquetas que funcionan con
1.4.
1.5.
El Macromedia Dreamweaver es un editor WYSIWYG es que nos permite hacer webs sin tocar nada de cdigo.
extendido e idolatrado por innidad de diseadores. El problema S, eso es un problema. Genera cdigo basura y no tenemos control sobre lo que hacemos. As que antes de usar Dreamweaver
7 Esto
es un diferencia respecto al HTML, ya que podamos poner atributos (en castellano, lo que ves es lo que
obtienes).
10
CAPTULO 1.
INTRODUCCIN
o algo similar, tenemos que aprender a hacer las webs nosotros solitos. Que quede claro que es mi opinin y no Ley Divina. . .
1.6.
Una preguntilla. . .
9
Has mirado primero en Google ? Es muy listo y lo sabe (casi) todo. Si an as no te aclaras, mi e-mail es
benko@ladybenko.net.
9 http://www.google.com
Parte I
XHTML
11
Captulo 2
Estructura XHTML
La ciencia es aquello que entendemos lo suciente como para explicrselo a un ordenador. El arte es todo lo dems. Prlogo de A=B
Donald Knuth, cientco de la
computacin
Este captulo es tremendamente aburrido, pero muy importante. No es muy largo, as que presta atencin. Ahora aprenderemos a formar el esqueleto de nuestros archivos para poder usarlo ms adelante a modo de plantilla.
2.1.
La codicacin
codicacin. Qu es esto? Simplemente el Unicode (utf-8)1 y soporta caracteres de
La primera lnea que debemos tener en un documento XHTMl es la que marca la formato en el que se guardan los caracteres en el archivo. La codicacin estndar es la coreanos. . . ) Asegrate de que el editor de textos que uses te guarda el archivo en formato Unicode (normalmente es una opcin a elegir en el cuadro de dilogo de Guardar como ). todas las lenguas: occidentales, griegos, chinos, rabes, japoneses,
1 Existen
13
14
CAPTULO 2.
ESTRUCTURA XHTML
<? xml version = " 1.0 " encoding = " UTF -8 " ? >
Esa etiqueta es de XML, por eso tiene esa forma tan rarita. No volveremos a usar ese tipo de etiquetas en nuestro documento. La lnea anterior tiene que aparecer al principio de todo el docu-
<?,
omitir esa lnea del principio y declarar la codicacin dentro de la seccin head (ahora veremos
lo. La solucin? Podemos qu es eso). Si elegimos esto ltimo, la lnea a incluir dentro del
head
sera:
< meta http - equiv = " Content - Type " content = " text / html ; charset = utf -8 " / >
Escoge la opcin que quieras, pero slo una. Por cierto, por motivos de espacio, la lnea aparece cortada. No importa, porque el navegador interpreta los saltos de lnea como si fueran espacios en blanco . En realidad podramos escribir todo el archivo XHTML en una sola lnea. O cada palabra en una lnea diferente.
2.2.
El DOCTYPE
DOCTYPE. Se encarga XHTML 1.0
de decirle al navegador qu demonios contiene el archivo que est abriendo. Nosotros usaremos la especicacin
<! DOCTYPE html PUBLIC " -// W3C // DTD XHTML 1.0 Strict // EN " " http :// www . w3c . org / TR / xhtml1 / DTD / xhtml1 - strict . dtd " >
Despus del DOCTYPE tenemos a la cabecera y al cuerpo encerrado entre las etiquetas
<html>
</html>.
2 No
somos masocas, as que no nos lo tenemos que aprender de memoria. sabes lo que es PHP? No pasa nada, hay otras formas de alcanzar la
3 No 4Y
felicidad. Las galletas de dinosaurios, por ejemplo. por cierto, muchos espacios en blanco seguidos se interpretan como si slo hubiera uno.
15
2.3.
<html>.
El resto de nuestro documento tiene que ir dentro de la etiqueta Pero en esa etiqueta debemos indicar una serie de cosas,
como que nuestro documento es XHTML y qu lengua estamos usando. Si escribimos en castellano, nos quedara as:
< html xmlns = " http :// www . w3 . org /1999/ xhtml \" xml : lang = " es " lang = " es " >
Las letras
es
5 en el cuadro 2.1.
Lengua
castellano cataln gallego euskera ingls francs alemn japons
Cdigo
es ca gl eu en fr de ja
2.4.
La
La cabecera (HEAD)
cabecera contiene informacin que no forma parte del con-
tenido de la pgina en s, como el ttulo, vnculos a hojas de estilos CSS, informacin para robots de bsqueda, scripts, etc. Por ahora nos quedaremos slo con el va encerrada entre
<head> y </head>, mientras que para el ttulo usamos la etiqueta <title>. El ttulo de la web aparece en la barra
de ttulo de la ventana del navegador, es el nombre por defecto que aparece si aadimos a favoritos la pgina, etc. Quedara as:
5 Los trekkies
gimos quenya ya!
x-klingon.
Exi-
16
CAPTULO 2.
ESTRUCTURA XHTML
< head > < title > Ttulo de la web </ title > </ head >
El sangrado no es obligatorio, pero s que viene muy bien para aclararnos con el cdigo
2.5.
El cuerpo (BODY)
<body>
</body>,
que as:
<! DOCTYPE html PUBLIC " -// W3C // DTD XHTML 1.0 Strict // EN " " http :// www . w3c . org / TR / xhtml1 / DTD / xhtml1 - strict . dtd " > < html xmlns =" http :// www . w3 . org /1999/ xhtml " xml : lang =" es " lang =" es " > < head > < meta http - equiv = " Content - Type " content =" text / html ; charset = utf -8 " / > < title > Ttulo de la web </ title > </ head > < body > Aqu va el contenido </ body > </ html >
Y est pidiendo a gritos que guardes una copia en un archivito llamado
plantilla.html
Captulo 3
Etiquetas bsicas
revolucionarios
etiquetas bsicas que nos permitan empezar a contenido de nuestra pgina web: prrafos, saltos de
3.1.
Los
Prrafos
prrafos sirven para estructurar el contenido. En la TM : contienen una o
web funcionan igual que en el Mundo Real texto entre las etiquetas
<p>
</p>.
Un ejemplo :
<p > Hola , me llamo Luke Skywalker y soy piloto de una X - Wing en el Rogue Squadron . Tambin soy un Jedi del Lado Luminoso de la Fuerza . Mis maestros han sido Yoda y Obi - Wan Kenobi . </ p >
1 Da
igual insertar un salto de lnea entre la etiqueta y el contenido, ya que ser interpretado como un espacio en blanco.
17
18
CAPTULO 3.
ETIQUETAS BSICAS
Si pruebas ese ejemplo, te dars cuenta de que todo forma un prrafo y que el navegador pasa de los saltos de lnea. Esto es correcto. Podras haber puesto todo el prrafo en la misma lnea y obtendras el mismo resultado.
3.2.
Saltos de lnea
salto de lnea dentro de
<br />,
as:
<p > Dark Chest of Wonders < br / > Seen trought the eyes < br / > Of the one with pure heart < br / > Once , so long ago . </ p >
Chulsima cancin de Nightwish , por cierto. Aunque estticamente podamos obtener el mismo resultado mediante prrafos (con da, hay que tener en cuenta que usar
<p>) que saltos de lnea de forma indiscrimina<br /> para separar prrafos
3.3.
Los
la seccin de enlaces de nuestra pgina. El ttulo principal podra ser Mis links favoritos. Luego tendramos los links clasicados por secciones, cada una de ellas bajo un subttulo diferente: Blogs, Des-
cas y Arcades.
<h1>
tante y slo debera haber uno por pgina. Veamos todo lo anterior en un ejemplo:
< h1 > Mis links favoritos </ h1 > < h2 > Blogs </ h2 >
2 Dark Chest of Wonders,
de Nightwish, en el lbum Once.
3.4. CITAS
19
<! -- bla bla bla -- > < h2 > Videojuegos </ h2 > < h3 >RPG ' s </ h3 > <! -- bla bla bla -- > < h3 > Arcades </ h3 > <! -- bla bla bla -- >
Si ves el cdigo anterior en un navegador, aparecern los ttulos ms importantes de mayor tamao que los menos importantes (pero el tamao de cada ttulo siempre puede cambiarse con CSS).
3.4.
Citas
<q>
<cite>.
Mientras que
citas: <blockquote>, <blockquote> y <q> se usan para frases), <cite> se emplea para marcar el
Entonces, en qu se diferencian <blockquote> y <q>? Pues que <blockquote> est hecha para contener citas largas. Es decir, que dentro de un <blockquote> tendremos que poner prrafos. <q> funciona al revs, puesto que est pensada para escribir citas cortas.
<q> va dentro de prrafos. La razn tcnica es que <blockquote> es un elemento de bloque (block), mientras que <q> es inline, y
un inline no puede estar aislado. Todo lo anterior puede resultar confuso, as que ahora toca un ejemplo claricador:
<p > Aqu os dejo un fragmento de la cancin < cite > Die for Rock 'n ' Roll </ cite > , de Dover : </ p > < blockquote > <p > Everybody danced ( while ) < br / > I was lying on the floor < br / > I was ready to die < br / > for Rock 'n ' Roll < br / > </ p > </ blockquote > <p > Mi parte preferida es cuando dice lo de <q >I was ready to die [...] </ q >. </ p >
20
CAPTULO 3.
ETIQUETAS BSICAS
3.5.
Los
Separadores horizontales
separadores horizontales (horizontal rules) han cado
en desuso, ya que podemos conseguir bordes delimitadores muy cucos mediante estilos CSS. Pero como el saber no ocupa lugar, nos quedaremos con la etiqueta
<hr />:
< h2 > Los videojuegos </ h2 > <p > Bla bla bla ... </p > < hr / > < h2 > Msica </ h2 > <p > Bla bla bla ... </p >
3.6.
Los
Comentarios
comentarios son notitas que ponemos en el cdigo fuente invisibles. Son tiles para indicar qu hacen ciertas
Ten en cuenta que el comentario tiene que estar en
de una pgina, pero que no se muestran en pantalla. Para el navegador, son partes del cdigo. Para insertar un comentario, lo escribimos entre
<!--
-->.
Captulo 4
Enlaces
Ya sabemos las etiquetas necesarias para escribir texto. Ahora toca aprender a usar una de las caractersticas ms importantes de la web: los
<a>.
4.1.
<a> de
otro
<a href = " http :// www . algo . com " title = " Descripcin " > Texto del enlace </ a >
El atributo
href
contiene la
http:// ) o no funcionar.
En
title
escribimos una
<acronym>
<abbr>,
en la mayora de
1 http://
21
22
CAPTULO 4.
ENLACES
link. No hay que confundir el ttulo con el texto del enlace. Son completamente independientes. Imagina que quieres enlazar a Barrapunto :
<a href = " http :// www . barrapunto . com " title = " La informacin que te interesa " > Barrapunto </ a >
4.2. Enlace a una pgina local
nuestro servidor, neruta (path ) desde donde estemos hasta la ubi-
Para enlazar a una pgina que est en cesitamos saber la cacin del archivo.
Si el origen (pgina donde est el link) est en el mismo directorio que el destino (pgina a la que apunta el link), entonces slo tenemos que escribir su nombre:
<a href = " profile . html " title = " Informacin sobre m " > Ficha personal </ a >
Si el destino estuviera en barra
<a href = " galeria / color . html " title = " Galera color " > Ver dibujos a color </a >
Si el destino estuviera dos puntitos y una barra
../
de esta manera:
<a href = " ../ index . html " title = " Pgina principal " > Volver al inicio </ a >
4.3. Enlace a una direccin de e-mail
4
Podemos crear un enlace que, al pulsar sobre l, se abra automticamente una ventana del cliente de correo que tenga el usuario para que escriba un mensaje a esa direccin.
2 Blog
colectivo geek, similar a Slashdot. Ya no es lo que era, pero sigue usuarios del Maligno! En Windows se utilizan las barras inver-
usando Debian.
3 Atencin
tidas
para separar los directorios. En el resto del universo, se utilizan las el infame Outlook. Usa Thunderbird
barras normales.
4 Normalmente
4.4. ANCLAS
23
Para ello, slo tenemos que usar mailto: en el atributo seguido de una direccin de correo electrnico:
href,
<a href = " mailto : leia@alianza . net " title = "E - mail de la Princesa Leia " > Leia </ a >
4.4.
Las
Anclas
anclas nos permiten enlazar a una posicin concreta de la creamos el ancla en el sitio al que queremos enla-
pgina, en plan teletransporte. Funcionan as: Primero zar despus. Para esto, usamos el atributo
id
(podemos ponerlo
href
creamos un link que nos transporte a ese ancla. Ponela ID de antes precedida de una almohadilla
#:
<a href = " # comentarios " title = " Lista de comentarios " > Leer comentarios </ a >
Tambin podemos enlazar a un ancla que est en
otra pgina:
<a href = " post005 . html # comentarios " title = " Lista de comentarios " > Comentarios del post n o 5 </ a >
As de fcil! Hay otro modo de crear anclas, y es usando el atributo
el enlace; pero esta manera es obsoleta. De todos modos, revisando cdigos de otras pginas te las puedes encontrar, as que no est de ms conocer cmo se hace. Tienen este aspecto (y ojo, son invisibles!):
5 FAQ
preguntas ms frecuentes sobre un tema, contestadas. Est muy mal no leerse las FAQ's y luego preguntar sobre cosas que ya estn respondidas, as que ya sabes qu hacer si no quieres que Matrix te castigue.
24
CAPTULO 4.
ENLACES
punto concreto de la pgina. Normalmente las respuestas tienen otro enlace que nos devuelve a un ancla situada en el ndice de preguntas, para facilitar la navegacin.
Captulo 5
Listas
Ahora veremos cmo implementar Las hay de tres tipos: Venga, que esto es muy facilito.
5.1.
Las
Listas ordenadas
listas ordenadas muestran sus elementos numerados. Se
<ol>:
<p > Mis escritores favoritos ( en orden de preferencia ): </ p > < ol > < li >R . A . Salvatore </ li > < li > George R . R . Martin </ li > < li > Isabel Allende </ li > </ ol >
Hay que tener en cuenta que con CSS podemos cambiar el nmero por el que queremos empezar a contar, as como el tipo de numeracin (nmeros arbigos, romanos, letras del abecedario, maysculas...). 25
26
CAPTULO 5.
LISTAS
5.2.
Las
<ul>.
<p > El helado perfecto ( am !): </ p > < ul > < li >1 bola de helado de chocolate </ li > < li >1 bola de helado de limn </ li > < li > Trocitos de pia y melocotn en almbar </ li > < li > Sirope de chocolate </ li > </ ul >
Al igual que con las listas ordenadas, podemos modicar su apariencia con CSS y elegir el tipo de vietas que queremos .
5.3.
Las
Listas de denicin
<dt>
listas de denicin se diferencian de las anteriores en que trmino y su denicin. Se usan estas etiquetas: <dl> para crear la lista,
para cda trmino y
<dd>
<p > Significado de algunos smileys : </ p > < dl > < dt > :) </ dt > < dd > Sonrisa </ dd > < dt > xD </ dt > < dd > Carcajada </ dd > < dt >: P </ dt > < dd > Sacar la lengua </ dd > </ dl >
Y s, tambin se puede cambiar el aspecto y bla, bla, bla. Comentar que las palabras
trmino
definicin
no slo se reeren
1 Es ms, podemos sustituir las vietas por 2 Tambin puedes aadir guindas y nata.
imgenes.
27
a una palabra y a su signicado. Tambin podemos usar una lista de denicin para crear un perl (por ejemplo), relacionando los pares Nombre-Leia, Ciudad-Coruscant y Profesin-Senadora.
5.4.
No,
Listas anidadas
las listas anidadas no son un nuevo tipo de lista, slo
una combinacin de las anteriores. Anidar signica meter una lista dentro de otra. Por ejemplo:
<p > Algunos libros de Salvatore : </ p > < ul > < li >I Triloga de El Elfo Oscuro < ol > < li > La Morada </ li > < li > El Exilio </ li > < li > El Refugio </ li > </ ol > </ li > < li > Triloga de El Valle del Viento Helado < ol > < li > La Piedra de Cristal </ li > < li > Ros de Plata </ li > < li > La Gema del Halfling </ li > </ ol > </ li > </ ul >
No es difcil, slo debemos tener cuidado cerrando la etique-
primero se cierran las interiores, y despus las de fuera. Es por esto, que cuando inserta que toque. Cmo lo sabemos? Fcil: tamos una lista dentro de un tem de otra lista (esto es, primero
<li>
y despus
<ol>,
luego el tem de la lista exterior. Un buen sangrado como el del ejemplo ayuda mucho.
Captulo 6
Imgenes
Nada en la vida existe para que lo temamos, simplemente para que lo entendamos.
Marie Curie, cientca
Las imgenes son un elemento importante a la hora de hacer ms atractiva una web, o de aportar ms informacin. No obstante, hay que saber cundo utilizarlas y no abusar de ellas. Podemos usar tres
JPEG
mo
formatos de imagen:
GIF, JPEG
PNG.
El
Las imgenes
PNG,
6.1.
Para poner una imagen, hacemos uso de la etiqueta unos cuantos atributos:
<img>
con
< img src = " image . gif " width = " ancho " height = " alto " alt = " descripcin " / >
29
30
CAPTULO 6.
IMGENES
Con
src
que con los links, hay que tener en cuenta la en un subdirectorio (o varios) llamado
nos permiten establecer el ancho y el alto de la imagen. Podemos indicar un valor absolu-
to en pxeles o uno relativo en tanto por ciento. Por ejemplo, tras que
width="200" mostrara la imagen con 200 pxeles de ancho, mienwidth="100 %" hace que la imagen ocupe toda la pantalla
de ancho. Estos dos atributos no son obligatorios, pero s es conveniente que indiquemos las dimensiones en pxeles reales, ya que ahorramos tiempo al navegador a la hora de maquetar la pgina. El atributo
alt
contiene una
veremos cuando no se haya podido cargar por cualquier motivo. La mayora de navegadores tambin muestran esta descripcin al pasar el ratn por encima de la imagen. Este atributo es
obligatorio,
por cuestiones de acesibilidad: hay personas que deshabilitan las imgenes para ahorrar tiempo; otras, usan navegadores de texto como Lynx; y otras, sencillamente son ciegas . Como ejemplo, as podramos insertar la imagen de un banner :
< img src = " images / banner . gif " width = " 200 " height = " 40 " alt = " BenKo ' s Art " / >
6.2.
a una pgina. Los navegadores suelen mostrarla con un reborde para indicarnos que se trata de un link, pero lo podemos cambiar con CSS. Para poner una imagen como un link, la introducimos dentro de la etiqueta
<a>:
<a href = " http :// art . ladybenko . net " title = " Mi portafolio " > < img src = " images / banner . gif " width = " 200 " height = " 40 " alt = " BenKo ' s Art " / >
1 Una
cita muy comn entre desarrolladores web suele ser: El visitante ms importante de tu web es ciego y se llama Google.
31
</ a >
Hay una tcnica muy popular a la hora de implementar galeras de imgenes que consiste en usar thumbnails. Qu es esto? Una
<a href = " matrix . jpg " title = " Wallpaper " > < img src = " matrix . jpg " width = " 100 " height = " 50 " alt = " Wallpaper de Trinity " / > </ a >
Eso
ms), tendremos esos 100KB como thumbnail ! Es decir, justo lo que queremos evitar. El escalar una imaagen con hace que pese menos . Tenemos que coger un programa de dibujo, escalar la imagen, y guardar esta copia ms pequea (de 5KB, por ejemplo):
width y height no
<a href = " matrix . jpg " title = " Wallpaper " > < img src = " matrix_thumb . jpg " width = " 100 " height = " 50 " alt = " Wallpaper de Trinity " / > </ a >
6.3. Sobre el uso y abuso de imgenes
Dicen que una imagen vale ms que mil palabras. Cierto, pero muchas imgenes, o pocas mal puestas, pueden llegar a desesperar. Te resulta esto familiar? Entras a una web con un fondo de color chilln, letras verde fosforito, una cantidad obscena de GIF's animados, marquesinas, applets de Java, etc . Cunto tardas en cerrar la pgina? Yo menos de un segundo, es ya un acto reejo. Es por esto que debemos limitar los GIF's animados, as como
slo hay que poner las imgenes necesarias. Adems, te ahorrars una pasta
evitar el uso indiscriminado de imgenes. Recuerda: en ancho de banda de tu servidor.
Captulo 7
Tablas
Las
presentar
tablas son el mecanismo que nos proporciona XHTML para informacin tabulada, como horarios o los resultados
de la quiniela. Son un poco engorrosas de utilizar, pero a veces son necesarias, as que all vamos!
7.1.
Las principales etiquetas que disponemos para crear una tabla son estas:
<caption>:
crea una la crea una celda crea una celda de encabezamiento
Se entiende mejor con un ejemplo. Es muy conveniente utilizar bien los sangrados, ya que hay que tener mucho cuidado al cerrar las etiquetas
<tr>, <td>
<th>.
33
34
CAPTULO 7.
TABLAS
< table > < caption > Videojuegos </ caption > < tr > < th > Ttulo </ th > < th > Gnero </ th > </ tr > < tr > < td > Sonic </ td > < td > Plataformas </ td > </ tr > </ table >
Dara como resultado algo parecido a esto:
Ttulo
Sonic
Gnero
Plataformas
El mtodo es siempre el mismo. Por cada la que queramos, abrimos una etiqueta
<tr>
7.2.
Atributos de table
La etiqueta
<table>
atributos1 que
nos permiten modicar su borde y los mrgenes de las celdas. Para cambiar el tamao del
border
con un valor en pxeles. Si no indicamos nada, los navegadores suelen tomar como valor por defecto 1 0. Si no queremos ningn borde, debemos utilizar
border="0".
cellspacing
cellpadding
1 Los
cellpadding2 .
3
La diferencia entre
cellspacing
2 Aunque, en mi opinin, es mejor usar CSS para esto. 3 Los valores estn muy exagerados para que se note la
diferencia.
35
< table border = " 1 " cellpadding = " 10 " cellspacing = " 30 " > < caption > Videojuegos </ caption > < tr > < th > Ttulo </ th > < th > Gnero </ th > </ tr > < tr > < td > Sonic </ td > < td > Plataformas </ td > </ tr > </ table >
7.3. Expandir las y columnas
Muchas veces necesitamos que una celda ocupe ms de un espacio. Pongamos como ejemplo nuestra socorrida tabla de videojuegos. Qu pasa si en vez de un gnero por cada juego, queremos meter dos? Podemos hacer que la celda de gnero ocupe dos columnas. As:
< table > < caption > Videojuegos </ caption > < tr > < th > Ttulo </ th > < th colspan = " 2 " > Gnero </ th > </ tr > < tr > < td > Sim City </ td > < td > Simulacin </ td > < td > Estrategia </ td > </ tr > </ table >
Ttulo
Sim City
Gnero
Simulacin Estrategia
Como ves, para expandir una celda por varias columnas hemos utilizado el atributo mediante
rowspan.
girada 90 grados:
36
CAPTULO 7.
TABLAS
< table > < caption > Videojuegos </ caption > < tr > < th > Ttulo </ th > < td > Sim City </ td > </ tr > < tr > < th rowspan = " 2 " > Gneros </ th > < td > Simulacin </ td > </ tr > < tr > < td > Estrategia </ td > </ tr > </ table >
Ttulo Gneros
Sim City Simulacin Estrategia Que es un rollo esto de las tablas? Pues s, pero no le des mucha importancia. La mayora de editores de cdigo (X)HTML, como el Quanta o el Homesite+, traen asistentes para crear tablas de forma rpida y sencilla.
7.4.
A da de hoy, la mayora de las pginas web estn maquetadas usando tablas con
border="0".
4
totalmente imposible crear texto a columnas y, en denitiva, maquetas un sitio web . Afortunadamente, CSS implementa
capas,
con lo que se puede congurar totalmente la apariencia y la colocacin de cada elemento de la pgina mediante la hoja de estilos, quedando el cdigo XHTML muy simple y sencillo. Entonces por qu la gente sigue usando tablas? Porque muchos piensan que eso de las capas es algo muy complicado. Mentira y gorda! Lo que pasa es que nadie nace enseado, y aprender algo nuevo siempre da un poco de pereza. En la parte de CSS de este
4 Bueno,
que la enfermedad.
37
tutorial aprenderemos a crear varios tipos de diseo populares para as tumbar el mito de que las capas son difciles. Y dndole la vuelta a la tortilla...
Pues porque las tablas no se han creado para maquetar y el WWW Consortium lo desaconseja. Adems, en navegadores no visuales (de texto, para ciegos, o cualquier dispositivo que no sea un monitor) el resultado es totalmente
peso? Las tablas dan ms trabajo. El cdigo queda ms enrevesado, y si queremos renovar el diseo de nuestra pgina, hemos de cambiar prcticamente todo el cdigo. Sin embargo, si hubiramos usado un layout por capas, slo tendramos que modicar el archivo CSS. Ms razones? Al ser el cdigo ms complicado, las
ms pesadas y gastan ms ancho de banda. Adems, tardan ms en cargar, ya que hasta que no se carga todo lo que
pginas son hay en la tabla, no se muestran los resultados parciales. El futuro es XHTML y sitios web importantes, como Blogger , ya han rediseado su layout con capas. As que te animo a que cumplas los estndares y no uses las tablas para maquetar
6 :)
hay
botoncitos muy cucos para mostrar al mundo que formas parte del Clan de
Captulo 8
Formularios
Los formularios nos permiten recoger informacin introducida por el visitante de nuestra web. Esta informacin podemos enviarla por correo electrnico o procesarla con un script. Si se manda por en cuenta de que se trata de
ser interceptada, as que no debe contener datos importantes. Un uso aceptable sera un formulario con comentarios sobre nuestra pgina o para pedir un intercambio de links. Si nuestro servidor dispone de tecnologa como
PHP o CGI
(por ejemplo), podemos hacer ms cosas con esa informacin, como guardarla en una base de datos o generar una pgina dinmicamente.
8.1.
La etiqueta FORM
<form>
</form>.
Dentro de esta etiqueta, van los campos del formulario, y podemos usar prrafos y saltos de lnea para organizarlos. Vamos a ver un ejemplo de etiqueta que se enviar por correo electrnico: 39
40
CAPTULO 8.
FORMULARIOS
< form action = " mailto : leia@alianza . net " method = " post " enctype =" text / plain " >
pulse el botn de enviar (Submit). En ese ejemplo, el formulario se enva a la direccin El atributo
action
leia@alianza.net1 .
Si tuvisemos un
action=.enviar_info.php". Con method especicamos cmo va a ser enviada la informacin. Si utilizamos correo electrnico, le damos el valor de post. Para scripts se suele utilizar get, que pone el valor de las variables en la
query string (URL) .
Por ltimo, con
enctype="text/plain"
gue a nuestra bandeja de entrada el formulario en forma de texto plano sin caracteres extraos.
8.2.
Campos de texto
La mayora de los campos de un formulario se crea con una sola etiqueta, as:
< input type = " text " id = " nombre " name = " nombre " size = " 20 " / >
Vamos a pegarle un vistazo a los atributos. Con recoge el hacen indicamos que se trata de un campo de texto. El atributo
type="text" size
documento puede llamarse igual que este elemento. Este parmetro sirve para CSS
<label>
1 Lo 2 Si
siento chicos, pero la princesa Leia no me ha autorizado a publicar esto te suena a chino, no te preocupes. Slo es necesario saberlo en el
aqu su verdadera direccin de e-mail :( caso de que vayas a usar un script. . . Y en ese caso, ya lo aprenders cuando te enseen a programarlos.
3 Estableciendo
41
Con
name
damos
ejemplo, si el visitante escribe Morpheo en el formulario que hemos puesto de ejemplo, recibiramos un e-mail que contendra algo as:
nombre = Morpheo
De todos modos, para ahorrarnos problemas, siempre que podamos es mejor escribir el mismo valor para complicarse la vida lo menos posible.
id
name.
Hay que
nmero mximo de caracteres que puede maxsize Y si queremos que aparezca un valor por defecto, podemos usar value=.algo". Por ejemplo,
to. Podemos indicar el introducir el usuario con para pedir la direccin de la pgina web del visitante:
< input type = " text " name = " url " id = " url " size = " 30 " maxsize = " 255 " value = " http :// " / >
title,
8.3.
Y, por supuesto, no debemos olvidarnos de nuestro socorrido que funciona igual que con la etiqueta
<a>.
Campos de contrasea
Los
campos de contrasea
de texto, slo que el visitante en lugar de ver los caracteres que ha introducido, ve asteriscos. Lo de exactamente iguales quiere decir eso: es un campo de texto, la informacin contrasea es meramente esttica. Los atributos son los mismos que los de los campos de texto, lo nico que cambia es qe debemos introducir Ejemplillo:
no va cifrada de
type="password".
< input type = " password " name = " pass " id = " pass " / >
8.4.
Etiquetar campos
Ya hemos aprendido a crear campos de texto para nuestro formulario, pero cmo le decimos al visitante qu es lo que tiene que introducir en cada campo? Podramos hacer algo as:
42
CAPTULO 8.
FORMULARIOS
<p > Nombre : < br / > < input type = " text " name = " nombre " id = " nombre " / > </ p >
Mal. Podemos tener problemas con navegadores no visuales.
Entonces, cmo sabemos que la palabra Nombre hace referencia al campo con el atributo una etiqueta nueva:
id="nombre"? <label>.
for, y en l tenemos que id del campo al que queremos hacer referencia. El ejem-
<p > < label for = " nombre " > Nombre : </ label > < br / > < input type = " text " name = " nombre " id = " nombre " / > </ p >
8.5. reas de texto
reas de texto damos a nuestros visitantes la posiy su funcionamiento es un poco diferente al de
Con las es
<textarea>
id, name
Adems, disponemos de otros dos para indicar las dimensiones del rea de texto: caracteres) y
ancho (medido en
Como ejemplo, imaginemos que en una parte del formulario queremos poner un campo para que el visitante deje un comentario. Como probablemente sea largo, utilizamos un textarea:
<p > < label for = " comentario " > Algn comentario ? </ label > < br / > < textarea name = " comentario " id = " comentario " cols = " 30 " rows = " 5 " > Bla bla bla </ textarea >
43
Fjate en que
<textarea>
tiene etiqueta de
8.6.
Una
Casillas de vericacin
casilla de vericacin (ms conocida como checkbox es
un cuadradito que el usuario puede activar y desactivar pulsando en l. Se crean con la etiqueta
<input>
type=heckbox".
Los es
atributos id, name y title funcionan con normalidad, pero value funciona de manera algo distinta. Lo que escribamos en variable (indicada en si ponemos esto. . .
value
<p > Has jugado a ... < br / > < input type = " checkbox " name = " monkey1 " id = " monkey1 " value = " si " / > < label for = " monkey1 " > Monkey Island I </ label > </ p >
. . . y el usuario activa la casilla, recibiremos un mail como este:
monkey1 = si
Tambin podemos hacer que una casilla est activada por defecto, si aadimos el atributo
checked=hecked".
As:
<p > Has jugado a ... < br / > < input type = " checkbox " name = " monkey1 " id = " monkey1 " value = " si " checked = " checked " / > < label for = " monkey1 " > Monkey Island I </ label > < input type = " checkbox " name = " xwing " id = " xwing " value = " si " / > < label for = " xwing " >X - Wing Alliance </ label > </ p >
Nos quedara entonces la casilla etiquetada como Monkey Is-
4 Yo
44
CAPTULO 8.
FORMULARIOS
8.7.
Botones de seleccin
No s si el trmino botones de seleccin es en realidad el ms adecuado como traduccin, as que mejor pondr una explicacin de lo que hacen. El nombre en ingls es
circulares agrupadas, en las que slo una puede estar activada a la vez. Sirven para cuando queremos que el visitante slo seleccione una opcin de las mltiples que se le dan. Aunque se crean con la etiqueta tro
type="radio",
<input>
indicando el parme-
los veremos un poco ms despacio. Pongamos el caso de que queremos que el visitante de nuestra web nos indique cul pelcula de la triloga de Star Wars
5 es su
favorita. Evidentemente, slo puede coger una, as que nos toca emplear radio buttons en lugar de casillas de vericacin. Necesitamos entonces un botn por cada pelcula (tres en total). Cmo los agrupamos? Pues dando el mismo nombre de variable a cada botn. Es decir, de
el atributo name es el mismo para todo el grupo. Y qu hacemos con id? Bien, no puede haber dos valores
id
otras palabras, los radio buttons son los nicos campos en los que la id y to
name deben ser diferentes. Disponemos adems checked por si queremos marcar alguna opcin por
<p > Peli preferida : </ br > < input type = " radio " name = " peli " id = " sw_hope " value = " hope " checked = " checked " / > < label for = " sw_hope " >A New Hope </ label > < input type = " radio " name = " peli " id = " sw_empire " value = " empire " / > < label for = " sw_empire " > The Empire Strikes Back </ label > < input type = " radio " name = " peli " id = " sw_jedi " value = " jedi " / > < label for = " sw_jedi " > The Return of the Jedi </ label >
5 De
la triloga original, por supuesto. No queremos ofender a nadie.
45
</ p >
Como ves, usamos como nombre de variable (name) la palabra
peli . Segn la pelcula que sea, cada botn tiene asignada una id diferente. Por ejemplo, A New Hope tiene asignada la id peli_hope . El atributo
en caso de que se seleccione ese botn. Por ejemplo, si el visitante selecciona la pelcula de The Return of the Jedi, recibiremos un e-mail con esta lnea:
peli = jedi
Quizs parezca un poco lioso, pero una vez hayas hecho un par de formularios, todo ir bien.
8.8.
Las
Listas de seleccin
listas de seleccin tienen una funcin parecida a los ramltiples opciones 6 agrupadas en las que escogemos una . La diferencia es que la lista
dio buttons, en tanto que se nos presentan aparece replegada y no ocupa apenas espacio en la web, as que son muy tiles cuando tenemos muchas opciones a elegir. La etiqueta que las crea es
<option>.
<p > < label for = " peli " > Pelcula preferida : </ label > < br / > < select name = " peli " id = " peli " > < option value = " hope " >A New Hope </ option > < option value = " empire " > The Empire Strikes Back </ option > < option value = " jedi " selected = " selected " > The Return of the Jedi </ option >
6 Mentira,
hay un atributo que permite que seleccionemos varias opciones de la lista, pulsando la tecla que es muy incmodo.
Ctrl.
46
CAPTULO 8.
FORMULARIOS
id name.
8.9.
Ya hemos visto todos los campos de formulario que podemos crear, ahora slo nos falta comentar dos Ambos se crean con
<input>.
El atributo
id
no tiene mucho
sentido, a menos que usemos CSS para cambiar su aspecto de un modo concreto y exclusivo. Asmismo,
name
si no empleamos algn tipo de script para tratar la informacin. Como nosotros enviamos el formulario por correo, no debemos preocuparnos. En El botn de
<form>. type="submit":
Para
< input type = " submit " value = " Enviar " / >
El botn de con
type="reset":
< input type = " reset " value = " Borrar " / >
Ni que decir tiene que hay que diferenciar bien cul botn es cul y no poner textos extraos como ttulo de los botones. Si te sientes creativo, vete a jugar al Lego. Fastidia mucho que se te borre todo el formulario por error, creyendo haberle dado al botn de enviar.
Parte II
CSS
47
Captulo 9
Introduccin al CSS
Fuera del mundo de los sueos, la vida puede ser dura, incluso cruel. Pero es vida. Final Fantasy X
Auron, guardin legendario
En la parte de XHTML hemos comentado muchas veces que podemos cambiar el aspecto de una pgina web mediante hacerlo. Me ha costado decidirme sobre cmo explicar las diferentes propiedades del CSS, pero creo que la mejor manera de aprender sin que se haga muy pesado es poniendo ejemplos de problemas comunes con los que nos topamos, junto con la manera de solucionarlo en CSS. Despus de todo, esto no pretende ser una gua de referencia con todas las propiedades y todos sus posibles valores .
CSS
9.1.
Hay dos opciones para insertar CSS en un documento XHTML. Lo ms normal es hacerlo en un hoja de estilos) y enlazarlo desde nuestro documento XHTML.
1 Googleando
de 359 pginas.
sultar las especicaciones ociales en la web del W3C. Es un PDF muy majo
49
50
CAPTULO 9.
INTRODUCCIN AL CSS
Esto tiene una ventaja enorme, y es que podemos tener muchas pginas enlazando a la misma hoja de estilos. Si ms adelante queremos cambiar algo, slo tenemos que modicar un nico archivo (la hoja de estilos) y afectar a todas las pginas. Podemos enlazar una o ms hojas poniendo esto dentro de la cabecera (<head>):
< link rel = " hoja_estilos . css " rel = " stylesheet " type = " text / css " / >
La otra opcin es escribir la informacin referente a los estilos incrustada
<style>
</style>,
que tambin
Si hacemos las dos cosas a la vez, siempre tienen prioridad las reglas que estn dentro de
<style>.
9.2.
En una hoja de estilos utilizamos reglas que consisten en elegir selectores a los que asignamos una serie de propiedades. Por ejemplo, si queremos que nuestra pgina web tenga el fondo blanco, las letras grises, y una fuente Arial de 10 puntos de tamao, escribimos esta regla:
body { background - color : # fff ; color : #666; font - family : Arial , sans - serif ; font - size : 10 pt ; }
Como ves, las lneas terminan en un
#fff
#666
a un gris oscuro.
9.3.
Los
Selectores?
selectores los utilizamos para elegir a qu elementos se
aplican las propiedades que escribimos. Hay diferentes tipos de selectores, los ms importantes son los que veremos ahora.
51
a { ... }
Tambin podemos elegir un buto
id.
# menu { ... }
Otra cosa que podemos hacer es denir una bre. Por ejemplo, si queremos destacar algo:
. importante { ... }
Luego podramos emplear esa clase en los prrafos que queramos (o cualquier otro elemento), usando el atributo modo:
class
de este
<p class = " importante " > Bla bla bla </ p >
Tambin podemos seleccionar ciertos elementos, pero slo cuando estn contenidos dentro de otros. Por ejemplo, si queremos seleccionar los
<li>,
ul li { ... }
9.4.
table,
glas.
sus hijos (td entre otros) tambin tendrn esas mismas re-
52
CAPTULO 9.
INTRODUCCIN AL CSS
Es por esto que si, por ejemplo, queremos establecer un tipo de fuente para todo el documento, debemos indicarlo en el elemento
body
9.5.
>.
<!
/* Esto es un comentario */
9.6.
En CSS hay varias maneras de indicar un color. Podemos hacerlo en ingls, por ejemplo. En lugar de
#fff
escribimos
white
y lo solucionamos. El problema es que as es muy incmodo porque tenemos que aprendernos los nombres de cada color, y puede que exista algn color que queramos poner y que no tenga nombre. . . adems de que supone una falta de precisin absoluta . As que normalmente se usa la
Los colores en nuestro monitor est formado por tres haces de luz: rojo, verde y azul. Se llama Si cogemos un programa de dibujo, vemos que podemos eleigr un color indicando el valor de sus componentes rojo, verde y azul por separado. Este valor puede variar de ponemos
255
255
para el rojo,
255
para el verde y
para el azul.
este rango de valores (0..255) puede ser representado con dos dgitos hexadecimales, que van desde el escribir un color completo es que se trata de un color el amarillo sera
00 hasta el FF. La forma de #RRGGBB, donde la almohadilla indica hexadecimal, y RR, GG y BB son los dgitos
#ffff00.
La mayora de los colores que usaremos tendrn por cada componente los mismos dgitos. Por ejemplo:
#ff0000
(rojo),
#0000aa
2 Recuerdas
morado, o fucsia? Quin te dice que tu concepto de morado sea el mismo que el de tu navegador?
53
#f00 es completamente #ff0000. Sin embargo, colores como #a0a0a0 no pue255, #fff.
#000000
Por tanto, para conseguir el color blanco, debemos poner poner todas las componentes a
#ffffff,
y abreviado en
La mayora de editores de cdigo (X)HTML o de programas de dibujo nos mostrarn en la paleta el valor del color en hexadecimal. En cualquier caso, siempre podemos obtener el valor de sus componentes por separado y convertirlo a hexadecimal con una calculadora.
Captulo 10
Trasteando por primera vez
Eh, yo he visto esto antes. No. . . lo he jugado antes. No. . . lo he diseado antes! Post sobre Piratas del Caribe
Ron Gilbert, desarrollador de videojuegos
Para empezar a meter mano al CSS, conviene conocer algunas propiedades sencillas. Empezamos!
10.1.
La propiedad al
color, es ecir,
color que est por encima del fondo. Hablando en plata, viene
a ser el color del texto. Si queremos que nuestra pgina tenga las letras de gris oscuro, lo conseguimos con esto:
10.2.
El fondo
background,
Podemos moicar el fondo de un elemento con la propiedad que tiene la siguiente sintaxis:
56
CAPTULO 10.
url(fondo.gif).
repeat
se repite siempre en ambos sentidos (valor por defecto), mienrepite slo en horizontal, y con
position: indica la posicin del fondo. Indicamos tanto la posicion desde la izquierda como desde arriba (ya sea en pxeles, porcentajes, o incluso palabras ). Los valores por defecto son que sitan al fondo en la esquina superior izquierda.
0 % 0 %, 30px.
Si lo quisiramos en las coordenadas 20,30 (tomando como el origen a la esquina superior izquierda), escribiramos Si queremos el fondo centrado, pues
50 % 50 %.
20px
Podemos omitir alguna propiedad si queremos. Adems, podemos establecer los valores de forma individual, usando las propiedades
background-color, background-repeat,
etc.
/* slo color de fondo */ body { background : # fff ; } /* color de fondo e imagen en mosaico */ body { background : # fff url ( fondo . gif ); } /* imagen fija , centrada y sin repetir */ /* a modo de marca de agua */ body {
1 En
este caso, si podemos usar palabras, es preferible que lo hagamos. Disponemos de
top
(arriba),
bottom
(abajo),
left
(izquierda) y
right
(derecha).
10.3. FUENTE
57
background - color : # fff ; background - image : url ( fondo . gif ); background - attachment : fixed ; background - repeat : no - repeat ; background - position : 50 % 50 %;
Hemos explicado de forma bastante detallada cmo funciona la
propiedad
background,
2
10.3.
Fuente
Hay varias propiedades que nos permiten jugar con el aspecto del texto. Podemos englobar todas bajo mos algunas subpropiedades. Antes de nada, debemos considerar que no todos los ordenadores tienen las mismas fuentes instaladas. Es decir, que mi wonderfulosa fuente llamada
font,
chachi.ttf
nerla mi vecino. Es ms, lo normal es que no la tenga . Entonces qu hacemos? Usar slo fuentes estndar, que tengan la mayora de ordenadores. Adems, podemos especicar varias, de forma que si no se tiene la primera, se muestre la segunda, si no se tiene la segunda, pues la tercera, etc. es A lo que bamos. La propiedad que sirve para cambiar la fuente Como acabamos de ver, podemos indicar varias
font-family.
fuentes, por orden de preferencia. Si el nombre de una fuente tiene espacios en blanco, hay que ponerla entre comillas. Por ejemplo :
font-size.
5
Pode-
2 Recuerdas ese librito majo de 359 pginas? 3 La Ley de Murphy, como en cualquier otro aspecto
al diseo web tambin.
de la vida, es aplicable
4 Haz
esto y muere. La irrupcin de la Comic Sans por doquier slo es cochina. Podemos (y mucha gente opina que debemos ) usar me-
5 Mentira
didas relativas, pero el tema de la herencia es muy importante en estos casos y. . . Dejmoslo en que no es newbie-friendly.
58
CAPTULO 10.
Para
los valores
justify
text-align, que puede tomar right (derehca), left (izquierda), center (centrado) o
p { text - indent : 2 em ; }
Qu signica
trabajar con pxeles o porcentajes, pero en algunos casos conviene utilizar otras unidades.
si por herencia o por cualquier otra cosa el texto se muestra en un tamao de fuente diferente, la proporcin de indentado sera siempre la misma. Si pusiramos el tamao de la fuente fuera de esa, aunque
text-decoration. Puede tomar diversos valores, como none (sin 8 adornos), underline (subrayado) , overline (subrayado superior) o line-through (tachado). Si queremos que nuestros links no tengan subrayado, pondremos:
text-transform. Si ponemos lowercase, todo se mostrar minsculas; con uppercase, en maysculas; y con capitalize
En cuanto al letras,
Podemos
letter-spacing; <strong>:
y para
7 Bueno, exactamente equivale a la anchura de la letra M mayscula. 8 Cuidado! Los humanos tenemos la estpida mana de pensar que cualquier
10.3. FUENTE
59
Demasiada informacin? S, pero ten en cuenta que no hay que memorizar todo esto. Ni de coa. Lo importante es saber que
Captulo 11
El modelo de caja
11.1.
En realidad, todos los elementos de una web (prrafos, enlaces, imgenes, tablas, etc.) son para maquetar la pgina. Hay dos tipos de cajas:
block e inline. Los elementos block inline siguen el ujo, y estn block (no podemos
rompen el ujo de maquetacin. Esto es, aparecen solos, insertando saltos de lnea. Los elementos contenidos dentro de elementos de bloque. Por ejemplo, un prrafo sera un elemento aparecern uno mento
tener un prrafo al lado del otro, sino que dos prrafos seguidos
abajo del otro. En cambio, un enlace es un eleinline, ya que no corta el texto donde est metido.
61
62
CAPTULO 11.
EL MODELO DE CAJA
Estas dos diferencias son importantes, pero hay que tener en mente que ambos tipos comparten el modelo de caja, que es el que aparece en la gura 11.1. Las propiedades ms importantes de una caja son: cho),
height
(alto),
padding
(relleno),
border
width
(an-
(borde) y
margin
(margen).
11.2.
Ancho y alto
La propiedad
po era horroroso trabajar con ella debido a que Ya-Sabes-Quin no la implementaba correctamente . Afortunadamente, desde la versin 6 del IE,
width
width representa el ancho de la caja. Pero ancho interior, es decir, si bordes, mrgenes, ni padding.
inline tienen
Podemos indicar este ancho en medidas absolutas (normalmente pxeles) o relativas (normalmente %). Aunque los elementos
width,
si la modicamos
con CSS no veremos ningn resultado visual. Esto es porque el ancho de estos elementos se establece automticamente para que se ajuste a las dimensiones del elemento inline. Por ejemplo, si
1 Lo
chullo ms bonito para sortear el bug. Si ests interesado, googlea buscando box model hack.
11.3. PADDING
63
tenemos un enlace que consiste en un texto de cinco caracteres, caracteres. Sobre el aqu.
height,
11.3.
Con
Padding
padding
establecemos la distancia de
relleno entre el
lmite interior de la caja y el exterior (borde). Es una denicin muy mala, pero se entiende a la perfeccin en el dibujito. Si queremos poner un padding de 20 pxeles para toda la caja, lo haramos as:
padding : 20 px ;
Podemos establecer un padding distinto para cada lado, usando los sujos
right
-top
(superior),
-bottom
(inferior),
left
(izquierda) y
(derecha):
padding : 10 px 20 px 5 px 30 px ;
Otro atajo til es especicar slo dos medidas: una corresponderan al padding superior e inferior, y la otra al lateral. Si queremos que los paddings superior e inferior sean de 10 pxeles, y los laterales (izquierdo y derecho) de 20 pxeles, escribimos:
padding : 10 px 20 px ;
11.4. Bordes
border.
64
CAPTULO 11.
EL MODELO DE CAJA
width
especica el
Normalmente es una medida en pxeles, pero tambin podemos Por supuesto, cmo de gordo es En cuanto a
thin (no), medium (normal) y thick (grueso). thick queda a interpretacin del
style, es el tipo de borde. Hay bastantes, pero los solid (lnea continua), dashed (lnea discontinua), dotted (lnea de puntos) y double (lnea continua doble). 2 Por ltimo, color indica el color del borde .
ms comunes son: Podemos escoger un tipo de borde diferente para cada lado con los sujos que algo tenga el borde inferior de 1 pxel a puntitos rojos:
none.
portante con las imgenes, ya que si tenemos una imagen enlazando a algo, los navegadores la ponen con un reborde muy feo. As que esto se ha convertido ya en un jo de las hojas de estilos:
11.5.
Los
Mrgenes
mrgenes se controlan con la propiedad
margin,
y es la
padding,
En cuanto a la forma de usarla, es igual que con la propiedad as que la forma de escribir y los atajos es exactamente
la misma. Por ejemplo, si queremos mrgenes superior e inferior de 20 pxeles, y laterales de 5 pxeles:
margin : 20 px 5 px ;
Truco del almendruco! Para
auto:
margin : 0 px auto ;
2 Wow!
11.6. CAPAS
65
11.6.
Capas
Vamos a hablar de una etiqueta XHTML que nos qued por ver y est estrechamente ligada con CSS: encarga de crear una
<div>.
Esta etiqueta se
de contenedor a otros elementos de bloque e inline. Para qu nos sirven? Primero, para organizar
id
< div id = " header " > < h1 > Mi blog </ h1 > < ul id = " menu " > < li > <a href = " ... " title = " ... " > Principal </ a > </ li > < li > <a href = " ... " title = " ... " > Acerca de </ a > </ li > < li > <a href = " ... " title = " ... " > Enlaces </ a > </ li > </ ul > </ div >
El otro uso de las capas es el de
layout tpico de un blog tiene cuatro capas: la cabecera, la del contenido principal, la de la barra lateral as conseguir el diseo que queramos. Mediante CSS, podemos controlar la disposicin de estas capas, y
11.7.
Los
Floats
oats son probablemente una de las cosas que ms cuesta
dominar. En ingls los calican como tricky . Yo los calico como pequeos cabroncetes. Lo que hacen los
crustando en l un elemento de bloque. El ejemplo ms tpico es el de si queremos poner una imagen acompaando a un texto, y que el texto envuelva a la imagen. Esto lo conseguimos creando una clase como la siguiente:
. izquierda {
3 Ojo! 4 Muy
Cabecera en cuanto a maquetacin. No tiene nada que ver con la til y socorrida para poner pijadas, como la wishlist de Amazon. Y etiqueta head! si cuela, cuela.
66
CAPTULO 11.
EL MODELO DE CAJA
float : left ;
Podemos indicar tanto
Fcil, rpido y para toda la familia? No. Despus de un oat, suelen ocurrir desaparecer mediante la propiedad (que signica ambos).
left, right
both
Volviendo al ejemplo de layouts de blogs, lo normal es poner el contenido y la barra lateral mediante oats. Lo que suele pasar es que una de estas dos columnas pasa por encima del pie de pgina, en lugar de quedar el pie al nal de todo. Esto se suele arreglar as:
5 Ya
Captulo 12
Algunos truquitos
A partir de ahora, los captulos de CSS sern totalmente prcticos. Este primero mostrar diferentes trucos para conseguir ciertas cosas. Asegrate de probarlos y de comprender todos ellos antes de continuar.
12.1.
(cuando pasamos el cursor del ratn por encima), Estos estados se corresponden a
cambiar la apariencia de los enlaces con CSS. Sin embargo, algunos navegadores tienen un bug que, dependiendo del orden en el que escribamos las reglas, se mostrar el resultado correctamente o no. Cmo lo solucionamos? Pues
LoVe/HAte. Es un mnemotcnico
que nos ayudar a recordar el orden en el que estas reglas funcionan bien en cualquier navegador. Quedara as:
68
CAPTULO 12.
ALGUNOS TRUQUITOS
color : #00 a ;
/* visitados */ a : visited { color : # a00 ; } /* hover */ a : hover { text - decoration : underline ; } /* activos */ a : active { font - weight : bold ; }
Lo que hace el cdigo anterior es poner los enlaces de color azul marino y sin subrayado. Cuando pasamos el cursor por encima, aparece el subrayado. Al hacer clic, el texto del enlace se pone en negrita. Los enlaces que ya hemos visitado aparecen de color granate. Fcil, no?
12.2.
Al usar la propiedad
text-decoration,
el color de la lnea de
subrayado es el mismo que el del texto del enlace. Podemos hacer un pequeo chanchullo para cambiar esto, y es y poner en su lugar un
quitar el subrayado
borde:
a { color : # fff ; text - decoration : none ; border - bottom : 1 px solid # f0c ; } a : hover { border : none ; }
69
Esto hara que los enlaces fueran de color blanco, y que la lnea de subrayado fuese fucsia. Al pasar el cursor por encima, se eliminara el subrayado. El pseudoelemento to de la web . No dudes en usarlo en celdas de tablas o capas.
12.3.
rio con fuente gigante y que el fondo del campo cambie cuando
el usuario est usndolo. Esto se consigue con el pseudoelemento
focus:
input , textarea { font - size : large ; border : 3 px solid #70 C332 ; color : #666; background : # fff ; } input : focus , text - area : focus { background : # eee ; }
Lo anterior pondra los campos de formulario
input y textarea
con una fuente grande y gris oscura, borde gordito de color verde y el fondo blanco. Al hacer foco (es decir, cuando el visitante est situado en ese campo), el fondo cambia a un color gris clarito.
12.4.
Blockquotes 2.0
blockquotes con texto gigante y
unas comillas gigantes. Quizs es algo difcil de imaginar con esta descripcin, pero si echas un vistazo a la gura 12.1, seguro que ya lo has visto en algn sitio antes. Un ejemplo de cdigo podra ser este:
blockquote {
1A 2 Es
no ser que uses una versin antigua de un navegador subdesarrolladecir, pijo. do. . . S, ese.
70
CAPTULO 12.
ALGUNOS TRUQUITOS
background : url ( comillas . gif ) top left ; background - repeat : no - repeat ; text - indent : 30 px ; text - align : left ; font - size : x - large ; padding : 0 px
Tendrs que ajustar los valores segn la fuente y la imagen en
12.5.
Muchas veces, especialmente en headings, queremos cambiar el texto y en su lugar que aparezca una imagen bonita. Un ejemplo del cdigo sera este (suponiendo que nuestra imagen mide 300x100 pxeles):
<! -- XHTML -- > < h3 id = " enlaces " > < span > Enlaces </ span > </ h3 > /* CSS */ h3 # enlaces { width : 300 px ; height : 100 px ; padding : 0 px ; background : url ( links . png ) top left no - repeat ; } h3 span { visibility : hidden ;
71
}
La etiqueta
span
Es una etiqueta vaca, y slo la usamos para conseguir ciertos efectos CSS. Como semnticamente no tiene ningn valor, hemos de evitar su uso todo lo posible. Lo que hace el cdigo anterior es hacer coincidir las dimensiones de
<h1>
<span>
nos
invisible. No obstante,
aunque el texto sea invisible, todava existe. Por eso, si el ttulo es muy largo, es posible que sea ms grande que la imagen que usamos de fondo, y es posible que nos descoloque el layout. En este caso, puedes cambiar la fuente de
<h1>
y hacerla enana.
Captulo 13
Layout tableless a dos columnas
La frase cientca ms excitante, la que precede a grandes descubrimientos, no es Eureka!, sino Qu raro.
Isaac Asimov, bioqumico y escritor
En este captulo veremos cmo crear un layout sin tablas a dos columnas, muy tpico en los blogs. Es bastante sencillo de seguir, y es un ejemplo de que dejar de usar tablas para maquetar no tiene por qu ser un proceso doloroso.
13.1.
Caractersticas
Esta maquetacin tiene las siguientes propiedades: Anchura ja Centrado 2 columnas (una de ellas de barra lateral) Cabecera (header ) Pie de pgina (footer ) Puedes echarle una ojeada en la gura 13.1. 73
74 CAPTULO 13.
13.2.
Cdigo XHTML
El esqueleto del cdigo XHTML de nuestra pgina es el siguiente (ira dentro del
<body>):
< div id = " container " > < div id = " header " > < h1 > Ttulo </ h1 > < h2 > Subttulo </ h2 > </ div > < div id = " sidebar " > < h3 > Seccin </ h3 > <p > Bla bla ... </ p > </ div > < div id = " main " > < h3 > Seccin </ h3 > <p > Contenido principal </ p > </ div > < div id = " footer " > <p > Pie de pgina </ p > </ div >
13.3. #CONTAINER
75
13.3.
#container
contenedor para el resto de la pgina. Esta-
auto
dentro de en el
margin
text-align: center
body.
body { text - align : center ; } # container { width : 700 px ; margin : 0 px auto ; text - align : left ; }
13.4. #sidebar
barra lateral tan famosa en los blogs. En otras
Esta es la
pginas web, podemos poner ah mens, publi, o cualquier otra cosa. La clave en esta capa es usar el cdigo:
float: left,
que la sita a la
padding
ancho en pxeles. Ah, con este mtodo la barra no se extender hasta abajo, sino que se corta en su nal (esto se ve
76 CAPTULO 13.
bien en la gura 13.1). Si pones la barra de otro color, y quieres que llegue hasta abajo, puedes usar la tcnica de
Faux Columns1 .
13.5.
#main
contenido (en un blog, esto seran
#container
margin-left
sando por encima de la barra lateral. Nuestra barra lateral tiene 200 pxeles de ancho y 10 pxeles de padding a la izquierda y a la derecha. Si hacemos memoria del
modelo de caja, el margen izquierdo que tenemos que indicar seran 200 + 10 + 10 + X, donde X es la cantidad que nosotros
queremos dejar de separacin entre la barra lateral y el contenido principal. Para el ejemplo, pondremos 5 pxeles:
La capa del
de copyright/copyleft
Aqu nicamente hemos de tener cuidado de anular el que tiene la barra lateral mediante un
clear:
oat
1 http://www.alistapart.com/articles/fauxcolumns/
la columna.
Es un chanchullo sen-
cillo e ingenioso. Bsicamente consiste en poner una imagen de fondo que simule
2 Recordad, chicos, las licencias Creative Commons son buenas para la salud
y para el karma.
Captulo 14
Cabeceras
Una de las cosas muy tiles que se han puesto de moda, es hacer que la cabecera de una web sea a su vez un enlace hacia la seccin principal de una web. El hecho de que si nos perdemos tengamos un enlace bien gordo arriba del todo, es un salvavidas.
14.1.
Cdigo XHTML
cambiaremos por una imagen. Como queremos adems meterle un link, tambin usaremos la etiqueta una etiqueta
<span>
slo se vea la imagen que har de cabecera. . . pero nos estamos adelantando. El cdigo XHTML sera este:
< div id = " header " > < h1 > <a href = " ... " title = " ... " > < span > Ttulo </ span > </ a > </ h1 > </ div >
77
78
CAPTULO 14.
CABECERAS
14.2.
#header
#header. Establecemos el
# header { background : url ( bg . png ) top left no - repeat ; width : 400 px ; height : 100 px ; margin : 0 px ; padding : 0 px ;
14.3.
El heading
<h1>
(para que
<span>,
14.4.
El enlace
en lo que sera el texto (invisible) del enlace. Para eso, tenemos que transformar el enlace en un medidas de la imagen. Adems, hemos de quitar los mrgenes y el padding, as como la decoracin del texto, para que no salga una lnea de subrayado:
14.4. EL ENLACE
79
porado.
Captulo 15
Listas personalizadas
Ahora vamos a aprender cmo modicar las listas desordenadas para que tengan vietas personalizadas. Para ello, necesitaremos una imagen pequeita que haga de vieta. En Internet hay muchsimas para descargar, aunque puedes dibujar las tuyas propias. Supondremos que la imagen se llama
bullet.png.
15.1.
Cdigo XHTML
< ul > < li > Sonata Arctica </ li > < li > Nightwish </ li > < li > HIM </ li > </ ul >
15.2. La lista
list-style-image,
82
CAPTULO 15.
LISTAS PERSONALIZADAS
ul
sera:
list-style-type: none,
que se en-
carga de quitar esas vietas feas que pone el navegador por defecto.
padding
y el
margin
15.3.
Los tems
Ya slo queda poner nuestra vieta! Para ello, modicamos el estilo de los
li
ul li { padding - left : 12 px ; background : url ( bullet . png ) 0 em 0.5 em no - repeat ; margin - bottom : 1 em ; }
Lo primero que vemos es el padding por la izquierda. Esto no es el sangrado, es una distancia de relleno que ponemos para que el texto del tem no est encima de la vieta. Este valor lo tienes que modicar dependiendo de las dimensiones de la imagen de tu vieta. Despus, nos encontramos con la propiedad
background.
Des-
pus de establecer la imagen, debemos indicar en qu eta. Aqu hay truco! Como ves, trabajamos con
posicin
em y no con
medidas absolutas en pxeles. Por qu? Porque as nos vale para cualquier tamao del texto . Lgicamente, es muy difcil dar con el valor correcto a la primera, as que habr que probar varias veces hasta topar con el que mejor quede. Ah, no se nos puede olvidar el
no-repeat
para evitar el
Por ltimo,
margin-bottom
mosaico.
se encarga de establecer la
sepa-
83
Captulo 16
Mens verticales
Dije que era un adicto. No dije que tena un problema. House M.D.
Greg House, mdico
de elementos relacionados, y lo ms semntico que podemos hacer es meterlo en una lista. El principal problema es que las listas son feas. En el captulo anterior vimos cmo hacerlas ms bonitas, pero quizs queramos algo un poco ms diferente para nuestro men. CSS nos da la solucin, as que ya no tendrs excusa para hacer un men en Flash . En el men que haremos ahora, hacemos apaos con los colores de fondo y los bordes para conseguir efectos cuando el ratn pase por encima. Puedes ver cmo quedara en la gura 16.1. Como va con CSS, podramos fcilmente incorporar imgenes, pero eso queda como ejercicio .
1 Que, 2 No
instalado el plugin de Flash (nunca des por supuesto que el vistante tenga instalado un plugin), ni siquiera podr navegar por tu pgina. tiene gracia si te lo dan todo mascadito.
85
86
CAPTULO 16.
MENS VERTICALES
16.1.
Cdigo XHTML
< div id = " menu " > < ul > < li > <a href = " ... " < li > <a href = " ... " < li > <a href = " ... " < li > <a href = " ... " </ ul > </ div >
title = " ... " > Home </ a > </ li > title = " ... " > Archivos </ a > </ li > title = " ... " > Enlaces </ a > </ li > title = " ... " > Acerca de </ a > </ li >
16.2.
La lista
anchura que queramos a la lista (que ser la anchura del men), poner una fuente maja y quitar las vietas y mrgenes de la
lista.
# menu ul { list - style - type : none ; margin : 0 px ; padding : 0 px ; width : 200 px ; font - family : Arial , sans - serif ; font - size : 11 pt ; }
16.3. ENLACES
87
Ponemos a continuacin un
hover, para
que se activen cuando el ratn pase por encima de todo el bloque, no slo del texto del enlace; pero Quien-T-Sabes en sus versiones 6 e inferiores no soporta hovers en cosas que no sean un enlace, as que vamos a tener que emplear una artimaa ms adelante. Por ahora, el CSS para el elemento
li
sera as de sencillo:
16.3.
3
Enlaces
bloque, y as ocupar
Y aqu viene el chanchullo del que os hablaba antes para hacer el hover : poner el enlace como si fuera un todo el
li
# menu ul li a { color : # ccc ; text - decoration : none ; text - transform : uppercase ; display : block ; padding : 10 px 10 px 10 px 20 px ; }
Slo nos queda hacer los cambios para el
hover:
# menu ul li a : hover { background : #000; border - left : 10 px solid #333; color : # fff ; }
Si lo pruebas, vers que las letras se desplazan al hacer el hover, debido a que aparece el borde izquierdo. Si no os gusta este efecto, podis aadir la lnea siguiente al link cuando est normal. Lo que hace es poner un borde del mismo color que el fondo de los as parece que no existe:
li,
88
CAPTULO 16.
MENS VERTICALES
Merece la pena trastear con esta tcnica, puede dar lugar a mens muy logrados.
Apndice A
Por qu en IE se ve bien y en Firefox se ve mal
Slo hay dos cosas innitas: el Universo y la estupidez humana, y no estoy muy seguro acerca del primero.
Albert Einstein, fsico
en el Explorer se ve bien y en Firefox mal , y me pregunt que a qu podra ser debido. Le di una
haciendo una web, y que respuesta deprisa y corriendo y creo que no me expres bien, as que aqu va la full version. La comparto aqu con vosotros porque seguramente nos esperen muchas ms preguntas de este estilo. La clave para entenderlo bien es darle la vuelta a la tortilla. La realidad es que en IE se ve mal, y en
el resto de los navegadores (no slo Firefox) se ve bien. Pongo bien y mal
entre comillas, porque son apreciaciones que hacemos los humanos, subjetivas. Los navegadores
conectan a la mente del maquetador web e interpretan su voluntad. El maquetador tiene que dejar escrito, detalladamente, el contenido y apariencia de la pgina web: esto se consigue con los lenguajes XHTML y CSS. Estos lenguajes se encuentran bien denidos como
estndar
APNDICE A. 90
se encarga de describir con precisin cmo deben interpretar el XHTML y el CSS los navegadores. Ahora bien, los navegadores no siempre cumplen a pies juntillas lo que dice el W3C. Es ms, cierto navegador
Pongamos un ejemplo cticio: imaginemos que el Explorer confunde los colores rojo y blanco, y los intercambia, debido a un error de programacin (no entraremos a valorar si por descuido o deliberadamente). Es decir, que donde pone
#f00,
#fff
IE lo interpreta como
navegadores interpretan los colores correctamente. Qu pasara si quisiramos hacer una pgina web con fondo blanco? En nuestro cdigo CSS, pondramos algo as. . .
#f00
Lo que ha pasado es que una pgina se ha (a menudo inconscientemente) para rrectamente, pero por
coincide con los deseos del diseador. Un caso real y muy grco de cmo IE visualiza mal las pginas lo podemos encontrar en el
pgina web que construye mediante cdigo estndar y vlido un dibujito de una cara sonriente. Segn lo bien programado que est el navegador, veremos ese dibujo ms o menos bien. Los nicos navegadores mayoritarios que lo muestran correctamente son
(multiplataforma). Firefox se queda a medio camino, pero lo de Internet Explorer clama al cielo. En resumen, lo ms fcil para que una web se vea ms o menos bien en todos los navegadores es podamos para Internet Explorer.
1 Quien-T-Ya-Sabes 2 http://www.webstandards.org/les/acid2/test.html
Apndice B
Migracin rpida a XHTML
Si ya usabas
HTML 4,
puesto que las bases son las mismas. Slo hay que tener en cuenta
se centra en el contenido y en la semntica. En lugar de usar una etiqueque XHTML deja de lado todo aspecto esttico y ta para dar un aspecto concreto, usamos etiquetas para hacer que las palabras signiquen una cosa u otra. Ahora veremos una serie de reglas a seguir para pasarnos a XHTML. Tambin es recomendable leer el captulo 2, donde se explica la estructura de un documento XHTML. Evidentemente, no se muestran aqu todas las diferencias, pero sirve para hacernos una idea de qu es lo que nos espera .
B.1.
Antes era una prctica muy comn escribir las etiquetas en mayscula, para diferenciarlas del cdigo. Por compatibilidad con XML, en XHTML todas las etiquetas deben ir en minsculas.
1 Diego
sobre el tema. Destaca el post titulado 13 pasos para dar el salto . Podis encontrarlo en
www.minid.net
91
92
APNDICE B.
Adems, todos los atributos tienen que estar entre comillas dobles. Por ejemplo, si antes tenamos:
< img src = " icono . gif " alt = " Icono " / >
B.2. Todas las etiquetas se cierran
Con HTML podamos crear prrafos con la etiqueta necesidad de cerrarla con ejemplo. En XHTML
</p>.
rrar.
Lo de ninguna es literal, y etiquetas que no tienen una de cierre, como
<img>, <br>
<br />.
/,
nombre y la barra es necesario para que los navegadores antiguos reconozcan la etiqueta.
B.3.
Hemos dicho que XHTML deja de lado la apariencia del documento, ya que eso es controlado por CSS. Entonces, las etiquetas
<font>
<basefont>
carecen de sentido.
aparecen por este motivo: son sustituidos por reglas CSS. As que
saynara a
B.4.
<em>,
suelen mostrarlas como cursiva y negrita, respectivamente, aunque esto es lo de menos porque podemos cambiarlo con CSS.
93
B.5.
la imagen no se puede cargar (a veces tambin cuando se pasa el cursor del ratn por encima). Hay que utilizarlo siempre. Existe un atributo muy similar llamado la etiqueta
<a>
<a href = " http :// www . google . es " title = " Buscador " > Google </ a >
B.6.
Los block son etiquetas como prrafos, headings, listas, etc. As a ojo los distinguimos porque siempre van solos e insertan saltos de lnea. Los inline no interrumplen el ujo del texto. Son las eti-
incorrecto:
<a href = " .. " title = " ... " > < h1 > Texto </ h1 > </ a >
Hay que hacerlo as:
< h1 > <a href = " ... " title = " ... " > Texto </ a > </ h1 >
Adems, hay ciertas etiquetas que no admiten otras dentro. Si tienes dudas, lo mejor es utilizar el Consortium .
B.7.
Aunque la especicacin XHTML 1.0 Frameset permite el uso de frames (marcos) en una pgina, tanto la Transitional como la
2 http://www.w3c.org
94
APNDICE B.
ni frames ni
inline frames.
De todos modos, aunque se pudieran emplear, no deberamos, ya que los frames son un atentado contra la usabilidad .
B.8.
Antes, la etiqueta
<a>
target
que
permita especicar en qu frame deba cargarse el destino de un link. Como ya no hay frames, este atributo es innecesario. A los amantes del
nuevas les digo que si el visitante quiere abrir un ventanuco nuevo, lo har con el botn derecho del ratn. Y para los que usamos navegacin con pestaas instancias del navegador. Gracias.
B.9.
Aunque puedes crear un documento XHTML con tablas para maquetar que pase el anlisis del validor del W3C, va contra la losofa de dejar XHTML slo para el contenido. Las tablas estn hechas para representar layouts. De todos modos, el paso para un layout
fcil, as que creo que es conveniente familiarizarse primero con el resto de XHTML y CSS, y dejar la maquetacin sin tablas para ms tarde .
B.10.
entities.
3 En
compra.
95
Qu demonios son? Pues la manera que tenemos de insertar caracteres de forma segura . Por ejemplo, el carcter ra
á.
se escribi-
y acaban en punto y coma. Por eso, cuando se leen las URLs que contienen ampersands, hay confusin porque lo que sigue no es una entity. . . As que lo que tenemos que hacer es sustituir el ampersand por su propia entity, que es
&.
http :// alianza . net / p . php ? nick = leia & show = all
Se quedara en:
http :// alianza . net / p . php ? nick = leia & amp ; show = all
Aunque hemos estado hablando de URL's, tambin debemos emplear la entity
7 Es
decir, que se vean cuando usamos una codicacin muy limitada, como
Apndice C
A favor del Unicode
tamao en bits) se asigna a cada carcter. Qu es lo que pasa cuando abrimos un archivo en una codicacin (por ejemplo, la Shift-JIS que es una japonesa) y le decimos que la lea con otra (la ISO 8850-1, de caracteres latinos)? Pues que obtenemos un motn de plo, cuando alguien me enva un trackback distinta a la que uso en el blog. Pero qu pasa si se quiere hacer un documento
smbolos extraos. Esto pasa, por ejem1 con una codicacin multilinge
con distintos alfabetos? Qu pasa si desde una aplicacin quiero leer cualquier documento en cualquier lengua? Para esto existe una Sacado de su web :
1 Los
alguien de otro blog te enlaza al tuyo, si te manda un trackback, aparecer en tu post un comentario con la URL del blog de la otra persona. Es til para saber quin habla sobre cosas que has dicho.
2 http://www.unicode.org
97
98
APNDICE C.
UTF-8
y est bastante extendido en la Red. De hecho, en la blogosfera hispana las dos codicaciones ms usadas son la ISO 8859-1 y la UTf-8. Usar Unicode es bueno y es la codicacin la.
estndar. Usad-