Skip to content

tpb729-desarrollosigweb-2021/leccion-02-html

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 

Repository files navigation

El Lenguaje de Marcas de Hipertexto (HTML)

El Lenguaje de Marcas de Hipertexto o HTML (siglas en inglés de Hypertext Markup Language) es el lenguaje de marcas estándar para documentos diseñados para desplegarse en un navegador web. El término "hipertexto" hace referencia a los enlaces que conectan páginas web entre sí, ya sea dentro de un mismo sitio web o entre diferentes sitios web (ej. este es un enlace al primer sitio web). El HTML fue creado en 1990 por Tim Berners-Lee. Junto con Hojas de Estilo en Cascada o CSS (siglas en inglés de Cascading Style Sheets) y JavaScript conforma el grupo de las tres tecnologías principales de la Web.

El HTML especifica la estructura y la semántica de una página web mediante marcas (también llamadas etiquetas) o tags. Un navegador web recibe documentos HTML desde un servidor web (o desde almacenamiento local) y despliega sus componentes (textos, imágenes, hiperenlaces, etc.) de acuerdo con las especificaciones contenidas en los tags. Se recomienda que los documentos HTML no contengan componentes de presentación ni de interactivdad y que estos sean implementados mediante CSS y JavaScript.

EL HTML es un estándar del World Wide Web Consortium (W3C), un consorcio internacional creado por Tim Berners-Lee en 1994 que genera recomendaciones y estándares que aseguran el crecimiento de la WWW a largo plazo. La versión más reciente del estándar es HTML5 y se caracteriza por incluir soporte para los tipos más recientes de multimedios y reducir la necesidad de plataformas propietarias (ej. Adobe Flash) para su incorporación en páginas web que pueden desplegarse en diferentes tipos de dispositivos y tamaños de pantallas (computadoras, tabletas, teléfonos, pantallas gigantes, etc.).

El siguiente es un ejemplo de un documento HTML, el cual contiene, entre otras, etiquetas que especifican el lenguaje, el título y el cuerpo del documento, además de comentarios (que no son desplegados por el navegador web).

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Ejemplo de documento HTML</title>     
</head>
<body>
    <!-- Comentario -->
    Contenido de documento HTML.
</body>
</html>

Conceptos básicos

Elementos

Un documento HTML está compuesto por elementos HTML, como el que muestra en la figura 1.

Elemento HTML

Figura 1. Componentes de un elemento HTML. Fuente: MDN Web Docs.

Los componentes de un elemento HTML son:

  1. La etiqueta de apertura: consiste del nombre del elemento (en este caso p, correspondiente a un párrafo), encerrado por paréntesis angulares (< >) de apertura y cierre. Establece el inicio del elemento —en este caso, dónde es el comienzo del párrafo—.
  2. El contenido: este es el contenido del elemento, que en este caso es solamente texto. También pueden usarse imágenes, hipervínculos, direcciones web u otros elementos HTML.
  3. La etiqueta de cierre: es similar que la etiqueta de apertura, pero incluye una barra de cierre (/) antes del nombre de la etiqueta. Establece el final del elemento —en este caso, en dónde termina el párrafo—.

Atributos

Los elementos HTML pueden tener atributos, como el que se muestra en la figura 2.

Atributo HTML

Figura 2. Ejemplo de atributo en un elemento HTML. Fuente: MDN Web Docs.

Los atributos proporcionan información adicional acerca del elemento, la cual no se despliega en su contenido. Los atributos se especifican en la etiqueta de apertura mediante la sintaxis nombre_atributo=valor. En la figura 2, class es el nombre del atributo y editor-note su valor (class es un atributo que permite asociar al elemento con una clase o grupo de elementos, lo que puede ser útil para asignarles de manera conjunta estilos y otras propiedades). Si un elemento tiene varios atributos, deben separarse con (al menos) un espacio en blanco. Si el valor del atributo contiene espacios, debe encerrarse entre comillas dobles ("") o simples (''). Se considera una buena práctica entrecomillar los valores de atributos aunque no contengan espacios, para mejorar la legibilidad.

Cada elemento tiene una lista de atributos que puede usar. Existen atributos globales, que pueden usarse en todos los elementos.

Elementos anidados y elementos vacíos

Un elemento HTML puede contener otros elementos. A estos elementos se les llama elementos anidados. Por ejemplo:

<p>Mi gato es muy <strong>gruñón</strong></p>

El elemento anterior también puede escribirse así:

<p>
    Mi gato es muy <strong>gruñón</strong>
</p>

La tabulación es opcional, pero ayuda a mejorar la legibilidad. En ambos casos, el resultado es:

Mi gato es muy gruñón

