Software">
HTML
HTML
HTML
Aprender HTML es el primer paso para crear sitios web, pero incluso un poco de
conocimiento puede ayudarte a insertar fragmentos de código en plantillas de
boletines, blogs o sitios web. A medida que continúa aprendiendo, puede superponer
HTML con CSS y JavaScript para crear sitios web dinámicos y visualmente
atractivos. Pero por ahora, nos centraremos en cómo agregar y modificar contenido
básico en una página, como texto, imágenes y videos. No se preocupe si los sitios
web se ven feos: apenas estamos comenzando.
Anatomía HTML
HTML se compone de elementos . Estos elementos estructuran la página web y definen su contenido.
Echemos un vistazo a cómo están escritos.
El diagrama de la derecha muestra un elemento de párrafo HTML. Como podemos ver, el elemento
párrafo se compone de:
Una etiqueta y el contenido entre ellas se denomina elemento HTML. Hay muchas etiquetas que
podemos usar para organizar y mostrar texto y otro tipo de contenido, como imágenes.
de cierre ( >).
Etiqueta de apertura: la primera etiqueta HTML utilizada para iniciar un elemento HTML. El
tipo de etiqueta está rodeado por corchetes angulares de apertura y cierre.
Contenido: la información (texto u otros elementos) contenida entre las etiquetas de apertura
y cierre de un elemento HTML.
Etiqueta de cierre: la segunda etiqueta HTML utilizada para finalizar un elemento HTML. Las
etiquetas de cierre tienen una barra diagonal ( /) dentro de ellas, directamente después del
Instrucciones
Estudie el diagrama de la derecha para conocer la anatomía de la sintaxis HTML. Cuando haya
terminado, continúe con el siguiente ejercicio.
El cuerpo
elementos elemento del cuerpo . Solo se puede mostrar en la pantalla el
contenido dentro de las etiquetas del cuerpo de apertura y cierre . Así es
como se ven las etiquetas del cuerpo de apertura y cierre:
<body>
</body>
<body>
<p>What's up, doc?</p>
</body>
Estructura HTML
HTML está organizado como una colección de relaciones de árboles genealógicos. Como
vio en el último ejercicio, colocamos <p>etiquetas dentro de <body>etiquetas. Cuando un
elemento está contenido dentro de otro elemento, se considera hijo de ese elemento. Se
dice que el elemento hijo está anidado dentro del elemento padre .
<body>
<p>This paragraph is a child of the body</p>
</body>
Dado que puede haber múltiples niveles de anidación, esta analogía puede extenderse a los
nietos, bisnietos y más allá. La relación entre los elementos y sus elementos ancestros y
descendientes se conoce como jerarquía .
<body>
<div>
<h1>Sibling to p, but also grandchild of body</h1>
<p>Sibling to h1, but also grandchild of body</p>
</div>
</body>
<h1>- utilizado para los títulos principales. Todos los demás títulos más pequeños se
utilizan como subtítulos.
<h2>
<h3>
<h4>
<h5>
<h6>
El siguiente código de ejemplo utiliza un título destinado a captar la atención del lector.
Utiliza el encabezado más grande disponible, el elemento de encabezado principal:
<h1>BREAKING NEWS</h1>
divisiones
Uno de los elementos más populares en HTML es el <div>elemento. <div>es la abreviatura
de "división" o un contenedor que divide la página en secciones. Estas secciones son muy
útiles para agrupar elementos en su HTML.
<body>
<div>
<h1>Why use divs?</h1>
<p>Great for grouping elements!</p>
</div>
</body>
<div>Los s no tienen inherentemente una representación visual, pero son muy útiles cuando
queremos aplicar estilos personalizados a nuestros elementos HTML. <div>Los s nos
permiten agrupar elementos HTML para aplicar los mismos estilos a todos los elementos
HTML internos. También podemos diseñar el <div>elemento como un todo. Puedes ver
cómo se puede hacer esto en el curso Aprender CSS .
<div>Los mensajes pueden contener cualquier texto u otros elementos HTML, como
enlaces, imágenes o vídeos. Recuerde agregar siempre dos espacios de sangría cuando
anide elementos dentro de <div>s para una mejor legibilidad.
Atributos
Si queremos expandir la etiqueta de un elemento, podemos hacerlo usando un atributo. Los
atributos son contenido agregado a la etiqueta de apertura de un elemento y se pueden usar
de varias maneras diferentes, desde proporcionar información hasta cambiar el estilo. Los
atributos se componen de las dos partes siguientes:
<div id="intro">
<h1>Introduction</h1>
</div>
Mostrar texto
Si desea mostrar texto en HTML, puede utilizar un párrafo o intervalo :
<div>
<h1>Technology</h1>
</div>
<div>
<p><span>Self-driving cars</span> are anticipated to replace up
to 2 million jobs over the next two decades.</p>
</div>
Más adelante, cuando comience a diseñar sitios web, decidirá cómo desea que los
navegadores muestren el contenido dentro de <em>las <strong>etiquetas. Los navegadores,
sin embargo, tienen hojas de estilo integradas que generalmente aplicarán estilos a estas
etiquetas de las siguientes maneras:
En este ejemplo, las etiquetas <strong>y <em>se utilizan para enfatizar el texto y producir lo
siguiente:
El río Nilo es el río más largo del mundo y mide más de 6.850 kilómetros de largo
(aproximadamente 4.260 millas).
Como podemos ver, “El río Nilo” está en negrita y “el más largo” en cursiva.
INTRODUCCIÓN A HTML
Saltos de línea
El espacio entre el código en un archivo HTML no afecta la posición de los elementos en el
navegador. Si está interesado en modificar el espaciado en el navegador, puede utilizar el
elemento de salto de línea<br> de HTML: .
El elemento de salto de línea es único porque solo se compone de una etiqueta inicial.
Puede usarlo en cualquier lugar dentro de su código HTML y se mostrará un salto de línea
en el navegador.
El código del ejemplo anterior dará como resultado un resultado similar al siguiente:
En HTML, puede utilizar una etiqueta de lista desordenada<ul> ( ) para crear una lista de
elementos sin ningún orden en particular. Una lista desordenada describe los elementos
individuales de la lista con una viñeta.
<ul>
<li>Limes</li>
<li>Tortillas</li>
<li>Chicken</li>
</ul>
Limas
Tortillas
Pollo
Listas ordenadas
Las listas ordenadas ( <ol>) son como listas desordenadas, excepto que cada elemento de
la lista está numerado. Son útiles cuando necesita enumerar diferentes pasos en un proceso
o clasificar elementos del primero al último.
Puede crear la lista ordenada con la <ol>etiqueta y luego agregar elementos de lista
individuales a la lista usando <li>etiquetas.
<ol>
</ol>
La <img>etiqueta le permite agregar una imagen a una página web. La mayoría de los
elementos requieren etiquetas de apertura y cierre, pero la <img>etiqueta es una etiqueta de
cierre automático . Tenga en cuenta que el final de la <img>etiqueta tiene una barra diagonal
/. Las etiquetas de cierre automático pueden incluir u omitir la barra final; ambas se
mostrarán correctamente.
La <img>etiqueta tiene un atributo obligatorio llamado src. El src atributo debe establecerse
en la fuente de la imagen o en la ubicación de la imagen. En este caso, el valor de src debe
ser el localizador uniforme de recursos (URL) de la imagen. Una URL es la dirección web o
dirección local donde se almacena un archivo.
Alts de imagen
Parte de ser un desarrollador web excepcional es hacer que su sitio sea accesible para
usuarios de todos los orígenes. Para hacer que la Web sea más inclusiva, debemos
considerar qué sucede cuando las tecnologías de asistencia, como los lectores de pantalla,
se encuentran con etiquetas de imágenes .
El altatributo, que significa texto alternativo, aporta significado a las imágenes de nuestros
sitios. El altatributo se puede agregar a la etiqueta de imagen al igual que el srcatributo. El
valor de altdebe ser una descripción de la imagen.
Si una imagen no se carga en una página web, un usuario puede pasar el mouse
sobre el área originalmente destinada a la imagen y leer una breve descripción de la
imagen. Esto es posible gracias a la descripción que proporciona en el altatributo.
Los usuarios con discapacidad visual suelen navegar por la web con la ayuda de
software de lectura de pantalla. Cuando incluye el altatributo, el software de lectura
de pantalla puede leer la descripción de la imagen en voz alta para el usuario con
discapacidad visual.
El altatributo también juega un papel en la optimización de motores de búsqueda
(SEO), porque los motores de búsqueda no pueden "ver" las imágenes en los sitios
web mientras rastrean Internet. Tener alt atributos descriptivos puede mejorar la
clasificación de su sitio.
</video>
En este ejemplo, la fuente del vídeo ( src) es "myVideo.mp4". La fuente puede ser un archivo
de vídeo alojado junto a su página web o una URL que apunte a un archivo de vídeo alojado
en otra página web.
Después del srcatributo, los atributos widthy heightse utilizan para establecer el tamaño del
vídeo que se muestra en el navegador. El controlsatributo indica al navegador que incluya
controles de vídeo básicos, como pausar y reproducir.
El texto, Video not supportedentre las etiquetas de video de apertura y cierre solo se
mostrará si el navegador no puede cargar el video.
Revisar
¡Felicitaciones por completar la primera lección de HTML! Está en el buen camino para
convertirse en un desarrollador web cualificado.
La declaración se ve así:
<!DOCTYPE html>
Esta declaración es una instrucción y debe ser la primera línea de código de su documento
HTML. Le dice al navegador qué tipo de documento esperar, junto con qué versión de HTML
se utiliza en el documento. Por ahora, el navegador asumirá correctamente que htmlin
<!DOCTYPE html>se refiere a HTML5, ya que es el estándar actual.
En el futuro, sin embargo, un nuevo estándar anulará a HTML5. Para asegurarse de que su
documento siempre se interprete correctamente, inclúyalo siempre <!DOCTYPE html>al
principio de sus documentos HTML.
Por último, el código HTML siempre se guarda en un archivo con extensión .html .
La etiqueta <html>
La <!DOCTYPE html>declaración proporciona al navegador dos datos (el tipo de documento y
la versión HTML esperada), pero en realidad no agrega ninguna estructura o contenido
HTML.
<!DOCTYPE html>
<html>
</html>
Todo lo que esté entre las etiquetas de apertura <html>y cierre </html>se interpretará como
código HTML. Sin estas etiquetas, es posible que los navegadores interpreten
incorrectamente su código HTML.
La cabeza
Hasta ahora has hecho dos cosas para configurar el archivo correctamente:
Hemos agregado estos elementos a la página de Osos Pardos que creó anteriormente.
Ahora, proporcionemos también al navegador información sobre la página en sí. Podemos
hacer esto agregando un <head>elemento.
El <head>elemento contiene los metadatos de una página web. Los metadatos son
información sobre la página que no se muestra directamente en la página web. A diferencia
de la información dentro de la <body>etiqueta, los metadatos en el encabezado son
información sobre la página misma. Verá un ejemplo de esto en el siguiente ejercicio.
Las etiquetas principales de apertura y cierre suelen aparecer como el primer elemento
después de la primera etiqueta HTML:
<head>
</head>
Títulos de página
¿Qué tipo de metadatos sobre la página web puede <head>contener el elemento?
<!DOCTYPE html>
<html>
<head>
<title>My Coding Journal</title>
</head>
</html>
Si tuviéramos que abrir un archivo que contiene el código HTML en el ejemplo anterior, el
navegador mostraría las palabras My Coding Journalen la barra de título (o en el título de la
pestaña).
¿Dónde aparece el título?
¡Buen trabajo! Desafortunadamente, el panel del navegador utilizado por el entorno
Codecademy no tiene una barra de título, por lo que no se mostrará el título "Oso Pardo" que
escribió en el ejercicio anterior. Sin embargo, fuera del entorno de Codecademy, su título
aparecería como se muestra en el diagrama de la derecha.
A continuación, aprenderá sobre nuevos tipos de elementos que van dentro del cuerpo.
Enlace a otras páginas web
Uno de los aspectos poderosos de HTML (y de Internet) es la capacidad de vincular a otras
páginas web.
Puede agregar enlaces a una página web agregando un elemento de anclaje<a> e incluyendo
el texto del enlace entre las etiquetas de apertura y cierre .
¡Espera un minuto! Técnicamente, el enlace del ejemplo anterior está incompleto. ¿Cómo se
supone que funciona exactamente el enlace anterior si no hay una URL que lleve a los
usuarios a la página real de Wikipedia?
El elemento ancla en el ejemplo anterior está incompleto sin el href atributo. Este atributo
significa referencia de hipervínculo y se utiliza para vincular a una ruta o la dirección donde
se encuentra un archivo (ya sea en su computadora o en otra ubicación). Las rutas
proporcionadas al href atributo suelen ser URL.
Es posible que uno o más enlaces en su página web conduzcan a un sitio web
completamente diferente. En ese caso, es posible que desee que los usuarios lean el sitio
web vinculado, pero espere que regresen a su página web. ¡ Aquí es exactamente cuando el
targetatributo es útil!
Para que un enlace se abra en una nueva ventana, el targetatributo requiere un valor de
_blank. El targetatributo se puede agregar directamente a la etiqueta de apertura del
elemento ancla, al igual que el hrefatributo.
<a href="https://en.wikipedia.org/wiki/Brown_bear"
target="_blank">The Brown Bear</a>
En este ejercicio, utilizamos la terminología "abrir en una ventana nueva". Es probable que
esté utilizando un navegador moderno que abre sitios web en pestañas nuevas , en lugar de
ventanas nuevas. Antes de la llegada de los navegadores con pestañas, era necesario abrir
ventanas adicionales para ver más sitios web. El target="_blank"atributo, cuando se utiliza
en navegadores modernos, abrirá nuevos sitios web en una nueva pestaña.
Vincular a una página relativa
Hasta ahora ha aprendido cómo vincular a páginas web externas. Muchos sitios también
enlazan a páginas web internas como Inicio, Acerca de y Contacto.
project-folder/
|—— about.html
|—— contact.html
|—— index.html
<a href="./contact.html">Contact</a>
En este ejemplo, la <a> etiqueta se utiliza con una ruta relativa para vincular desde el archivo
HTML actual al contact.html archivo en la misma carpeta. En la página web, Contact
aparecerá como un enlace.
Una ruta relativa es un nombre de archivo que muestra la ruta a un archivo local (un archivo
en el mismo sitio web, como ./index.html) versus una ruta absoluta (una URL completa,
como https://www.codecademy.com/learn/learn-htmlla que está almacenada en una
carpeta diferente). La ./ entrada ./index.html le dice al navegador que busque el archivo
en la carpeta actual.
Vinculación a voluntad
Probablemente haya visitado sitios web donde no todos los enlaces estaban compuestos de
texto. Quizás los enlaces en los que hizo clic eran imágenes o algún otro tipo de contenido.
Hasta ahora, hemos agregado enlaces que estaban compuestos únicamente de texto, como
el siguiente:
<a href="https://en.wikipedia.org/wiki/Opuntia"
target="_blank">Prickly Pear</a>
¡Sin embargo, los enlaces de solo texto disminuirían significativamente su flexibilidad como
desarrollador web!
<a href="https://en.wikipedia.org/wiki/Opuntia"
target="_blank"><img src="https://www.Prickly_Pear_Closeup.jpg"
alt="A red prickly pear fruit"/></a>
Cuando los usuarios visitan nuestro sitio, queremos que puedan hacer clic en un enlace y
que la página se desplace automáticamente a una sección específica.
Para vincular a un objetivo en la misma página, debemos darle al objetivo una identificación ,
como esta:
Un iddebe ser descriptivo para que sea más fácil recordar el propósito de un enlace. El
enlace de destino es una cadena que contiene el #carácter y el elemento de destino id.
<ol>
<li><a href="#top">Top</a></li>
<li><a href="#bottom">Bottom</a></li>
</ol>
El resto de esta lección se centrará en algunas herramientas que utilizan los desarrolladores para
hacer que el código sea más fácil de interpretar.
A medida que crece el código de un archivo HTML, resulta cada vez más difícil realizar un
seguimiento de cómo se relacionan los elementos . Los programadores utilizan dos herramientas
para visualizar la relación entre elementos: espacios en blanco y sangría .
Por ejemplo, si desea aumentar el espacio entre dos párrafos en su página web, no podrá lograrlo
agregando espacio entre los elementos de párrafo en el archivo index.html . El navegador ignora los
espacios en blanco en los archivos HTML cuando representa una página web, por lo que puede usarse
como herramienta para hacer que el código sea más fácil de leer y seguir.
Tienes que leer toda la línea para saber qué elementos están presentes. Compare el ejemplo anterior
con este:
<body>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</body>
Este ejemplo es más fácil de leer porque cada elemento está en su propia línea. Si bien el primer
ejemplo requería leer toda la línea de código para identificar los elementos, este ejemplo facilita la
identificación de la etiqueta del cuerpo y dos párrafos.
Paragraph 1
Paragraph 2
En el siguiente ejercicio aprenderá a utilizar la sangría para ayudar a visualizar elementos anidados.
Sangría
La segunda herramienta que utilizan los desarrolladores web para facilitar la lectura de la
estructura del código es la sangría . Los espacios se insertan usando las barras spacey
tabdel teclado.
<body>
<p>Paragraph 1</p>
<div>
<p>Paragraph 2</p>
</div>
</body>
Los comentarios comienzan con <!--y terminan con -->. Su navegador ignorará cualquier
carácter intermedio.
<!-- This is a comment that the browser will not display. -->
En este ejemplo, el comentario se utiliza para indicar que el siguiente texto constituye una
sección particular de la página.
Si bien algunas etiquetas tienen un propósito muy específico, como las etiquetas de imagen y video,
la mayoría de las etiquetas se usan para describir el contenido que rodean, lo que nos ayuda a
modificar y diseñar nuestro contenido más adelante. Hay un número aparentemente infinito de
etiquetas para usar (muchas más de las que hemos enseñado). Saber cuándo usar cada uno se basa
en cómo desea describir el contenido de su HTML. Las etiquetas descriptivas y bien elegidas son la
clave para un desarrollo web de alta calidad. Puede encontrar una lista completa de etiquetas HTML
disponibles en la documentación de Mozilla .
La <!DOCTYPE html>declaración siempre debe ser la primera línea de código de sus archivos
La información sobre la página web, como el título, pertenece dentro <head>de la página.
encabezado.
El título de una página web aparece en la pestaña de un navegador.
Las etiquetas de anclaje ( <a>) se utilizan para vincular a páginas internas, páginas externas o
Puede crear secciones en una página web y acceder a ellas usando <a> etiquetas y
¡Tómate un tiempo para editar el espacio de trabajo que creaste y observa cómo cambia!
En esta parte del curso, aprenderemos a utilizar el <table> elemento HTML para presentar
información en una tabla bidimensional a los usuarios.
¡Empecemos!
<table>
</table>
El <table> elemento contendrá todos los datos tabulares que planeamos mostrar.
Filas de la tabla
En muchos programas que usan tablas, la tabla ya está predefinida, lo que significa que
contiene las filas, columnas y celdas que contendrán los datos . En HTML, se deben crear
todos estos componentes.
El primer paso para ingresar datos en la tabla es agregar filas usando el elemento de fila de
la tabla<tr> : .
<table>
<tr>
</tr>
<tr>
</tr>
</table>
Datos de la tabla
Las filas no son suficientes para agregar datos a una tabla. También se debe definir cada
elemento de la celda. En HTML, puede agregar datos utilizando el elemento de datos de la
tabla<td> : .
<table>
<tr>
<td>73</td>
<td>81</td>
</tr>
</table>
En el ejemplo anterior, se ingresaron dos puntos de datos ( 73 y ) en la única fila que existe.
81 Al agregar dos puntos de datos, creamos dos celdas de datos.
Si la tabla se mostrará en el navegador, mostraría una tabla con una fila y dos columnas.
Encabezados de tabla
Los datos de la tabla no tienen mucho sentido sin títulos que describan lo que representan
los datos.
<table>
<tr>
<th></th>
<th scope="col">Saturday</th>
<th scope="col">Sunday</th>
</tr>
<tr>
<th scope="row">Temperature</th>
<td>73</td>
<td>81</td>
</tr>
</table>
Primero, se agregó una nueva fila para contener los tres encabezados: un encabezado en
blanco, un Saturday encabezado y un Sunday encabezado. El encabezado en blanco crea la
celda de tabla adicional necesaria para alinear los encabezados de la tabla correctamente
sobre los datos a los que corresponden.
Tenga en cuenta también el uso del scope atributo, que puede tomar uno de dos valores:
row- este valor deja claro que el encabezado es para una fila.
col- este valor deja claro que el encabezado es para una columna.
El código HTML para tablas puede parecer un poco extraño al principio, pero analizarlo pieza
por pieza ayuda a que el código sea más comprensible.
Bordes de mesa
Hasta ahora, las tablas que has creado han sido un poco difíciles de leer porque no tienen
bordes.
En versiones anteriores de HTML, se podía agregar un borde a una tabla usando el border
atributo y estableciéndose igual a un número entero. Este número entero representaría el
grosor del borde.
<table border="1">
<tr>
<td>73</td>
<td>81</td>
</tr>
</table>
El código del ejemplo anterior está obsoleto , así que no lo utilices. Su objetivo es ilustrar
convenciones más antiguas con las que puede encontrarse al leer el código de otros
desarrolladores.
Usamos CSS para agregar estilo a los documentos HTML, porque nos ayuda a separar la
estructura de una página de su apariencia. Puede aprender más sobre CSS en nuestros
cursos de CSS.
table, td {
border: 1px solid black;
}
El código del ejemplo anterior utiliza CSS en lugar de HTML para mostrar los bordes de la
tabla.
Columnas de expansión
¿Qué pasa si la tabla contiene datos que abarcan varias columnas?
Por ejemplo, un calendario personal podría tener eventos que abarquen varias horas o
incluso varios días.
<table>
<tr>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
</tr>
<tr>
<td colspan="2">Out of Town</td>
<td>Back in Town</td>
</tr>
</table>
En el ejemplo anterior, los datos Out of Town abarcan los encabezados de la tabla Monday y
utilizando el valor (dos columnas). Los datos aparecen sólo bajo el título.Tuesday 2 Back in
Town Wednesday
Filas ampliadas
Los datos también pueden abarcar varias filas utilizando el rowspanatributo.
El rowspanatributo se utiliza para datos que abarcan varias filas (quizás un evento dura
varias horas en un día determinado). Acepta un número entero (mayor o igual a 1) para
indicar el número de filas que abarca.
<table>
<tr> <!-- Row 1 -->
<th></th>
<th>Saturday</th>
<th>Sunday</th>
</tr>
<tr> <!-- Row 2 -->
<th>Morning</th>
<td rowspan="2">Work</td>
<td rowspan="3">Relax</td>
</tr>
<tr> <!-- Row 3 -->
<th>Afternoon</th>
</tr>
<tr> <!-- Row 4 -->
<th>Evening</th>
<td>Dinner</td>
</tr>
</table>
La primera fila contiene una celda vacía y los encabezados de dos columnas .
La segunda fila contiene el Morningencabezado de la fila, junto con Work, que abarca
dos filas debajo de la Saturdaycolumna. La entrada "Relax" ocupa tres filas debajo de
la Sundaycolumna.
La tercera fila sólo contiene el Afternoonencabezado de la fila.
La cuarta fila solo contiene la Dinnerentrada, ya que "Relax" se extiende hasta la
celda al lado.
Si desea ver cómo el navegador interpreta el código anterior, no dude en copiarlo y pegarlo
en el editor de código para comprenderlo un poco mejor.
Cuerpo de la mesa
Con el tiempo, una tabla puede crecer hasta contener una gran cantidad de datos y volverse
muy larga. Cuando esto sucede, la mesa se puede dividir en secciones para que sea más
fácil de manejar.
Las mesas largas se pueden dividir utilizando el elemento del cuerpo de la mesa<tbody> : .
El <tbody>elemento debe contener todos los datos de la tabla, excluyendo los encabezados
de la tabla (más sobre esto en un ejercicio posterior).
<table>
<tbody>
<tr>
<th></th>
<th>Saturday</th>
<th>Sunday</th>
</tr>
<tr>
<th>Morning</th>
<td rowspan="2">Work</td>
<td rowspan="3">Relax</td>
</tr>
<tr>
<th>Afternoon</th>
</tr>
<tr>
<th>Evening</th>
<td>Dinner</td>
</tr>
</tbody>
</table>
En el ejemplo anterior, todos los datos de la tabla están contenidos dentro de un elemento
del cuerpo de la tabla. Sin embargo, tenga en cuenta que los títulos también se mantuvieron
en el cuerpo de la tabla; cambiaremos esto en el siguiente ejercicio.
Cabeza de mesa
En el último ejercicio, los títulos de la tabla se mantuvieron dentro del cuerpo de la tabla. Sin
embargo, cuando el cuerpo de una tabla está seccionado, también tiene sentido seccionar
los encabezados de las columnas de la tabla usando el <thead>elemento.
<table>
<thead>
<tr>
<th></th>
<th scope="col">Saturday</th>
<th scope="col">Sunday</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Morning</th>
<td rowspan="2">Work</td>
<td rowspan="3">Relax</td>
</tr>
<tr>
<th scope="row">Afternoon</th>
</tr>
<tr>
<th scope="row">Evening</th>
<td>Dinner</td>
</tr>
</tbody>
</table>
El <thead> elemento debe contener todos los datos de la tabla, excluyendo los encabezados
de la tabla (más sobre esto en un ejercicio posterior).
Además, solo los encabezados de las columnas van debajo del <thead>elemento. Podemos
usar el scope atributo en <th>elementos para indicar si un <th>elemento se está usando
como "row"encabezado o "col"encabezado.
Pie de página
Con este elemento también se puede seccionar la parte inferior de una mesa larga <tfoot>.
<table>
<thead>
<tr>
<th>Quarter</th>
<th>Revenue</th>
<th>Costs</th>
</tr>
</thead>
<tbody>
<tr>
<th>Q1</th>
<td>$10M</td>
<td>$7.5M</td>
</tr>
<tr>
<th>Q2</th>
<td>$12M</td>
<td>$5M</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Total</th>
<td>$22M</td>
<td>$12.5M</td>
</tr>
</tfoot>
</table>
En el ejemplo anterior, el pie de página contiene los totales de los datos de la tabla. Los pies
de página se utilizan a menudo para contener sumas, diferencias y otros resultados de
datos.
CSS , u hojas de estilo en cascada, es un lenguaje que los desarrolladores web utilizan para
diseñar el contenido HTML de una página web. Puede utilizar CSS para aplicar estilo a las
tablas. Específicamente, puede diseñar los diversos aspectos mencionados anteriormente.
table, th, td {
border: 1px solid black;
font-family: Arial, sans-serif;
text-align: center;
}
El código del ejemplo anterior muestra solo algunos de los diversos aspectos de la tabla a
los que puede aplicar estilos utilizando propiedades CSS.
Revisar
¡Gran trabajo! En esta lección, aprendimos cómo crear una tabla, agregar datos y dividir la tabla en
partes más pequeñas para facilitar su lectura.
Los títulos de las tablas aclaran el significado de los datos. Los encabezados se agregan con
el <th>elemento.
Los datos de la tabla pueden abarcar columnas usando el colspan atributo.
Las tablas se pueden dividir en tres secciones principales: encabezado, cuerpo y pie de
página.
Todas las propiedades de CSS que aprendió en este curso se pueden aplicar a tablas y sus
datos.
Nota: Los verbos HTTP como POST no necesitan estar en mayúscula para que la solicitud
funcione, pero lo hacen fuera de convención. En el ejemplo anterior podríamos haber escrito
method="post"y aún funcionaría.
El <form>elemento también puede contener elementos secundarios. Por ejemplo, sería útil
proporcionar un encabezado para que los usuarios sepan de qué <form>se trata. También
podríamos agregar un párrafo para brindar aún más detalles. Veamos un ejemplo de esto en
código:
El ejemplo anterior no recopila ninguna entrada del usuario, pero lo haremos en el siguiente
ejercicio. Por ahora, ¡practiquemos cómo crear la base de un HTML <form>!
Entrada de texto
Si queremos crear un campo de entrada en nuestro <form>, necesitaremos la ayuda del <input>elemento.
El <input> elemento tiene un type atributo que determina cómo se representa en la página web y qué tipo de datos puede
aceptar.
El primer valor del type atributo que vamos a explorar es "text". Cuando creamos un <input>elemento con type="text", genera
un campo de texto en el que los usuarios pueden escribir. Tenga en cuenta que el valor predeterminado de type es "text".
También es importante que incluyamos un name atributo para el <input>; sin el name atributo, la información contenida en el
<input>no se enviará cuando se <form>envíe. Explicaremos más sobre los envíos y el botón de enviar en un ejercicio posterior.
Por ahora, examinemos el siguiente código que produce un campo de entrada de texto:
Aquí hay una captura de pantalla de cómo se ve el formulario renderizado en una página web para el navegador Chrome
(diferentes navegadores tienen una representación predeterminada diferente). Cuando se cargue inicialmente, será un cuadro
vacío:
Después de que los usuarios escriben en el <input>elemento, el valor del value atributo se convierte en lo que se escribe en el
campo de texto. El valor del value atributo se empareja con el valor del name atributo y se envía como texto cuando se envía el
formulario. Por ejemplo, si un usuario escribió "detalles importantes" en el campo de texto creado por nuestro <input>elemento:
Cuando se envía el formulario, el texto: "first-text-field=important details"se envía a /example.html porque el valor del name
atributo es "first-text-field"y el valor de value es "important details".
También podríamos asignar un valor predeterminado para el value atributo para que los usuarios tengan un campo de texto
precargado cuando vean por primera vez el formulario renderizado, así:
Lo que representa:
Para que un usuario identifique correctamente, <input>utilizamos el <label>elemento con el nombre apropiado.
El <label>elemento tiene una etiqueta de apertura y cierre y muestra texto escrito entre las etiquetas de apertura y cierre.
Para asociar a <label>y an <input>, se <input>necesita un id atributo. Luego asignamos el for atributo del
Entrada de contraseña
Piense en todas esas veces que tenemos que poner información confidencial, como una contraseña o PIN, en un archivo
<form>. ¡No queremos que nuestra información sea vista por nadie que mire por encima de nuestro hombro!
¡Afortunadamente, tenemos el type="password"atributo para <input>!
Un <input type ="password">elemento reemplazará el texto ingresado con otro carácter como un asterisco (*) o un
punto (•). El siguiente código proporciona un ejemplo de cómo crear un campo de contraseña:
<form>
<label for="user-password">Password: </label>
<input type="password" id="user-password" name="user-password">
</form>
Aunque el campo de contraseña oscurece el texto de la contraseña, cuando se envía el formulario, se envía el valor del texto.
En otras palabras, si se escribe "hunter2" en el campo de contraseña, se envía "user-password=hunter2" junto con el resto de la
información del formulario.
Entrada de números
Ahora hemos repasado dos typeatributos <input>relacionados con el texto. Pero es posible que queramos que nuestros
usuarios escriban un número, en cuyo caso podemos establecer el typeatributo en... (lo adivinaste) "number"....
Al configurar type="number"un <input>podemos restringir lo que los usuarios escriben en el campo de entrada a solo
números (y algunos caracteres especiales como -, +y .). También podemos proporcionar un stepatributo que crea flechas
dentro del campo de entrada para aumentar o disminuir según el valor del stepatributo. A continuación se muestra el código
<form>
<label for="years"> Years of experience: </label>
<input id="years" name="years" type="number" step="1">
</form>
Lo que representa:
Ahora es el momento de aplicar este conocimiento.
Entrada de rango
Usar un <input type="number"> es excelente si queremos permitir a los usuarios escribir cualquier número que elijan.
Pero, si quisiéramos limitar los números que nuestros usuarios pueden escribir, podríamos considerar usar un type valor
diferente. Otra opción que podríamos usar es configurar type lo "range"que crea un control deslizante.
Para establecer los valores mínimo y máximo del control deslizante asignamos valores al atributo min y max del <input>.
También podríamos controlar qué tan suave y fluido funciona el control deslizante asignando step un valor al atributo. Los
valores más pequeños step harán que el control deslizante se mueva con mayor fluidez, mientras que step los valores
más grandes harán que el control deslizante se mueva más notablemente. Eche un vistazo al código para crear un control
deslizante:
<form>
<label for="volume"> Volume Control</label>
<input id="volume" name="volume" type="range" min="0" max="100"
step="1">
</form>
En el ejemplo anterior, cada vez que el control deslizante se mueve uno, el valor del <input>atributo value cambia.
<form>
<p>Choose your pizza toppings:</p>
<label for="cheese">Extra cheese</label>
<input id="cheese" name="topping" type="checkbox"
value="cheese">
<br>
<label for="pepperoni">Pepperoni</label>
<input id="pepperoni" name="topping" type="checkbox"
value="pepperoni">
<br>
<label for="anchovy">Anchovy</label>
<input id="anchovy" name="topping" type="checkbox"
value="anchovy">
</form>
Lo que representa:
Hay valores asignados al value atributo de las casillas de verificación. Estos valores no son visibles en el
formulario en sí, por eso es importante que usemos un asociado <label>para identificar la casilla de verificación.
cada uno <input>tiene el mismo valor para el name atributo. Usar lo mismo name para cada casilla de
verificación agrupa los <input>s. Sin embargo, cada uno <input>tiene un exclusivo id para combinar con un
archivo <label>.
<form>
<p>What is sum of 1 + 1?</p>
<input type="radio" id="two" name="answer" value="2">
<label for="two">2</label>
<br>
<input type="radio" id="eleven" name="answer" value="11">
<label for="eleven">11</label>
</form>
Lo que representa:
Observe en el fragmento de código que los botones de opción (como las casillas de verificación) no muestran su valor.
Tenemos un asociado <label>para representar el valor del botón de radio. Para agrupar botones de opción, les asignamos lo
La lista desplegable
Los botones de opción son geniales si queremos que nuestros usuarios elijan una opción entre algunas opciones
visibles, ¡pero imagina si tuviéramos una lista completa de opciones! Esta situación podría llevar rápidamente a
que haya muchos botones de opción a los que realizar un seguimiento.
Una solución alternativa es utilizar una lista desplegable para permitir a nuestros usuarios elegir una opción de
una lista organizada. Aquí está el código para crear un menú desplegable:
<form>
<label for="lunch">What's for lunch?</label>
<select id="lunch" name="lunch">
<option value="pizza">Pizza</option>
<option value="curry">Curry</option>
<option value="salad">Salad</option>
<option value="ramen">Ramen</option>
<option value="tacos">Tacos</option>
</select>
</form>
Lo que representa:
Observe en el código que estamos usando el elemento <select>para crear la lista desplegable. Para
completar la lista desplegable, agregamos varios <option> elementos, cada uno con un value atributo. De
El texto representado es el texto incluido entre las <option>etiquetas de apertura y cierre. Sin embargo, es el
valor del value atributo el que se utiliza en <form> el envío (observe la diferencia en el texto y value las
mayúsculas). Cuando se <form>envía, la información de este campo de entrada se enviará utilizando el name
del <select>y el value del elegido <option>. Por ejemplo, si un usuario selecciona Pizza en la lista
utilizar el elemento.
que los usuarios pueden escribir y filtrar opciones desde el archivo <datalist>. Repasemos un ejemplo
concreto:
<form>
<label for="city">Ideal city to visit?</label>
<input type="text" list="cities" id="city" name="city">
<datalist id="cities">
<option value="New York City"></option>
<option value="Tokyo"></option>
<option value="Barcelona"></option>
<option value="Mexico City"></option>
<option value="Melbourne"></option>
<option value="Other"></option>
</datalist>
</form>
<input>elemento asociado, los usuarios pueden escribir en el campo de entrada para buscar una opción en
particular. Si ninguno de los <option>s coincide, el usuario aún puede usar lo que escribió. Cuando se envía el
formulario, el valor de los <input> name y value de la opción seleccionada, o lo que el usuario escribió, se
información. Sin embargo, hay casos en los que los usuarios necesitan escribir más información, como una
publicación de blog. En tales casos, en lugar de usar un <input>, podríamos usar <textarea>.
El <textarea>elemento se utiliza para crear un campo de texto más grande para que los usuarios escriban
más texto. Podemos agregar los atributos rows y cols determinar la cantidad de filas y columnas para el
<form>
<label for="blog">New Blog Post: </label>
<br>
<textarea id="blog" name="blog" rows="5" cols="30">
</textarea>
</form>
siguiente manera:
Si quisiéramos un campo de texto aún más grande, podríamos hacer clic y arrastrar en la esquina inferior
derecha para expandirlo.
Cuando enviamos el formulario, el valor de <textarea>es el texto escrito dentro del cuadro. Si queremos
agregar un valor predeterminado, <textarea>lo incluiríamos dentro de las etiquetas de apertura y cierre de
esta manera:
Este código generará un <textarea> mensaje que contiene texto precargado: "Agregar texto
predeterminado".
Enviar formulario
Recuerde, el propósito de un formulario es recopilar la información que se enviará. Esa es la función
del botón de enviar: los usuarios hacen clic en él cuando terminan de completar la información
<form>y están listos para enviarlo. Ahora que hemos repasado cómo crear varios elementos de
entrada, ¡repasamos cómo crear un botón de envío!
<form>
<input type="submit" value="Send">
</form>
Lo que representa:
botón.
Revisar
<form>¡Buen trabajo interactuando con un elemento extremadamente común y útil !
La configuración type para "text"crea un campo de una sola fila para la entrada
de texto.
La configuración type para "password"crea un campo de una sola fila que censura
la entrada de texto.
La configuración type para "number"crea un campo de una sola fila para la entrada
de números.
La configuración type para "range"crea un control deslizante para seleccionar
lista desplegable.
Un <datalist>elemento se completa con <option>elementos y funciona con un
Cuando <form>se envía a, los name campos que aceptan entradas y los value de esos
El uso del <form>elemento junto con los otros elementos enumerados anteriormente nos permite
crear sitios que toman en consideración los deseos y necesidades de nuestros usuarios. ¡Aprovecha
la oportunidad de tomar lo que has aprendido y aplicarlo!
Por otro lado, utilizamos la validación del lado del cliente si queremos comprobar los datos en el
navegador (el cliente). Esta validación se produce antes de que se envíen los datos al servidor.
Diferentes navegadores implementan la validación del lado del cliente de manera diferente, pero
conducen al mismo resultado.
Los diferentes navegadores comparten los beneficios de utilizar la validación integrada del lado del
cliente de HTML5. Nos ahorra tiempo al tener que enviar información al servidor y esperar a que el
servidor envíe confirmación o rechazo de los datos. Esto también puede ayudarnos a proteger
nuestro servidor de códigos o datos maliciosos de un usuario malintencionado. También nos permite
brindar comentarios rápidamente a los usuarios sobre campos específicos en lugar de tener que
completar un formulario nuevamente si los datos que ingresaron en el formulario fueron rechazados.
un <input>elemento.
</form>
Si un usuario intenta enviar una entrada menor que 1, aparecerá una advertencia: