Lenguajes de Marcas en Web: HTML y XHTML
Lenguajes de Marcas en Web: HTML y XHTML
Caso práctico
Después de asociarse, María y Félix esperan aumentar el número de clientes
de su negocio teniendo presencia en Internet, para ello hablan con Juan,
técnico superior en Administración de Sistemas Informáticos.
Juan les aconseja desarrollar una sencilla página web para la empresa, cuya
funcionalidad puede ir aumentando a medida que aumenten sus necesidades.
Por lo que el primer paso, será encargárselo a alguien que conozca el lenguaje
HTML.
HTML 2.0 fue la primera versión oficial de HTML. El IETF publicó el estándar en
septiembre de 1995.
HTML 3.2 se publicó el 14 de Enero de 1997, por el W3C. Incorporaba los applets
de Java y texto alrededor de las imágenes.
HTML 4.0 se publicó el 24 de Abril de 1998. Entre las novedades que presentaba se
encontraban las hojas de estilos CSS y la posibilidad de incluir pequeños programas en
las páginas web.
HTML 4.01 se publicó el 24 de diciembre de 1999, como actualización de la versión
anterior. En ese momento el W3C detuvo la actividad de estandarización de HTML
hasta marzo de 2007, momento en que se retoma debido a la fuerza de las empresas
que forman el grupo WHATWG y a la publicación de los borradores de HTML 5.0,
que será la siguiente versión de este lenguaje.
HTML 5 es la versión más avanzada y la que se considera estándar actualmente,
aunque ha ido evolucionando por diferentes especificaciones (HTML 5.1, HTML 5.2 y
HTML 5.3). Es una versión viva en la que se sigue trabajando y su estándar actual
(HTML 5.3) fue definido el 18 de octubre de 2018. Puedes encontrar las
especificaciones de la última versión de HTML en el siguiente enlace.
Uno de los cambios más importantes en HTML 5 es que todo lo relativo a la presentación del
documento se pasa del HTML a las hojas de estilo CSS. Es decir, cuestiones como colores,
fondos, tamaño o posicionamiento se especifican mediante CSS. El HTML se encarga de la
información que se quiere mostrar, su estructura y su semántica. Esto hace que muchos
elementos y atributos de HTML 4 hayan quedado obsoletos (<font>, <center>, align,...).
Caso práctico
Puesto que Juan ha aceptado realizar la página web se plantea el hacerla en
HTML o en XHTML consulta con Marina, trabajadora de su empresa
informática.
Juan opina que es una buena opción, pero que algunos navegadores, a pesar
de ser compatibles con el lenguaje no interpretan los formatos.
El
lenguaje XHTML (EXtensible HyperText Markup Language) es muy similar al lenguaje HTML.
De hecho, no es más que una adaptación de HTML al lenguaje XML.
El lenguaje HTML tiene una sintaxis muy permisiva, por lo que es posible escribir sus
etiquetas y atributos de muchas formas diferentes. Las etiquetas, por ejemplo, pueden
escribirse en mayúsculas, minúsculas e incluso combinando mayúsculas y minúsculas. El
valor de los atributos de las etiquetas se pueden indicar con o sin comillas. Además, el orden
en el que se abrían y cerraban las etiquetas no era importante.
XHTML soluciona estos problemas añadiendo ciertas normas en la forma de escribir las
etiquetas y atributos. Son las normas que vimos en el capítulo 1 para que un fichero XML se
considera bien formado. Así se consigue:
En general, los diseñadores web suelen trabajar con HTML. El XHTML es más apreciado por
los desarrolladores, que aprecian la regularidad adicional. De cualquier manera, los tres
primeros puntos de la anterior lista se consideran una buena práctica y se suelen cumplir
siempre.
Por otro lado, hay que tener en cuenta que los navegadores no procesan HTML y XHTML
exactamente igual. En concreto, en caso de errores para HTML el navegador intentará
mostrar el mayor contenido posible. Pero si el documento se sirve como XHTML (con un tipo
MIME XML), cualquier error de sintaxis causa que no se muestre el documento.
Autoevaluación
La aparición del lenguaje XHTML hace que deje de evolucionar el lenguaje
HTML:
Sí.
No.
Respuesta correcta.
Solución
1. Incorrecto
2. Opción correcta
HTML es permisivo.
No es correcto.
No es la opción correcta.
Correcto.
Incorrecto.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
Caso práctico
Félix pregunta a Juan si existen grandes diferencias entre el XML y el HTML.
Juan le explica que ambos lenguajes tienen origen en otro lenguaje que es el
SGML y que sus diferencias son, principalmente, funcionales ya que la
estructura del documento es semejante.
La estructura de una página HTML ha de ser coherente con la que hemos visto en el tema
anterior para cualquier documento XML. Por ello tendrá un prólogo y un ejemplar.
Prólogo
Todo documento HTML ha de tener una declaración del tipo de documento donde se le
indica al navegador el tipo de documento que se va a iniciar y la versión de HTML utilizada
para la codificación del mismo y, además, le permite interpretarlo correctamente.
Para la versión HTML 4.0, hay tres prólogos distintos que definen tres tipos de documentos
HTML:
HTML 4.0 Frameset. Es una variante de HTML 4.0 Transitional para documentos que usan
<!DOCTYPE html>
Ejemplar
En un documento HTML está delimitado por las etiquetas <html> y </html>. El ejemplar puede, a
su vez dividirse en dos partes:
La cabecera, delimitada por las etiquetas <head> y </head>. Contiene la información sobre
el título de la página, el autor, palabras clave, etc. Dentro de esta sección es obligatorio
definir el título del documento, para ello se usan las etiquetas <title> </title>. Está
información no se presentará en la ventana del navegador, salvo el título, que aparecerá
en la barra de título de la parte superior.
El cuerpo, contiene la información que se va a presentar en la pantalla. Está limitado
por las etiquetas <body> y </body>, salvo en los documentos de tipo HTML 4.0 Frameset donde
éstas se sustituyen por <frameset> y </frameset>.
Autoevaluación
¿Cuál de las siguientes afirmaciones es verdadera?
Incorrecto.
No es la opción correcta.
Correcto.
No es correcto.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
Caso práctico
María, tras escuchar que XML y HTML tienen el mismo origen, se interesa por
si utilizan las mismas etiquetas.
Juan le contesta que en HTML las etiquetas y los atributos están definidos
previamente, mientras que en XML los define el programador.
Al igual que en XML las etiquetas pueden ser de apertura, <etiqueta>, o de cierre,
</etiqueta>. Una de las diferencias con XML es que la cantidad de etiquetas de HTML está
limitada a aquellas que están definidas por el lenguaje.
Aunque HTML define una gran cantidad de etiquetas, estas no son suficientes para crear
páginas complejas ya que la definición completa de ciertos elementos, como las imágenes y
los enlaces, requiere información adicional. Como no es posible crear una etiqueta por cada
elemento diferente, se añade la información adicional a las etiquetas mediante los atributos,
dando lugar a los elementos.
Para cada uno de los atributos hay definido un conjunto de valores que se le puede asignar.
Si el valor de un atributo no es válido, el navegador lo ignora.
Cada una de las etiquetas HTML define los atributos que puede utilizar, aunque algunos de
ellos son comunes a muchas etiquetas.
Autoevaluación
Las etiquetas de HTML, al igual que las de XML, son ilimitadas:
Verdadero.
Falso.
No es correcto.
Correcto.
Solución
1. Incorrecto
2. Opción correcta
Atributos básicos o globales: Se pueden usar en casi todas las etiquetas HTML.
Atributo Descripción
Atributos para internacionalización: Los utilizan las páginas que muestran sus
contenidos en varios idiomas o aquellas que quieren indicar de forma explícita el
idioma de sus contenidos
Atributo Descripción
Indica la dirección del texto por lo que sólo puede tomar dos valores:
dir ltr (left to right) de izquierda a derecha. Es el valor por defecto.
rtl (right to left) de derecha a izquierda.
En las páginas XHTML, el atributo xml:lang tiene más prioridad que lang y es obligatorio
incluirlo siempre que se incluye el atributo lang.
Introducción
Un elemento HTML está formado por:
Según el modo en que ocupan el espacio disponible en la página, los elementos pueden ser
de dos tipos:
Elementos en línea. Sólo ocupan el espacio necesario para mostrar sus contenidos.
Su contenido puede ser texto u otros elementos en línea.
Elementos de bloque. Los elementos de bloque siempre empiezan en una nueva línea
y ocupan todo el espacio disponible hasta el final de la línea, aunque sus contenidos no
lleguen hasta allí. Su contenido puede ser texto, elementos en línea u otros elementos
de bloque.
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <title>Ejemplo de la diferencia entre los elementos en línea
6 y los elementos de bloque
7 </title>
8 </head>
9 <body>
10 <h1>Los encabezados son elementos de bloque.</h1>
11 <p>Y los párrafos también.</p>
12 <a href="#">Los enlaces son elementos de línea</a>
13 <p>Incluso si esta definido dentro de un párrafo, <strong>un texto resaltado
14 </p>
15 </body>
16 </html>
Autoevaluación
Los elementos de línea y de bloque se diferencian en:
Los de línea sólo actúan sobre una línea de texto y los de bloque actúan
sobre más de una línea.
Incorrecto.
No es la respuesta correcta.
Correcto.
No es correcto.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
No es la opción correcta.
No es correcto.
Incorrecto.
Correcto.
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
<html> - Define el inicio (y final con "</html>") de un documento HTML. Contiene a los
elementos:
<body> - Define el inicio (y final con "</body>") del cuerpo del documento. Permite definir
formatos que se aplican a los elementos de la página de manera global, como por ejemplo el
color de fondo del texto o la anchura de los márgenes.
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <title>Ejemplo de la estructura de un documento HTML</title>
6 </head>
7 <body>
8 Aquí es donde se coloca la información que se quiere visualizar en el nav
9 </body>
10 </html>
Autoevaluación
La etiqueta body encierra los elementos que van a determinar el formato del
documento:
Verdadero Falso
Verdadero
Elementos contenedores:
Elemento Descripción
Elementos no contenedores:
Elemento Descripción
Ejemplo:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>El título es obligatorio</title>
6 </head>
7 <body>
8 ...
9 </body>
10 </html>
El título aparece en la barra del navegador y como nombre de la pestaña. El ejemplo anterior
se vería así:
Para que los acentos se vean bien hay que guardar el ejemplo con la codificación indicado
en el documento, UTF-8
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Párrafos y encabezadaos</title>
6 </head>
7 <body>
8 <h1>Equipos</h1>
9 <p>Primer párrafo</p>
10 <p>Segundo párrafo</p>
11 <h2>Recién ascendidos</h2>
12 <p>...</p>
13 <h1>Jugadores</h1>
14 <p>...</p>
15 </body>
16 </html>
Se vería así:
Más ejemplos
Ejemplo
Esta página
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>Saltos de línea</title>
6 </head>
7 <body>
8 Esto
9 se
10 ve
11 en
12 una línea sin espacios de más
13 <p>Aquí hay espacios</p>
14 Esto <br> introduce un salto de línea
15 </body>
16 </html>
se verá así:
2.3.2.- Comentarios.
Se pueden introducir comentario en los ficheros HTML así:
1 <!-- comentario
2 de varias
3 líneas -->
Los comentarios no son procesados por los navegadores, sirven para documentar el código.
Elemento <a>
Este elemento hace que el texto encerrado entre las etiquetas sea un hipervínculo.
El atributo más importante es href, que indica la URL del vínculo, A veces se
usa href="#" para refererirse a la misma página en la que aparece el vínculo.
El atributo target permite elegir donde se abrirá el vínculo. Los valores más usados son:
Ejemplo:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Semántica a nivel de texto</title>
6 </head>
7 <body>
8 Texto marcado como <strong>importante</strong>.
9 <br>
10 Texto con <em>énfasis</em>
11 <br>
12 Texto marcado <small> con el elemento small </small>
13 <br>
14 Pulsa <a href="[Link] para ir a la página del W3C.
15 </body>
16 </html>
El resultado sería:
Aquí se puede consultar la lista completa de elementos para esta categoría. No todos tienen
una representación visual en el navegador.
Elemento Descripción
ol Delimita los elementos que forman una lista ordenada. Tiene varios atributos.
Un ejemplo de un documento HTML que muestra la forma de utilizar estos elementos es:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Listas</title>
6 </head>
7 <body>
8 <h1>Ejemplo de lista desordenada: Módulos de 1º de ASIR</h1>
9 <ul>
10 <li>Fundamentos de Hardware</li>
11 <li>Gestión de Bases de Datos</li>
12 </ul>
13 <h1>Ejemplos de listas ordenadas: Módulos de 1º de ASIR</h1>
14 Comenzando en 1
15 <ol>
16 <li>Fundamentos de Hardware</li>
17 <li>Gestión de Bases de Datos</li>
18 </ol>
19 Comenzando en 4
20 <ol start = "4">
21 <li>Fundamentos de Hardware</li>
22 <li>Gestión de Bases de Datos</li>
23 </ol>
24
Los elementos para definir una tabla son los siguientes (no es necesario usar todos):
Elemento Descripción
En HTML las tablas están formadas por filas (elemento <tr>,) y estas a su vez por celdas. Las
celdas pueden ser de datos (elemento <td>) o de cabecera (elemento <th>).
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Tablas</title>
6 </head>
<body>
<table>
<caption>Tabla de socios</caption>
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>Edad</th>
</tr>
<tr>
<td>Juan</td>
<td>Puertas</td>
<td>54</td>
</tr>
<tr>
<td>Eva</td>
<td>Montes</td>
<td>44</td>
</tr>
</table>
</body>
</html>
NOTA IMPORTANTE: Aunque era habitual hace años, no es correcto usar tablas para la
maquetación de la página.
Ejercicio Resuelto
En la siguiente imagen puedes ver un ejemplo de un formulario con una
muestra de algunos de los diferentes tipos de campos existentes.
Mostrar retroalimentación
La etiqueta permite especificar una serie de atributos para ajustar sus características. Los
principales son:
GET vs POST
GET POST
El elemento <input> (que no tiene etiqueta de cierre) se puede usar para varios tipos de
control, según el valor que tome el atributo type. Por ejemplo, para type="text", que es el
valor por defecto, se obtiene un campo de texto. Con type = "radio", un botón de radio.
Ejemplo:
Para especificar un valor previo en el campo debe escribirse entre las etiquetas <textarea>
de apertura y cierre
Atributos principales
placeholder
readonly
autofocus
maxlength
required
Atributos - <select>
Atributos - <option>
En la siguiente imagen puedes observar cómo quedaría en un editor de HTML (en este caso
Notepad++) y cuál es el resultado en el navegador.
Atributos
name– obligatorio
checked– el atributo aparece marcado
value– valor que se transmitirá al enviar el formulario con ese campo seleccionado
Atributos
Atributos
Autoevaluación
Para crear un botón utilizaremos la etiqueta:
<button>
<input>
Ambas.
Ninguna.
Correcto.
No es la opción correcta.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
Para recoger
<input type=“email”> Valida formato automáticamente
correo electrónico
Atributos:
Para recoger
max – valor máximo
números enteros <input type=“number”>
min – valor mínimo
en un rango
step – incremento del contador
<input type=“datetime-local”>
<input type=“date”>
<input type=“month”>
<input type=“week”>
<input type=“time”>
Atributos
Atributos
Etiqueta <label>
Permite asociar a cada campo del formulario una etiqueta con su nombre. El texto mostrado
entre las etiquetas <label> se muestra y constituye además una ayuda de usabilidad a
personas invidentes.
En el ejemplo la etiqueta label se asocia al campo tipo input mediante el atributo for que
contiene el valor del identificador (id) de la etiqueta input. En el navegador se vería:
Etiqueta <fieldset>
Agrupa los campos de formulario que estén entre la etiqueta de apertura y cierre <fieldset> y
los rodea con un borde.
Etiqueta <legend>
Ejercicio Resuelto
¿Podrías escribir el código HTML de este formulario?
Mostrar retroalimentación
Recomendación
Formularios
2.8.- Multimedia.
Otros elementos habituales son:
Elemento Descripción
Elemento <img>
Este elemento se usa para insertar una imagen. No tiene etiqueta de cierre. Los atributos
más importante son:
src. Especifica la ruta de la imagen. Puede ser local, o una URL cualquiera. Los
formatos soportados dependen de cada navegador, pero en general se pueden utilizar
JPG, PNG y GIF, entre otros.
alt. Texto alternativo. Se usa si no se puede cargar la imagen o para los lectores de
pantalla. Es obligatorio.
height. Altura. Si no se especifica, se escoge el tamaño original. Si se especifica, se
escala. Es de los pocos casos en HTML5 en que un atributo tiene información de
representación.
width. Anchura de la imagen. Como la anterior.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>Imágenes</title>
6 </head>
7 <body>
8 <p> Imagen en internet </p>
9 <img src='[Link] alt='la luna
10 <p>Imagen no encontrada</p>
11 <img src='[Link] alt='la luna'>
12 <p>Imagen local</p>
13 <img src='[Link]' alt='logo'>
14
</body>
</html>
Se vería así:
Para poder probar este ejemplo, descarga esta imagen y "guárdala como" [Link] en el
mismo directorio que la el fichero html.
La siguiente imagen muestra una disposición habitual para estos elementos. Para obtenerla
hay que usar CSS.
height: Altura, por defecto en píxeles. Si no cabe todo el contenido, se usa una barra de
desplazamiento. También se puede fijar con CSS.
width: Anchura, como el anterior.
src: La ruta al contenido inicial del iframe.
name: Nombre, para referirse al iframe desde un vínculo.
El contenido del iframe cambia al seguir los vínculos. Para conseguirlo, en los vínculos hay
que poner como valor del atributo target el valor del atributo name del iframe en que
queramos que se cargue.
se usará
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>iframe</title>
6 </head>
7 <body>
8 <a href = "[Link]" target = "contenido">Ejemplo de listas</a>
9 <a href = "[Link]" target = "contenido">Ejemplo de tablas</a>
10 <p>Aquí está el iframe</p>
11 <iframe height = "300" width = "400" name = "contenido" src = "[Link]">
12 </body>
13 </html>
Para probar el ejemplo, tienes que tener los tres ficheros en el mismo directorio y abrir
"[Link]".
Debes conocer
Es posible validar si nuestro código HTML cumple con la especificación
de HTML5, para ello existen diferentes páginas en Internet que nos facilitan
este servicio:
W3C - [Link]
[Link] - [Link]
Caso práctico
Juan muestra a María y Félix una primera versión de la página web.
Introducción
CSS (Cascading Style Sheets) permite a los
desarrolladores Web controlar el estilo y el formato de
múltiples páginas Web al mismo tiempo.
Al crear una página web, se utiliza en primer lugar el lenguaje HTML/XHTML para marcar los
contenidos, es decir, para designar la función de cada elemento dentro de la página: párrafo,
cabecera, texto destacado, etc. Una vez creados los contenidos, se utiliza el
lenguaje CSS para definir el formato de cada elemento.
Las hojas de estilos aparecieron poco después que el lenguaje de etiquetas SGML,
alrededor del año 1970. Desde la creación de SGML, se observó la necesidad de definir un
mecanismo que permitiera aplicar estilos a los documentos electrónicos. La guerra de
navegadores y la falta de un estándar para la definición de los estilos dificultaban la creación
de documentos que tuvieran igual apariencia en distintos navegadores.
CSS 4, última versión sobre la que no existe una especificación integrada ya que al igual
que CSS 3 se encuentra dividido en diferentes módulos. A partir de la división en módulos
que se hizo en CSS 3 la evolución de cada uno de ellos es independiente lo que provoca que
actualmente la mayoría de módulos estén es especificación de nivel 3 mientras que otros
(por ejemplo Selectores) se encuentre en nivel 4.
En el siguiente enlace encontrarás el soporte que cada uno de los navegadores más actuales
tienen sobre las etiquetas CSS.
Autoevaluación
Las hojas de estilo en casacada permiten:
Correcto.
Incorrecto.
No es correcto.
No es la opción correcta.
Solución
1. Opción correcta
2. Incorrecto
3. Incorrecto
4. Incorrecto
Dentro de la propia etiqueta mediante el atributo style. Deben evitarse para preservar el
principio de separación de contenidos y formato.
Ejemplo
1 <!DOCTYPE html>
2 <html>
3
<head>
<meta charset='UTF-8'>
<title>CSS interna</title>
<style>
p {color:green}
</style>
</head>
<body>
<p>Hola</p>
</body>
</html>
El archivo de estilos tendrá extensión .css. El código del archivo de estilos no tendrá etiqueta
de declaración de estilo, por ejemplo:
h1 {background-color: #blue}
Otra forma de usar hojas de estilo externas es mediante la etiqueta @import. Es una
directiva CSS no HTML.
1 <style type=“text/css”>
2 @import url(“[Link]”);
3 </style>
Ejemplo
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>CSS externo</title>
6
1 p {
2 color: green;
3 }
Almacena los dos ficheros en la misma carpeta para probar el ejemplo. El fichero CSS se
tiene que llamar "parrafo_verde.css".
Autoevaluación
El mejor modo de aplicar formatos a una página web es:
No es la opción correcta.
No es correcto.
Incorrrecto.
Corrrecto.
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
Ejemplo
Selector: indica el elemento o elementos HTML a los que se aplica la regla CSS
Llave de apertura, {
Llave de cierre, }.
p { color: blue;}
Un archivo CSS puede contener infinitas reglas CSS, cada regla puede contener varios
selectores y cada declaración puede estar formada por diferentes declaraciones.
Autoevaluación
El elemento HTML sobre el que se aplica un estilo se especifica:
Entre paréntesis.
Entre llaves.
No es la opción correcta.
No es correcto.
Incorrecto.
Correcto.
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
Por otro lado las hojas de estilo también permiten la herencia de propiedades, Si tenemos
varios elementos HTML anidados los elementos más internos heredan los estilos de los
externos en los que están anidados siempre y cuando ellos no los tengan definidos
3.4.- Selectores.
A la hora de aplicar estilos a nuestros elementos HTML necesitamos un mecanismo que
permita identificar sobre cuál o cuáles de estos elementos queremos actuar. Para ello se
utilizan los selectores, estos permiten identificar a qué elementos de nuestro código HTML
vamos a aplicar el estilo definido. Existe diferentes selectores, a continuación veremos los
más importantes.
Selectores de etiqueta
p { text-align: center}
En este ejemplo, tanto los párrafos como los encabezados de tipo 1 y 2 serán alineados al
centro.
Autoevaluación
Verdadero Falso
Verdadero
El selector se especificaría:
De manera que este estilo se aplicaría a todas las etiquetas p que tengan el atributo class a
valor parrafoCentrado.
Se aplicaría a todas las etiquetas que perteneciesen a la clase “parrafoCentrado” sean del
tipo que sean. Por ejemplo a una que fuese:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>Ejemplo del uso de clases en hojas de estilo</title>
6 <style type="text/css">
7 .clase_azul{color:blue}
8 p.clase_roja{color:#ff0000; font-style:italic; font-weight:bolder; font-family
9 </style>
10 </head>
11 <body>
12
Por ejemplo:
<p id=“unico”>….</p>
p h1 {color: red; }:
Se aplicará a todas las etiquetas h1 que estén dentro de bloques p. Además hay que tener
en cuenta que:
p a b i {text-decoration: underline; }
p a b i {color: blue; }
También podemos combinar el selector universal con selectores descendentes, por ejemplo:
p * b {color: #0000FF;}
Se aplica a todas las etiquetas de tipo <b> que estén anidadas en cualquier otra etiqueta que
a su vez esté dentro de una etiqueta de tipo <p>.
Sin embargo no se aplicará a las etiquetas de tipo <b> que estén dentro de una etiqueta de
Autoevaluación
¿Es verdadero o falso?
p h1 {color: red; }:
Falso
El selector descente se aplicará a todas las etiquetas h1 que estén
dentro de bloques p.
Ejemplo
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>Selector hijo</title>
6 <style>
7 section > p {color:red}
8 </style>
9 </head>
10 <body>
11 <p>Párrafo incicial</p>
12 <section>
13 <p>Párrafo hijo de sección</p>
14 <article>
15 <p>Párrafo nieto de sección</p>
16 </article>
17 </section>
18 </body>
19 </html>
Se vería así:
Elemento Descripción
Indica el color del texto. Lo admiten casi todas las etiquetas de HTML. El
color
valor de este atributo es un color, con su nombre o su valor RGB.
background- Permite colocar una imagen de fondo del elemento. El valor que toma es
image el nombre de la imagen con su camino relativo o absoluto
Dado que no todos los nombres de colores son admitidos en el estándar, es aconsejable
utilizar el valor RGB.
Un ejemplo de un documento XHTML en el que se utiliza este método para incluir formatos
es:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Ejemplo de atributos CSS de color y fondo</title>
5 <style type="text/css">
6 body { background-color: black; color:yellow; }
7 p { color: #ffffff;}
</style>
</head>
<body>
<h3>Ejemplo del uso de atributos de color y fondo</h3>
<p>El texto de cualquier elemento, salvo el del párrafo que es blanco, es amaril
</body>
</html>
[Link]
Autoevaluación
Cuál de los siguientes valores del atributo color no es válido:
rgb(33,33,0).
red.
#f06.
#ff06.
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
Elemento Descripción
Define el grosor de los caracteres. Los valores que puede tomar son:
font-weight
normal, bold, bolder, lighter, 100, 200, 300, 400, 500, 600, 700, 800 o 900
El alto de una línea y por tanto, el espaciado entre líneas. Es una de esas
line-height
características que no se podían modificar utilizando HTML.
Un ejemplo de un documento XHTML en el que se utiliza este método para incluir formatos
es:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Ejemplo de atributos CSS de fuente</title>
5 <style type="text/css">
6 body { background-color: black; color:yellow; font-family: courier }
7 p { color: #ffffff; font:italic 900 12px Verdana; }
8 </style>
9 </head>
10 <body>
11
Elemento Descripción
Determina la tabulación del texto. Los valores que toma son una
text-indent
longitud, en unidades CSS, o un porcentaje de la establecida.
word- Determina el espaciado entre las palabras. Los valores que puede tomar
spacing es un tamaño.
letter- Determina el espaciado entre letras. Los valores que puede tomar es un
spacing tamaño.
Un ejemplo de un documento XHTML en el que se utiliza este método para incluir formatos
es:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Ejemplo de atributos CSS de texto</title>
5 <style type="text/css">
6 h3 { text-decoration:underline; text-align: center; text-transform: capitalize
7 p { text-indent: 50%; }
8
</style>
</head>
<body>
<h3>Ejemplo del uso de atributos de texto</h3>
<p>El texto de del encabezado de tercer nivel está subrayado, centrado y la prim
<p>El párrafo está tabulado</p>
</body>
</html>
Elemento Descripción
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset='UTF-8'>
5 <title>Estilo para listas</title>
6 <style>
7 #flecha{ list-style-image: url("[Link]") }
8 .circ{ list-style-type: circle }
9 #armenio{ list-style-type: armenian }
10 </style>
11 </head>
12 <body>
13 <p >Lista con imagen</p>
14 <ul id="flecha">
15 <li>Patatas</li>
16 <li>Peras</li>
17 </ul>
18 <p >Lista con círculo</p>
19 <ul class="circ">
20 <li>Patatas</li>
21 <li>Peras</li>
22 </ul>
23 <p>Alfabeto armenio</p>
24 <ol id="armenio" reversed>
25 <li>Peras</li>
26 <li>Manzanas</li>
27
</ol>
</body>
</html>
Ejemplo
En este ejemplo, hay varios vínculos, que son elementos de línea. Pero hay una regla CSS
que hace que los que tienen clase "especial" sean de bloque.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Ejemplo de atributos CSS de fuente</title>
5 <style>
6 .especial { display: block}
7 </style>
8 </head>
9 <body>
10 <a href="#">Primer vínculo (normal)</a>
11 <a href="#">Segundo vínculo (normal)</a>
12 <a href="#" class="especial">Tercer vínculo (especial)</a>
13 <a href="#" class="especial">Cuarto vínculo (especial)</a>
14 </body>
15 </html>
Se verá así:
Cada uno de esos elementos puede definirse mediante propiedades CSS que veremos a
continuación.
Contenido
auto | Longitud en px o
anchura width
equivalente
auto | Longitud en px o
altura height
equivalente
Tanto width como height especifican las dimensiones del contenido sin tener en cuenta
borde y márgenes.
Margen interno
padding
padding-top
auto | valor de longitud |
Relleno / margen interno padding-bottom
valor de porcentaje
padding-right
padding-left
Si utilizamos padding con un solo valor se aplica a los cuatro lados, con dos valores el
primero se aplica a superior e inferior y el segundo a laterales, con tres valores se aplica el
primero al superior, el segundo a los laterales y el tercero al inferior, con cuatro valores se
aplica a superior, derecho, inferior, izquierdo.
También es posible fijar el valor de cada una de los cuatro valores independientemente con
la propiedad correspondiente.
borde
border-color
border-top-color
Color en alguna de las notaciones
Color del borde border-bottom-color
permitidas | transparent
border-right-color
border-left-color
border-width
Border-top-width
Grueso del borde Border-bottom-width Valor de longitud | thin | médium | thick
Border-right-width
Border-left-width
border-style
border-top-style
Solid | dashed | dotted | double | ridge |
Estilo del borde border-bottom-style
Groove | inset | outset | hidden | none
border-right-style
border-left-style
También es posible fijar el valor de cada una de los cuatro valores independientemente con
la propiedad correspondiente.
Margen externo
margin
margin-top
Ancho del margen auto | valor de longitud | valor
margin-bottom
externo de porcentaje
margin-right
margin-left
Si utilizamos margin con un solo valor se aplica a los cuatro lados, con dos valores el
primero se aplica a superior e inferior y el segundo a laterales, con tres valores se aplica el
primero al superior, el segundo a los laterales y el tercero al inferior, con cuatro valores se
aplica a superior, derecho, inferior, izquierdo.
También es posible fijar el valor de cada una de los cuatro valores independientemente con
la propiedad correspondiente.
Autoevaluación
Para modificar el tamaño del borde izquierdo de una caja o utilizar el
atributo:
border-left-width
border-width
Ambas.
Ninguna.
Incorrecto.
No es la opción correcta.
Correcto.
No es correcto.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
Para las dimensiones de imágenes y vídeos se suelen utilizar píxeles. Es la única unidad
absoluta que se utiliza habitualmente.
Unidades absolutas
cm Centímetros
mm Milímetros
In Pulgadas
px * Píxeles
pt Puntos
pc Picas
UNIDADES RELATIVAS
En esta página se crean dos secciones. La primera tiene fondo verde y su anchura la mitad
que el elemento contenedor, <body>, que al ser un elemento de bloque ocupa todo la
anchura disponible.
Las dos secciones también ocuparían toda la anchura si no fuera por las reglas de estilo.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Porcentajes</title>
6 <style>
7 #s1{
8 background-color:green;
9 width:50%;
10 }
11 #s2{
12 background-color:blue;
13 width:30%;
14 }
15 </style>
16 </head>
17 <body>
18 <section id = "s1">Contenido sección 1</section>
19 <section id = "s2">Contenido sección 2</section>
20 </body>
21 </html>
Se vería así:
Con la altura (height) ocurre lo mismo, pero hay que tener en cuenta que depende del
contenido que haya en la página, a no ser que se fije un valor para el elemento como en este
ejemplo. El elemento <body> tiene una altura fijada en píxeles. Las secciones tienen la altura
y anchura expresadas en porcentajes relativos a los del elemento <body>.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Porcentajes</title>
6 <style>
7 body{
8 height:800px;
9 }
10 #s1{
11 background-color:green;
12 width:50%;
13 height:40%;
14 }
15 #s2{
16 background-color:blue;
17 width:30%;
18 height:20%;
19 }
20 </style>
21 </head>
22 <body>
23 <section id = "s1">Contenido sección 1</section>
24 <section id = "s2">Contenido sección 2</section>
25 </body>
26 </html>
Se vería así:
Para las fuentes es habitual utilizar la unidad em, que hace referencia al tamaño de la fuente
actual.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Unidades em</title>
6 <style>
7 .grande {font-size: 2em;}
8 .muyGrande {font-size: 4em}
9 </style>
10 </head>
11 <body>
12 <p>Normal</p>
13 <p class = "grande">Grande</p>
14 <p class = "muyGrande">Muy grande</p>
15 </body>
16 </html>
Se vería así:
Autoevaluación
Las unidades relativas especifican el tamaño en relación al tamaño de una
letra determinada que escoge el programador:
Verdadero.
Falso.
Incorrecto.
Correcto.
Solución
1. Incorrecto
2. Opción correcta
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Relleno y margen</title>
6 <style>
7 #relleno{
8 background-color:yellow;
9 padding: 2em; /*se aplica a izquierda, derecha arriba y abajo*/
10 }
11 #rellenoIzq{
12 background-color:green;
13 padding-left: 2em; /*se aplica a izquierda, derecha arriba y abajo*/
14 }
15 #rellenoMargen{
16 background-color:blue;
17 margin-bottom: 2em; /*se aplica a izquierda, derecha arriba y abajo*/
18 }
19 </style>
20 </head>
21 <body>
22 <section id = "relleno">Sección con relleno (margen interior)</section>
23 <section>Sección sin relleno</section>
24 <section id = "rellenoMargen">Sección sin relleno, pero con margen inferior
25 <section id = "rellenoIzq">Sección con relleno solo a la izquierda</section
26 </body>
27 </html>
Se verá así:
El espacio en blanco (color de fondo de <body>) entre las secciones y azul y verde se debe al
margen inferior de la primera.
Ejemplo de border
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Relleno y margen</title>
6 <style>
7 #borde1{
8 background-color:yellow;
9 border-color: green;
10 border-style: solid;
11 }
12 #borde2{
13 background-color:pink;
14 border-width: 16px;
15 border-left-color: green;
16 border-top-color: green;
17 border-left-style: dashed;
18 border-top-style: dashed;
19 }
20 </style>
21 </head>
22 <body>
23 <section id = "borde1">Sección con borde1</section>
24 <br>
25 <section id = "borde2">Sección con borde2</section>
26 </body>
27 </html>
Se verá así:
3.6.4.- Posicionamiento.
En los ejemplos vistos hasta ahora, el navegador representa los elementos en el orden en el
que aparecen atendiendo a si son elementos de bloque o de línea (entre otras cosas).
Utilizando CSS, es posible modificar el posicionamiento por defecto de los elementos. Las
propiedades implicadas son position y float.
Con la propiedad float, los elementos "flotan" hacia la izquierda o derecha. Todos los
elementos flotados se van situando uno junto a otro. Si no hay espacio disponible, se pasan
a una nueva línea. Se adapta bastante bien a diferentes tamaños de pantalla.
En este ejemplo se utiliza la propiedad float para maquetar una página sencilla, junto a las
etiquetas semá[Link] elementos <nav> y <section> están flotados a la izquierda y se
reparten la anchura disponible.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Etiquetas semánticas y float</title>
6 <style>
7 body{
8 background-color:pink;
9 }
10 header{ background-color:blue;}
11 nav {
12
13 background-color:red;
14 width:10%;
15 }
16 section {
17 background-color:green;
18 width:90%;
19 }
20 footer {
21 background-color:yellow;
22 }
23 nav, section {
24 height:500px;
25 float: left;
26 }
27 </style>
28 </head>
29 <body>
30 <header>Encabezado</header>
31
<nav>Vínculos</nav>
<section>Contenido principal del página</section>
<footer>Página creada por...</footer>
</body>
</html>
Se vería así:
Recomendación
En el siguiente enlace puedes ver el validador CSS, pudiendo pegar
directamente el código, URL o subir un archivo para verififcar si es o no
correcto el código:
Unicorm
HTML
CSS