Algunos elementos no tienen contenido, solamente atributos. Estos elementos se denominan elementos vacíos. Por ejemplo:

<img src="img/atributohtml.png" alt="Atributo HTML">

Como puede observarse, el elemento img, el cual se usa para incluir una imagen, no tiene una etiqueta de cierre y, por lo tanto, no puede especificar contenido.

Comentarios

Las etiquetas <!-- y --> marcan el inicio y el final de cadenas de caracteres que no son interpretadas como código HTML por los navegadores web y, por lo tanto, no se despliegan. Estos "comentarios" pueden ser utilizados para explicar la lógica del documento HTML o realizar cualquier tipo de anotación. Como en el caso de los comentarios de los lenguajes de programación, se recomienda utilizar comentarios en HTML para facilitar la comprensión del código.

<!-- Esto es un comentario -->
<p>Esto es un párrafo.</p>

Principales elementos

A continuación, se describen y se ejemplifican algunos de los principales elementos de HTML.

DOCTYPE

DOCTYPE (tipo de documento) es una etiqueta que le informa al navegador web cual es la versión HTML de un documento. No es una etiqueta ni un elemento HTML. Más bien es una declaración que le permite al navegador saber como interpretar los elementos HTML que hay en el resto del documento. Se coloca al inicio del documento.

La siguiente etiqueta DOCTYPE especifica que el documento usa HTML5.

<!DOCTYPE html>

El elemento html

El elemento html es el elemento raíz de un documento y contiene el resto de los elementos.

El siguiente elemento html especifica el lenguaje del documento a través del atributo globlal lang.

<html lang="es">
    <head>
    </head>
    <body>
    </body>
</html>

El elemento head

El elemento head contiene los metadatos del documento y otros elementos como su título y referencias a scripts y hojas de estilo (CSS).

<head>
    <meta charset="UTF-8">
    <title>Título del documento</title>
    
    <link rel="stylesheet" href="css/estilos.css">
    <script src="js/scripts.js"></script>        
</head>

El elemento meta

El elemento meta especifica metadatos del documento tales como su autor, descripción, palabras clave y juego de caracteres, entre otros.

<meta charset="UTF-8">
<meta name="author" content="Manuel Vargas">
<meta name="description" content="Curso introductorio de programación">
<meta name="keywords" content="Python, programación">

El elemento title

El elemento title especifica el título del documento, el cual se muestra en la parte superior de la ventana (o pestaña del navegador). Es un elemento obligatorio de todo documento HTML válido y debe estar ubicado dentro del elemento head.

<title>Curso de programación en Python</title>

El elemento link

link especifica la relación entre el documento actual y un recurso externo, como una hoja de estilos.

Enlace a la hoja de estilos de la biblioteca geoespacial Leaflet:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""/>

El elemento script

El elemento script se utiliza para incluir código de algún lenguaje de programación, típicamente JavaScript, aunque también usarse con otros lenguajes y sintaxis (ej. JSON).

Enlace al código JavaScript de la biblioteca geoespacial Leaflet:

<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>

El elemento body

body especifica el contenido principal del documento (texto, multimedia, hipervínculos, etc.).

<body>
    <a href="https://www.python.org/">Python</a> es un lenguaje de programación creado por Guido van Rossum.
</body>

Los elementos h1-h6

Los elementos h1-h6 (h1, h2, h3, h4, h5, h6) definen encabezados (headings) de seis niveles. h1 es el encabezado de mayor nivel (con letras más grandes) y h6 el de menor nivel.

<h1>El lenguaje Python</h1>
<h2>Tipos de datos<h2>
<h3>Numéricos</h3>
<h3>Textuales</h3>
<h2>Control de flujo<h2>
<h3>Condicionales</h3>
<h3>Ciclos</h3>

Se visualiza así:

El lenguaje Python

Tipos de datos

Numéricos

Textuales

Control de flujo

Condicionales

Ciclos

El elemento p

El elemento p define un párrafo (i.e. texto o elementos HTML delimitados por líneas en blanco al principio y al final). La etiqueta de cierre es opcional. Una etiqueta <p> sola genera una línea en blanco.

<p>Python es un lenguaje de programación de propósito general ...</p>
<p>Fue creado en 1989 por Guido van Rossum...</p>

Se visualiza así:

Python es un lenguaje de programación de propósito general ...

Fue creado en 1989 por Guido van Rossum...

El elemento br

El elemento br (line break) genera un salto de línea (o "retorno de carro") en el documento. No debe usarse para incrementar el espacio entre los parrafos. Para eso se recomienda utilizar el elemento p u hojas de estilo.

Mozilla Foundation<br>
1981 Landings Drive<br>
Building K<br>
Mountain View, CA 94043-0801<br>
USA

Se visualiza así: Mozilla Foundation
1981 Landings Drive
Building K
Mountain View, CA 94043-0801
USA

El elemento strong

El elemento strong se utiliza para denotar la importancia de una parte del texto. Los navegadores acostumbran usar letra en negrita para implementar este elemento. Sin embargo, no debe utilizarse para simplemente escribir un texto en negrita. Para eso, se recomienda emplear la propiedad font-weight de CSS.

<p>"... the most important rule, the rule you can never forget, no matter how much he cries, no matter how much he begs: <strong>never feed him after midnight</strong>."</p>

Se visualiza así:

"... the most important rule, the rule you can never forget, no matter how much he cries, no matter how much he begs: never feed him after midnight."

Los elementos semánticos (i.e que pretenden transmitir un significado) como strong y em facilitan la comprensión de textos por parte de personas y también programas. Por ejemplo, los lectores de pantalla pueden utilizar estos elementos para pronunciar las palabras con mayor fuerza o volumen.

El elemento em

em marca un fragmento de texto al que se se da un énfasis particular. Puede utilizarse de forma anidada, con cada nivel de anidamiento indicando un mayor grado de énfasis. Los navegadores acostumbran usar letra en itálica para implementar este elemento. Sin embargo, no debe utilizarse para simplemente escribir un texto en itálica. Para eso, se recomienda emplear la propiedad font-style de CSS.

<p>Tenemos que <em>hacer</em> algo al respecto.</p>

Se visualiza así:

Tenemos que hacer algo al respecto.

Los elementos semánticos (i.e que pretenden transmitir un significado) como strong y em facilitan la comprensión de textos por parte de personas y también programas. Por ejemplo, los lectores de pantalla pueden utilizar estos elementos para pronunciar las palabras con mayor fuerza o volumen.

El elemento a

El elemento a (anchor o ancla) crea un hipervínculo a otro documento HTML, a un archivo, a una dirección de email o a cualquier otro tipo de URL (Uniform Resource Locator o localizador de recursos uniforme). El atributo href especifica el URL. El contenido del elemento especifica el texto que se le muestra al usuario en el enlace.

<a href="https://www.python.org/">El lenguaje de programación Python</a>

Se visualiza así: El lenguaje de programación Python

El elemento img

El elemento img inserta una imagen en un documento. Solo usa la etiqueta de apertura. El atributo src especifica el URL de la imagen y el atributo alt una descripción textual de la imagen. Los atributos height y width especifican, en pixeles, la altura y el ancho de la imagen respectivamente.

<img src="img/python-logo.png" alt="Logo de Python" height="100">

Se visualiza así:
Logo de Python

El elemento ul

ul define una lista no ordenada cuyos ítems se especifican mediante el elemento li (list item).

<ul>
    <li>Azúcar</li>
    <li>Harina</li>
    <li>Limones</li>
    <li>Arroz</li>
</ul>

Se visualiza así:

  • Azúcar
  • Harina
  • Limones
  • Arroz

El elemento ol

ol define una lista ordenada cuyos ítems se especifican mediante el elemento li (list item).

<ol>
    <li>Azúcar</li>
    <li>Harina</li>
    <li>Limones</li>
    <li>Arroz</li>
</ol>

Se visualiza así:

  1. Azúcar
  2. Harina
  3. Limones
  4. Arroz

El elemento table

El elemento table se utiliza para presentar datos en filas y columnas. Los elementos thead y tbody especifican el encabezado y el cuerpo de la tabla, respectivamente. El elemento tr especifica las filas y td las columnas o las celdas. th se usa en las celdas de los encabezados.

<table>
    <thead>
        <tr>
            <th colspan="2">Encabezado de la tabla</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Fila 1,columna 1</td><td>Fila 1,columna 2</td>
        </tr>
        <tr>
            <td>Fila 2,columna 1</td><td>Fila 2,columna 2</td>
        </tr>
    </tbody>
</table>

Se visualiza así:

Encabezado de la tabla
Fila 1,columna 1Fila 1,columna 2
Fila 2,columna 1Fila 2,columna 2

El elemento div

El elemento div se utiliza para definir secciones o agrupar contenidos en un documento.

En el ejemplo siguiente, div se emplea para asignar colores diferentes a dos partes de un documento:

<div style="background-color:#F00;">
    <h1>Sección roja</h1>
    <p>Esta sección tiene fondo rojo.</p>
</div>
<div style="background-color:#0F0;">
    <h1>Sección verde</h1>
    <p>Esta sección tiene fondo verde.</p>
</div>

Recursos adicionales