Copia de Asig IoT. Practica10. HTML
Copia de Asig IoT. Practica10. HTML
Objetivo
El objetivo de esta página es lograr conocer los fundamentos del protocolo HTTP, de HTML,
de las herramientas como editores, simuladores y servidores web, sin JavaScript por ahora,
pero de manera suficiente para que con ayuda de Chat GPT el estudiante pueda
cómodamente superar cualquier dificultad en soluciones para IoT en el lado del cliente. Esto
puede ser visto como el preámbulo a las Web Apps donde se trabajarán soluciones
cliente-servidor con su Front-End y su Back-End. En una siguiente práctica se incluirá el uso
de JavaScript para concluir los conocimientos necesarios para crear soluciones de
Front-End.
Conocimientos previos
Lenguaje HTML
HTML significa lenguaje de marcado de hipertexto. HTML es un lenguaje utilizado para
estructurar un contenido visual amigable a la vista de los humanos. En este sentido es muy
similar al lenguaje que usan editores como Word o Latex, pero el HTML tiene una ventaja -
es el mundialmente aceptado para los navegadores web. HTML hace que el contenido de
una página web pueda ser interpretado como en forma de texto para que sea fácilmente
interpretado en un punto final. Es posible ver el HTML como un conjunto de órdenes que se
le dan a un navegador para que logre construir una página en una forma deseada.
Servidor web
El servidor web es una pieza de software que almacena y entrega contenido web. Esto
podría ser un servidor físico o una infraestructura en la nube. Cuando se utiliza AJAX en
una página web, las solicitudes asincrónicas se envían al servidor web para obtener o
enviar datos, como información de la base de datos, archivos, actualizaciones en tiempo
real, etc.
Con el tiempo, los navegadores han evolucionado para interpretar no solo contenido HTML,
sino también código JavaScript y contenido CSS en una página web. Esto es un hecho
clave en el desarrollo web moderno.
Un elemento html
Un documento HTML está compuesto de elementos. Un elemento está compuesto de una
etiqueta de apertura y una de cierre. En medio de las etiquetas va el contenido, como se
muestra en la Fig. 3
● La etiqueta de apertura: consiste en el nombre del elemento (en este caso, p),
encerrado por paréntesis angulares (< >) de apertura y cierre. Establece dónde
comienza o empieza a tener efecto el elemento - en este caso, dónde es el
comienzo del párrafo
● La etiqueta de cierre: es igual que la etiqueta de apertura, excepto que incluye una
barra de cierre (/) antes del nombre de la etiqueta. Establece dónde termina el
elemento - en este caso dónde termina el párrafo.
● El contenido: este es el contenido del elemento, que en este caso es sólo texto.
El anidamiento en html
Es posible anidar un elemento dentro de otro, por ejemplo
Elementos vacíos
Es posible encontrar elementos HTML que no están pensados en visualizar información, de
manera que la etiqueta de apertura y la de cierre es diferente. Por ejemplo:
<img>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Mi pagina de prueba</title>
</head>
<body>
<p>Mi gato es <strong>muy</strong> gruñón.</p>
</body>
</html>
Etiquetas de encabezados
<h1>Mi título principal</h1>
<h2>Mi título de nivel superior</h2>
<h3>Mi subtítulo</h3>
<h4>Mi sub-subtítulo</h4>
Código CSS
Significa Cascading Style Sheets. Se trata de código que puede aparecer en un documento
HTML, en el elemento <head> para responder a preguntas como: ¿Cómo hago mi texto
rojo o negro? ¿Cómo hago que mi contenido se muestre en tal y tal lugar de la
pantalla? ¿Cómo decoro mi página web con imágenes de fondo y colores?. Es un
lenguaje de hojas de estilo, es decir, te permite aplicar estilos de manera selectiva a
elementos en documentos HTML.
Muchas veces el código se escribe en un archivo style.css. Pero si se hace de esa manera
es necesario referencia ese archivo en el elemento <head> del documento HTML.
La anatomía de una orden CSS es la que se muestra en la siguiente figura
<head>
<title>Mi título</title>
<style>
p{
color: red;
width: 500px;
border: 1px solid black;
}
</style>
</head>
Selector de elemento
Todos los elementos HTML p
(llamado algunas veces
del tipo especificado. Selecciona <p>
selector de etiqueta o tipo)
El elemento en la página
con el ID especificado (en #mi-id
Selector de identificación
una página HTML dada, Selecciona <p id="mi-id"> y
(ID)
solo se permite un único <a id="mi-id">
elemento por ID).
img[src]
Los elementos en una
Selecciona <img
Selector de atributo página con el atributo
src="mimagen.png"> pero
especificado.
no <img>
Los elementos
especificados, pero solo a:hover
cuando esté en el estado Selecciona <a>, pero solo
Selector de pseudoclase
especificado, por ejemplo cuando el puntero esté
cuando el puntero esté sobre el enlace.
sobre él.
Paso 1. Crear un documento HTML que represente un avance para la oficina de despachos,
pero que por ahora incluye solo elementos mínimos de un documento HTML con el fin de
comprender/repasar cuales son esos elementos.
Ejemplo de la orden para Chat GPT:
Dame el código HTML para un documento HTML de acuerdo a los siguientes
requerimientos:
Título: “Servicios a la oficina de reparto”
Lo que los clientes verán en el navegador: Órdenes recibidas para el despacho
Escribe aquí el código HTML obtenido. Nota: Si al pegar el código no aparece con estilo
elegante usa un embellecedor de código como por ejemplo: http://hilite.me/
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
</head>
<body>
<h1>Órdenes recibidas para el despacho</h1>
<!-- Aquí puedes agregar más contenido si es necesario -->
</body>
</html>
Usa un simulador del navegador (HTML viewer) para comprobar el resultado del HTML
anterior. Por ejemplo se puede usar: Code Viewer(https://codebeautify.org/htmlviewer).
Tambien puedes usar un editor en línea de Front-End como:
¿Que has aprendido en este paso? ¿Qué es lo mínimo que debe tener un documento
HTML?
RTA: En este paso, he aprendido la importancia de la estructura básica de un documento
HTML y cómo crearla. Me di cuenta de que un documento HTML mínimo debe tener
ciertos elementos clave para que funcione correctamente en un navegador web. Estos
elementos incluyen:
Paso 2. Usa Chat GPT para conocer el elemento que debes agregarle al <body> de tu
HTML para que aparezca una imagen elegante en la parte superior de la página
Busca la URL de una imágen en internet. Por ejemplo en el buscador de google busca
imágenes de neveras inteligentes. Copia la URL (la dirección del vínculo) y escribela aquí:
https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1024x
1024.jpg
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
El elemento HTML para una imagen es `<img>`. Este elemento se utiliza para incrustar
imágenes en una página web. Tiene dos atributos principales: `src`, que especifica la URL
de la imagen que se va a mostrar, y `alt`, que proporciona un texto alternativo para la
imagen en caso de que no se pueda cargar o para usuarios con discapacidad visual.
Paso 3. Con ayuda de Chat GPT agrega código CSS al documento HTML del paso anterior
Ejemplo 1:
Tengo un HTML y quiero que le agregues el CSS necesario para que el párrafo aparezca
en color rojo, dentro de un marco de 500 píxeles de ancho. El siguiente es el HTML que
tengo: [pega aquí tu código HTML]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<style>
p{
color: red; /* Cambia el color del texto a rojo */
max-width: 500px; /* Establece el ancho máximo del párrafo a 500 píxeles */
margin: 0 auto; /* Centra el párrafo horizontalmente dentro de su contenedor */
border: 2px solid black; /* Añade un borde negro alrededor del párrafo */
padding: 10px; /* Añade espacio interno alrededor del párrafo */
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
En este paso, he aprendido cómo agregar estilos visuales a elementos HTML utilizando
CSS que es un lenguaje de diseño utilizado para controlar el aspecto y el formato de un
documento HTML.
El CSS es fundamental para dar estilo y diseño a una página web. Permite especificar
propiedades como colores, tamaños, márgenes, bordes y posicionamiento de elementos
HTML, lo que ayuda a mejorar la apariencia y la experiencia del usuario en el sitio web.
Paso 4. Agrega al HTML anterior una tabla de las solicitudes que provienen de la nevera
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
Tengo un HTML. Deseo que modifiques el CSS para que la tabla sea más elegante
usando un servicio de estilos como bootstrap. Mi código HTML es el siguiente: [escribe tu
codigo HTML aquí]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
</body>
</html>
Por ahora recurriremos a una solución poco elegante pero que soluciona el problema
usaremos un hipervínculo que apunte a la Google Sheet.
Escribe aquí la URL de la Google Sheet donde son registrados los datos. Procura
previamente configurar la Google Sheet con permisos para que cualquier persona la
pueda ver. Ejemplo:
https://docs.google.com/spreadsheets/d/1bBtfmCT5sGC3dHzFXXno6FM2zUipWa2yGj4td
VOfm22
https://docs.google.com/spreadsheets/d/1c2STi1lqTB3BR_Q-dbr_qE1HJGXvlytG8cc_yR5
_Vwc/edit#gid=0
Hazle a Chat GPT una solicitud de apoyo para agregar el hipervínculo al código HTML
obtenido en la tarea anterior.
Ejemplo para solicitar a Chat GPT la solución:
Tengo el HTML de una página y quiero agregar un hipervínculo. Los datos son los
siguientes:
Enlace para el hipervínculo: [pega aquí la URL de tu google sheet],
Nombre del hipervínculo: Haz click aquí para ver tabla de datos
El HTML que tengo es el siguiente: [aquí pega el último HTML obtenido]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
En este paso, aprendí a agregar hipervínculos a una página web utilizando HTML. El
elemento HTML utilizado para crear hipervínculos es <a>, abreviatura de "anchor" (ancla).
Para usar este elemento, necesitamos especificar el atributo href, que contiene la URL a
la que queremos que apunte el hipervínculo.
Copia el código HTML resultante, el cual incluye la URL pero dentro de un frame
Copia abajo el Código HTML obtenido para embeber la versión web de la Google Sheet
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
</body>
</html>
width="250%"
Pídele ayuda a Chat GPT para embeber ese código a tu HTML. Escribe abajo el código
final obtenido.
Ejemplo de la solicitud a Chat GPT:
Tengo un HTML quiero embeberle en la parte final el frame obtenido en la pregunta
anterior. Mi HTML es el siguiente: [escribe aquí el codigo de tu documento HTML]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
</body>
</html>
Captura de pantalla del simulador de navegador.
Parte 1: Te logeas en gmail > https://sites.google.com/ > Crear un sitio > seleccione una
plantilla si puede, si no puede que sea una hoja en blanco > esquina superior izquierda>
dele un nombre al archivo > mas abajo, en logotipo dele en nombre de la futura página, por
ejemplo “repartos”, como se muestra en la siguiente figura
Parte 2: póngale un título que verá el cliente, por ejemplo “Departamento de repartos” >
Parte 3: inserte su código html así: Menu panel izquierdo > Insertar > “<>Insertar” > Insertar
código > pegue allí su HTML > Siguiente > Insertar > borre todo aquello que ofrece la
plantilla pero que tu no deseas para tu página
Parte 4. Note que lo que tienes hasta ahora es simplemente un archivo, no es aún una
página web. Puedes ver el archivo en Google Drive > recientes > miPrimerSitio. Lo que falta
ahora es generar una página web a partir de ese archivo. Este es el proceso:
Menu superior derecho > Publicar > Publicar. Ahora puedes ver el sitio web publicado así:
Ahora verás en la barra superior del navegador que tu sitio web tiene una URL
https://sites.google.com/view/nevera-inteligente-mmandon-uis/p%C3%A1gina-principal
Paso 2. Uso de jsfiddle para comprobar que se logra lo mismo que con el HTML Viewer.
Pega el código obtenido en la tarea anterior en la ventana HTML de jsfiddle, córrelo con
“Run” y observa el resultado. Pega abajo el resultado.
Paso 3. Uso más profesional de un editor de HTML. Separa el código CSS del documento
HTML para usarlo de manera más natural en jsfiddle.
Escribe aquí el código HTML sin CSS
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servicios a la oficina de reparto</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
</head>
<body>
<img
src="https://d2yoo3qu6vrk5d.cloudfront.net/images/20240119130001/nevera-inteligente-1
024x1024.jpg" style="max-width: 100%;" alt="Nevera inteligente">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
tr:nth-child(1) {
background-color: orange;
}
</style>
Crea un un nuevo fiddle para esta prueba así: > Your fiddles > New fiddle. Pega el
código HTML en la ventana HTML y el código CSS en la ventana CSS. Corre la solución
con “Run”, pega un pantallazo del resultado (ventana Result)
Conclusión 1: Usa Chat GPT para aclarar las siguientes inquietudes ¿podríamos decir
que un editor permite trabajar HTML y CSS parados cada uno en un archivo? ¿Cómo
hace el navegador para operar con los varios archivos de una página si solo tiene una
URL? ¿Se supone que esa URL no es de ninguno de esos archivos sino de un producto
que resulta de la conversión a página web?. Lee lo que dice Chat GPT y resume la
conclusión con tus propias palabras.
1. Trabajo con archivos HTML y CSS: Es común trabajar con HTML y CSS en archivos
separados utilizando un editor de código. Esto permite mantener la estructura del
documento (HTML) y el diseño y estilo (CSS) en archivos diferentes para una mejor
organización y modularidad del código.
2. Funcionamiento del navegador con múltiples archivos: Cuando el navegador recibe una
URL, envía una solicitud al servidor web correspondiente. El servidor responde enviando
los archivos asociados con esa URL, que pueden incluir archivos HTML, CSS, JavaScript,
imágenes, etc. El navegador interpreta y combina estos archivos para renderizar la
página web completa.
3. URL como punto de acceso al producto final: Aunque la URL puede no ser específica
de un archivo HTML o CSS en particular, sirve como punto de entrada al producto final: la
página web completa. El navegador carga y muestra todos los recursos necesarios para
mostrar la página web correctamente, incluidos los archivos HTML, CSS y otros recursos
asociados.
Conclusión 2: Está claro que un entorno de desarrollo como jsfiddle entrega varios
archivos para una sola solución, que no hay problema para un servidor web trabajar con
varios archivos, pero ¿si tengo varios archivos de una solución web obtenidos con jsfiddle
y quiero embeber la solución en una página web, como es el caso de Google Sites, cómo
obtengo el código html a embeber a partir de los varios archivos de la solución web?
Al embeber una solución web obtenida de varios archivos de JSFiddle en una página de
Google Sites, primero debo combinar todo el contenido de los archivos HTML, CSS y
JavaScript en un solo archivo para simplificar la inserción. Luego, copio el código HTML
principal, que incluye las etiquetas `<html>`, `<head>`, `<body>` y las referencias a los
archivos CSS y JavaScript, y lo pego en el editor de Google Sites. Si hay archivos CSS y
JavaScript separados, también copio su contenido y lo inserto dentro de las etiquetas
`<style>` y `<script>` respectivamente, en el código HTML principal. Aseguro que las
referencias a recursos como imágenes estén correctamente ajustadas para que funcionen
correctamente una vez insertadas en Google Sites. Después de pegar el código HTML en
Google Sites, reviso la vista previa y hago cualquier ajuste necesario para garantizar que
la solución web se muestre correctamente en la página.
Paso 2. Aprender a manejar GitHub como repositorio requiere un taller solo dedicado a eso.
Por ahora, lo que nos interesa es otra cosa: que GitHub tiene un servicio llamado GitHub
pages a donde podemos subir los archivos de un desarrollo web y los publica como una
página web. Este servicio puede ser considerado como Serverless, ya que de otra suerte
tendríamos que crear un servidor web propio para este fin.
https://michaelmandon.github.io/
Escribe aquí el paso a paso para usar GitHub Pages como servidor Web
Paso 4. Embebe tu página web, en Google Sites usando la URL de tu página web