Introducción a HTML y CSS
En este documento podrán encontrar una serie de contenidos básicos sobre Lenguajes de etiquetado o marcado: la tecnología necesaria para comprender como presentan y organizan contenidos los clientes web (Mozilla Firefox, Chrome, etc.).
Esta es información de referencia fundamental que debemos tener a mano para poder gestionar contenidos en la web. Ya sea con sistemas de administración de contenidos o con servicios web.
Un documento HTML tiene dos partes:
head
: declaración del tipo de documento, los estilos, los scripts, el título... Es necesario indicarlo siempre.body
: contenido y estructura de la página<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Curso de HTML y CSS</title>
</head>
<body>
Hola Mundo
</body>
</html>
Un documento HTML está formado por elementos, son la estructura básica de HTML, y proporcionan tanto el contenido como la estructura de la información en la página web:
Ejemplo, el elemento párrafo p
:
<p>Bienvenidos al curso de páginas web.</p>
Todo lo que vemos es el elemento, y está formado por varias partes:
Bienvenidos al curso de páginas web.
.<p>
, de apertura de párrafo, y </p>
, de cierre de párrafo.Otro ejemplo, el elemento enlace a
:
<a href="http://www.google.es">Google.com</a>
Las partes de este elemento son:
Google.com
<a href="http://www.google.es" title="Ir al buscador Google">
href="http://www.google.es"
</a>
Los elementos no tienen que tener todas estas partes siempre, ni etiqueta de cierre, ni atributos necesariamente:
<img src="logo.gif" alt="Logotipo de la Universidad" />
<br />
h1, h2, h3, h4, h5, h6
: encabezados.
Se utilizan como título de un documento o de una sección de éste. Todos los documentos deben tener al menos uno, y se deben utilizar para dar estructura al documento, definiendo sus secciones.
Es muy importante utilizar los encabezados anidándolos correctamente, es decir, después de un h1
siempre va un h2
, no podemos saltar directamente a h3
o h4
:
Mal:h1 → h3 → h2 → h5 → h4
Bien:h1 → h2 → h3 → h3 → h2 → h3 → h4
p
: párrafos.div
: define una sección en la página. Es un elemento muy flexible que se utiliza también para maquetación y diseño.ul
: lista desordenada.ol
: lista ordenada.li
: elemento de lista.Ejemplos de uso, lista desordenada, países que he visitado:
<ul>
<li>España</li>
<li>Portugal</li>
<li>Alemania</li>
</ul>
Lista ordenada, clasificación de la liga de fútbol profesional:
<ol>
<li>F.C. Barcelona</li>
<li>Real Madrid</li>
<li>Valencia</li>
</ol>
a
: enlace. Siempre se utiliza con el atributo href
que veremos en la siguiente sección.em
: enfatiza texto.strong
: enfatiza el texto más fuertemente.span
: define una sección diferente en un texto
lineal, para representar algo que queremos distinguir por algún motivo,
como un texto destacado, o incluso un teléfono o una dirección.
Ejemplo de uso:
Puedes contactar con nosotros en el <span class="tel">900 100 100</span> y también en <span class="email">informacion@um.es</span> si tienes <span class="destacado">cualquier</span> duda.
img
: imágenes. Para conseguir páginas accesibles, es importante especificar el atributo alt
con un texto descriptivo, que aparecerá cuando la imagen no pueda mostrarse.object
: elemento para insertar cualquier objeto enriquecido, tanto para un objeto flash:
<object data="movie.swf"
type="application/x-shockwave-flash"
width="200" height="100">
<param name="movie" value="movie.swf">
<param name="wmode" value="opaque">
Vídeo promocional de la película
</object>
Como para una imagen:
<object data="perro-gigante.jpg"
Foto del dogo argentino
</object>
Por ahora, para las imágenes está recomendado el elemento img
, que tiene mejor soporte en los navegadores actuales que object
. Como veis, dentro del elemento object
ponemos un texto descriptivo del multimedia que hemos insertado. Es el equivalente al texto alternativo de img
y sólo se verá en caso de que el objeto no pueda cargarse. En este
caso, podemos incluir HTML como texto alternativo, podemos poner
imágenes, enlaces... dentro de object
.
Incluso puede utilizarse para insertar otra página, en lugar del elemento frame
o iframe
:
<object type="text/html" data="iframe.html"></object>
Sin embargo, Internet Explorer no interpreta este código correctamente, tendríamos que seguir usando frame
o iframe
.
Los atributos definen propiedades de un elemento añadiendo significado o funcionalidad.
Su estructura es la siguiente: nombre-del-atributo="valor-del-atributo"
, como por ejemplo: href="http://google.es"
.
Hay elementos que no necesitan ningún atributo para tener todo su significado, como por ejemplo un encabezado h1
o un párrafo p
.
Pero hay otros elementos que sí necesitan atributos para tener significado o para cumplir su función adecuadamente:
a
siempre necesita el atributo href
que indica la dirección de la página web a la que lleva el enlaceimg
necesita el atributo src
que indica la ruta donde está la imagen que queremos mostrar, y el atributo alt
que especifica una descripción de la imagen si por algún motivo no puede verse.También hay algunos atributos genéricos, que pueden usarse con cualquier elemento HTML. Veremos algunos de los más importantes:
id
Atributo que sirve para identificar de manera única a un elemento en el documento. No se puede repetir en una página.
Con este atributo id
podremos hacer referencia al
elemento que lo tiene desde una hoja de estilo CSS para darle un diseño,
o desde javascript para que tenga un comportamiento concreto.
Sirve también para definir anclas con enlaces. Por ejemplo, si tenemos un encabezado con id="inicio"
:
<h1 id="inicio">Bienvenidos al curso</h1>
Podemos crear un enlace para desplazarnos hacia ese encabezado al hacer click:
<a href="#inicio" title="Volver al inicio de la página">↑ subir</a>
Así funcionan por ejemplo los enlaces para volver al índice del tema en esta página web:
<p class="nav"><a href="#index">↑ volver al índice</a></p>
Importante: los valores del atributo id
no pueden contener caracteres especiales (ñ, tildes...) y no pueden empezar por número, aunque sí contenerlos en otras posiciones.
class
Atributo que sirve para identificar un elemento en el documento, pero no de forma única. En la práctica, se utiliza también para dar diseño a los elementos con estilo CSS, o para darles un comportamiento con javascript.
Puede aplicarse a varios elementos en el mismo documento:
<a class="navegacion">ir a la portada</a>
<a class="navegacion">ir a la sección anterior</a>
La forma correcta de usarlo es darle un significado por su contenido, no por el estilo que le vamos a dar:
Mal:<div class="fondorojo">
Bien:<div class="destacado">
Para el mismo elemento, pueden aplicarse varias clases, su efecto será sumativo, es decir, se aplicarán los estilos definidos en todas las clases aplicadas:
<div class="articulo destacado reciente"></div>
Así el contenido de este div
tendrá los estilos y propiedades de comportamiento que definamos para articulo
, para destacado
y también para reciente
.
Importante: los valores del atributo class
no pueden contener caracteres especiales (ñ, tildes...) y no pueden empezar por número, aunque sí contenerlos en otras posiciones.
title
Proporciona información adicional sobre un elemento, que aparece como un texto de ayuda al poner el ratón sobre él.
Por ejemplo, en un enlace, puede dar más información sobre el sitio web de destino aparte del que aparece en el propio texto del enlace.
En acrónimos y abreviaturas es muy importante ya que indica el significado literal:
<acronym title="Personal de Administración y Servicios>PAS</acronym>
Importante: a diferencia de los anteriores, los valores del atributo title
sí pueden contener caracteres especiales (ñ, tildes...) y sí pueden empezar por número, aunque sí contenerlos en otras posiciones.
lang
Indica el idioma en el que está escrito el elemento, es útil para indicar cambios en el idioma dentro de un documento.
<p>Y como decían en su novela favorita:</p>
<blockquote lang="en" >And with a certain <span lang="fr">je ne sais quoi</span>, she
entered both the room, and his life, forever.</blockquote>
En los enlaces también disponemos del atributo hreflang
que sirve para indicar el idioma en el que está la página a la que
lleva el enlace, si es diferente del de la página en la que estamos.
Importante: los valores de estos atributos deben corresponder con los códigos de lenguajes ISO 639-1.
Las tablas son una estructura formada por varios elementos que sirven para representar conjuntos de datos en filas y columnas, y nunca deben utilizarse para diseñar o maquetar un documento.
Los elementos que se usan para definir una tabla son los siguientes:
table
: cuerpo de la tabla.tr
: una fila de tabla.td
: una celda de datos.th
: una celda de encabezado de columna.thead, tfoot
: recogen las filas con los encabezados
de la tabla, tanto en la parte superior como en la inferior si queremos
ponerlos en tablas grandes.tbody
: recoge las filas con celdas de datos.caption
: encabezado de la tabla: sería el equivalente al título.Algunos de los atributos más comunes que se usan en las tablas son:
scope
: permite especificar el alcance de un encabezado, si pertenece a una fila o a una columna.headers
: junto con el atributo id
, permite relacionar una columna con el encabezado que le corresponde, para tablas con varias columnas por encabezado.summary
: es un atributo del elemento table
que se utiliza para indicar un resumen del contenido de la tabla.Una vez que hemos trabajado con la estructura y contenido, vamos a ver cómo aplicar estilos que definan el aspecto de la página web.
Se puede aplicar estilo a un documento de varias formas:
style
:
Mal:<p border="2px">
Bien:<p style="border:2px solid #000;">
Esto es recomendable sólo en casos muy puntuales, lo normal es poner el estilo en un archivo aparte o al menos en la cabecera del documento, y con el atributo class
(si vamos a usar un estilo para varios elementos) o id
(para distinguir un elemento únicamente) dar los estilos deseados.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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>Plantilla XHTML</title>
<style>
body {
font:1.0em Arial, Helvetica, sans-serif;
background:#fff;
margin:50px;
}
</style>
</head>
<body>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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>Plantilla XHTML</title>
<link rel="stylesheet" type="text/css" href="estilo.css" media="all" />
</head>
<body>
</body>
</html>
Observad que en la zona head
está el elemento link
con la referencia a la hoja de estilo. Además, hay un atributo más llamado media
. Este atributo indica para qué tipo de medio se utilizará la hoja de estilo enlazada. Este atributo puede tomar varios valores:
En CSS tenemos dos tipos fundamentales de unidades de medida:
¿Cómo indicar el estilo que quieres dar a un elemento en la hoja de estilo externa? por ejemplo a un enlace a
ponerle color rojo, utilizaremos el siguiente código en una hoja de estilo:
a {
color:#f00;
}
Para aplicar el mismo estilo a varios elementos, podemos indicarlos separados por comas:
a, em, strong {
color:#f00;
}
Este código hará que tanto los enlaces a
, como los elementos de énfasis em
y los strong
aparezcan en color rojo.
Para dar estilo a un elemento que esté dentro de otro, se ponen juntos, separados sólo por un espacio. Por ejemplo, para el siguiente código:
<div>Dentro de un div podemos poner cualquier cosa</div>
<p>Párrafos</p>
<blockquote>
blockquotes...
<p>aquí también puede haber párrafos</p>
</blockquote>
<ul>
<li>
Y aquí también...
<p>Párrafos</p>
</li>
</ul>
Y este CSS:
li p {
color:#f00;
}
blockquote p {
font-size:150%;
}
Los p
que estén dentro de un li
serán rojos, y los que estén dentro de un blockquote
tendrán el tamaño de fuente más grande. Esta forma de hacer referencia a los elementos podemos usarla por la cascada de los documentos, gracias a la estructura que nos da HTML, y nos permitirá ahorrar mucho en clases y en id
y tener un código más sencillo.
class
Para dar estilo a los elementos que hemos identificado con el atributo class
:
<h1 class="navegacion">Bienvenidos al curso</h1>
<p class="navegacion">Bienvenidos al curso</p>
Haremos referencia con . (punto) de la siguiente forma:
.navegacion {
text-decoration:underline;
}
Este código hará que cualquier elemento con el atributo class
igual a "navegacion" esté subrayado.
h1.navegacion {
text-decoration:underline;
}
Este código hará que sólo los h1 con el atributo class
igual a "navegacion" estén subrayados, pero no otros.
Las clases se pueden combinar, aplicar varias al mismo elemento, y sus propiedades se acumularán, prevaleciendo las de la clase que se indique en último lugar:
<p class="navegacion previo">» anterior</p>
.navegacion {
font-weight:bold;
color:#f00;
}
.previo {
text-align:left;
}
Con este código, el párrafo con las clases "navegación" y "previo", tendrá la fuente en negrita y el color rojo, que se los da la clase "navegacion", y también el texto alineado a la izquierda, que lo da la clase "previo".
id
Para dar estilo a un elemento con id
en CSS, se utiliza # (almohadilla):
<h1 id="logotipo">Universidad</h1>
#logotipo {
font-size:180%;
}
Funciona igual que class
, salvo en que, como ya hemos dicho, sólo puede haber uno por documento, y además no puede tener varios valores.
Hay que tener cuidado con el abuso de las clases e id
, y usar la cascada para las referencias, con esto ahorraremos mucho código:
Mal:<div class="navegacion">
<h1 class="titulo_menu">
<ul class="menu">
<li class="item">Inicio</li>
<li class="item">Opciones</li>
<li class="item">Salir</li>
</ul>
</div>
.navegacion { ... }
.titulo_menu { ... }
.menu { ... }
.item { ... }
Con este código podemos dar estilo a cada clase y así definir el aspecto de un menú de navegación como podemos encontrarnos muy frecuentemente. No es que esté mal, pero también podemos hacerlo con menos código, más sencillo y será menos probable equivocarnos:
Bien:<div class="navegacion">
<h1>
<ul>
<li>Inicio</li>
<li>Opciones</li>
<li>Salir</li>
</ul>
</div>
Y el CSS:
.navegacion { ... }
.navegacion h1 { ... }
.navegacion ul { ... }
.navegacion li { ... }
id
o class
?En el siguiente código, ¿qué color prevalece?
<h1 id="logotipo" class="navegacion">Universidad</h1>
#logotipo {
color:#f00;
}
.navegacion {
color:#00f;
}
En este caso, el color que prevalece es #f00
porque id
es más específico, en caso de que las propiedades no se sobreescribieran, se aplicarían todas:
#logotipo {
color:#f00;
}
.navegacion {
font-weight:bold;
}
En este caso el texto sería de color #f00
y también negrita.
También hay que tener en cuenta que si declaramos varias veces una propiedad para un elemento en la hoja de estilo, prevalecerá la última que se haya declarado.
Cuando definimos una propiedad para un elemento, dependiendo de la propiedad (y también del elemento), ésta se hereda o no. Esto quiere decir que si, por ejemplo, definimos el color de fuente para un div
, lo que vaya dentro tendrá también el mismo color, a menos que indiquemos otro.
Hay propiedades que se heredan y otras que no, la forma más fácil de familiarizarse con esto es la práctica.
Todos los elementos HTML cuando se muestran en pantalla forman un rectángulo, una caja que según el tipo de elemento se comportará de una forma u otra:
p
, h1
-h6
, div
...
Los elementos de bloque sólo pueden aparecer dentro de otros elementos
de bloque, y no siempre, hay que respetar cierta jerarquía, por ejemplo,
no podemos meter un div
dentro de un p
.a
, strong
, input
, img
, span
...Con CSS podemos modificar el aspecto de los elementos para hacer que aparezcan como elementos en línea algunos que originalmente son de bloque, y viceversa. Cuando hacemos esto, se dice que los elementos están reemplazados.
Las propiedades de un rectángulo o caja son las siguientes:
Imagen: minid.net
width
.height
La anchura total de un elemento es la suma de la anchura de su contenido (bien definida por la propiedad width
, bien porque el elemento tenga una anchura de por sí, como una imagen u objeto flash), el margin izquierdo y derecho, el border izquierdo y derecho, y el padding izquierdo y derecho. Este es el espacio que ocupará en el documento, hay que saber calcularlo para poder ubicar los elementos donde queramos.
La altura se calcula de la misma forma, pero ojo! hay que tener en cuenta una cosa: los navegadores colapsan los márgenes verticales en los elementos, es decir, si tenemos un p
con margen inferior 10px, y después otro p
con margen superior 15px, en lugar de estar separados por 25px, que
sería lo normal, estarán separados por 15px, el mayor valor de los dos.
Esto no ocurre cuando los elementos tienen las propiedades position:absolute
o float
(las veremos después).
Para más información, se puede consultar la especificación oficial que describe el modelo de caja.
Todos los navegadores tienen una serie de estilos predefinidos que ponen márgenes a los párrafos y listas, negrita al énfasis, unos determinados tamaños a los encabezados... esto hace que los documentos sean legibles también sin estilos, pero puede entorpecernos a la hora de diseñar nuestras hojas de estilo.
Para poder empezar desde cero con nuestras hojas de estilo, podemos usar uno de los muchos códigos de reset que se encuentran en páginas de diseño con estándares. Un ejemplo puede ser este:
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,
fieldset,input,p,blockquote,th,td {
margin:0; padding:0;
}
table {border-collapse:collapse;border-spacing:0;}
fieldset,img {border:0;}
address,caption,cite,code,dfn,em,strong,th,var {
font-style:normal;font-weight:normal;
}
ol,ul {list-style:none;}
caption,th {text-align:left;}
h1,h2,h3,h4,h5,h6 {font-size:100%;}
q:before,q:after {content:”;}
Quita los márgenes, espaciados, tamaños de fuente, negritas, decoración en listas... evitando que se hereden propiedades no deseadas en nuestro diseño.
Veremos las propiedades más comunes de CSS, para más información se puede consultar la referencia de propiedades CSS de HTML Dog, y como referencia más completa pero más esquemática, la chuleta de CSS o la Guía de referencia rápida (en castellano).
position
: indica cómo se posiciona una caja en un documento. Se controla con las situientes propiedades:
top
, bottom
, right
, left
: desplazamiento desde la zona superior, inferior, derecha o izquierda para position
. Puede especificarse en cualquiera de las unidades que hemos visto previamente (píxeles, em, porcentaje...).static
(por defecto): la caja sigue el flujo normal del documento.absolute
: el elemento se posiciona respecto a toda la página, donde digamos.
<div id="absoluta">Texto de ejemplo</div>
#absoluta {
position:absolute;
top:0px;
left:550px;
}
relative
: define un límite o marco para el posicionamiento con absolute
respecto al elemento que tiene la propiedad position:relative
en lugar de respecto a toda la página.
<div id="contenedorrelativo">
<div id="relativa">Texto de ejemplo</div>
</div>
#contenedorrelativo {
position:relative;
}
#relativa {
position:absolute;
bottom:0px;
right:0px;
}
fixed
: funciona como absolute
pero en
lugar de respecto a toda la página, se posiciona en referencia a la
porción visible de la página en la ventana del navegador, con lo que al
utilizar las barras de desplazamieto de éste, no se moverá. Esta
propiedad no está soportada por Internet Explorer 6.
<div id="fija">Texto de ejemplo</div>
#fija {
position:fixed;
top:100px;
left:0px;
}
float
: indica hacia dónde tiene que flotar una caja de anchura determinada, rodeándose del resto de contenido, que se ajustará al hueco que quede (dependiendo de sus propiedades también).
left
: la caja flota hacia la izquierda, y el
contenido se ajusta a ella por la derecha y por debajo. Si ponemos
varias cajas con esta propiedad seguidas, se colocarán a su derecha
mientras la anchura sea suficiente, y debajo cuando sobrepase la línea.
.izq {
float:left;
}
right
: la caja flota hacia la derecha, comportándose de forma similar al anterior, pero posicionándose lo más a la derecha posible.
.der {
float:right;
}
clear
: indica cómo se posiciona una caja situada después de una caja flotante:
none
(por defecto): hace que el contenido de la caja se adapte alrededor de los elementos adyacentes que flotan.left
, right
: el elemento queda por debajo de la caja que flota a la izquierda o derecha, respectivamente.
.clearizq {
clear:left;
}
.clearder {
clear:right;
}
both
: hace que tanto las cajas que flotan a la izquierda como las de la derecha queden por encima de la caja que tiene esta propiedad.
.clearder {
clear:right;
}
display
: indica el modo en el que se muestra una caja. Los valores más utilizados son:
block
: para mostrar el elemento como bloqueinline
: para mostrarlo en líneanone
, para no mostrarlooverflow
: indica cómo debe comportarse un elemento cuando su contenido sobrepasa sus dimensiones, por ejemplo, una cadena de texto demasiado larga para la caja que lo contiene. Los valores más usados son:
visible
(por defecto): el contenido sobrepasa la caja y sale de ellahidden
: no se verá la parte del contenido que sobresaldría de la cajascroll
: aparece en la caja una barra de desplazamiento en el sentido en que el contenido sobrepasa las dimensionesheight
: altura de la caja en cualquiera de las unidades que hemos visto previamente.width
: anchura de la caja en cualquiera de las unidades que hemos visto.Nota: cuando calculamos el tamaño de un elemento para ubicarlo en nuestra maqueta, hay que recordar siempre que la anchura y altura total se calculan según el modelo de caja visto previamente. Tener en cuenta todas las propiedades que suman: margen, padding, bordes y anchura o altura.
margin
: espacio transparente entre un elemento y los que le rodean. Se puede especificar para cada dimensión de la caja:
div {
margin-top:10px;
margin-right:15px;
margin-bottom:0px;
margin-left:25px;
}
También se puede escribir en una sola línea de forma abreviada indicando valor y unidad siguiendo el orden arriba → derecha → abajo → izquierda (en el sentido de las agujas del reloj:
div {
margin:10px 15px 0px 25px;
}
Si los pares de valor arriba - abajo e izquierda - derecha coinciden, se puede abreviar más:
div {
margin-top:10px;
margin-right:20px;
margin-bottom:10px;
margin-left:20px;
}
Equivale a:
div {
margin:10px 20px;
}
Y si todos los valores coinciden, se pueden abreviar más aún:
div {
margin-top:10px;
margin-right:10px;
margin-bottom:10px;
margin-left:10px;
}
Equivale a:
div {
margin:10px;
}
padding
: espacio del color de fondo del elemento entre el borde y el contenido.margin
:
div {
padding-top:10px;
padding-right:15px;
padding-bottom:0px;
padding-left:25px;
}
div {
padding:10px 15px 0px 25px;
}
div {
padding:10px 20px;
}
div {
padding:10px;
}
border
: borde de un elemento.
border-color
: color del borde.border-width
: anchura del borde, en cualquiera de las unidades que hemos visto previamente.border-style
: estilo:
none
: sin borde.solid
: una línea contínua.double
: doble línea contínua.dotted
: línea punteada. Internet Explorer 6 no lo muestra como puntos, sino como guiones, si la anchura es de 1 píxel.dashed
: línea de guiones.border-collapse
: indica si el borde debe estar colapsado, es decir, los bordes de elementos adyacentes aparecen pegados (por ejemplo, en una tabla, para las celdas), con el valor collapsed
. Y con el valor separate
(por defecto), cada celda tiene su propio borde separadodiv {
border-top-width:2px;
border-right-width:5px;
border-bottom-width:1px;
border-left-width:10px;
}
O abreviado en una sola línea:
div {
border-width:2px;
border-style:dotted;
border-color:#00c;
}
Equivale a:
div {
border:2px dotted #00c;
}
font
: hay varias propiedades referentes a las fuentes:
font-family
: tipografía a utilizar. Se deben especificar varias familias por orden de preferencia,
al visitante se le mostrará la primera que tenga instalada, por orden
de izquierda a derecha. Es importante indicar siempre al final serif
o sans-serif
por si el usuario no tiene instalada ninguna de las que hemos definido, que vea la equivalente.font-size
: tamaño, en cualquiera de las unidades que hemos visto previamente.font-weight
: grueso de la fuente. Puede especificarse con una palabra clave, bold
, bolder
, normal
, light
o con unidades numéricas. El aspecto que tendrá el texto dependerá tanto de la tipografía elegida como del tamaño.font-style
: inclinación de la fuente, italic
, oblique
.p {
font:bold 1.2em Verdana, Arial, Helvetica, sans-serif;
}
letter-spacing
, word-spacing
: espacio
entre letras y palabras, respectivamente, en cualquier unidad. Hay que
usarlo con cuidado, pues no todos los navegadores y sistemas operativos
muestran bien las fuentes con espaciado. A veces pueden resultar poco
legibles.text-align
: alineación horizontal del texto en elementos de bloque. En elementos en línea no funcionará aunque se defina.text-decoration
: subrayado, tachado.text-transform
: pasar a mayúsculas, minúsculas, letra capital.line-height
: altura de la línea. Conviene especificarlo en la misma unidad que se defina el tamaño del texto.color
: color del texto. Se puede expresar con los
valores RGB o en hexadecimal. Para los colores con los pares
hexadecimales iguales, podemos abreviar a sólo 3 dígitos:
a {
color:#CC0000;
}
a {
color:#C00;
}
background
: propiedades de fondo de un elemento. El hueco del padding
también muestra este color o imagen.
background-color
: color de fondo, en valores RGB o en hexadecimalbackground-image
: imagen de fondo:
div {
background-image:url("cuadros.png");
}
background-repeat
: cómo se repite la imagen de fondo, para formar un patrón.
repeat
(por defecto): se repite como un mosaico.repeat-x, repeat-y
: hace que la imagen de fondo se repita horizontal o verticalmente.no-repeat
: la imagen no se repite.background-position
: posición de la imagen de fondo,
puede tomar valores numéricos en cualquier unidad de las que hemos
visto previamente, y también podemos usar las palabras clave de
posicionamiento top
, bottom
, left
y right
background-attachment
: con el valor fixed
la imagen se mantendrá en una posición fija respecto al marco de la ventana del navegador.div {
background:#C00 url("cuadros.png") top right no-repeat;
}
Aunque el concepto web 2.0 no es fácil de definir, ni tampoco tan relevante, está claro que ha marcado un antes y un después en el diseño web, y no siempre para bien.
Pueden consultar esta infografía sobre la evolución del diseño web para hacerse una idea de la época a la que se llama web 2.0 en relación al diseño.
¿Qué es HTML5? es una nueva colección de elementos y atributos, que además incluye la mayoría de los que ya conocemos de HTML4 y XHTML. De hecho se puede escribir HTML5 sin usar los elementos nuevos, pero éstos nos darán mayor flexibilidad y nuevas funcionalidades para vídeo, audio, formularios...
¿Qué es CSS3? también es una nueva colección de propiedades CSS, y más, que permite tener más control sobre el aspecto de nuestros sitios web, y además proporciona capacidad de forma nativa para implementar diseños con esquinas redondeadas, sombras en cajas y texto, animaciones más elaboradas, fuentes alojadas en servidor, mayor control sobre los colores...
Las tendencias de diseño recientes, surgidas durante este periodo 2.0, ahora son más fáciles de implementar con la llegada de los nuevos estándares, HTML5 y CSS3, pero todavía no son soportados por todos los navegadores comerciales, y además aún no es recomendación de W3C. Siempre vivimos la misma historia los desarrolladores :-) pero siempre hay que evitar la tentación de usar propiedades no estándar, por ejemplo los prefijos de navegadores para propiedades CSS3 no soportadas.
Aunque los nuevos estándares se salen de los contenidos que planeamos abordar en este curso, os dejamos algunos recursos para que podáis investigar un poco más si os interesa:
Cuando tengamos algo de experiencia, podemos pasar a herramientas que nos facilitarán mucho el trabajo, aunque son algo más complicadas de usar:
Para poder probar nuestras páginas en navegadores antiguos podemos usar simuladores o herramientas de emulación: