Apuntes HTML
Apuntes HTML
https://www.youtube.com/watch?v=vz4z0RLcAyk
1. Instalación del editor de código fuente y plugins. Visual Studio Code. La instalación de los plugins se
realiza en el quinto ícono de la izquierda de Visual Studio Code.
2. Vocabulario Web.
a) IP. Identificador numérico de una página web. Es único y representa donde se encuentra el ordenador que
contiene dicha página web. Sería el DNI de la página web.
b) Dominio/URL (Uniform Resources Locator). Nombre asociado a la IP. Los humanos recordamos más
fácilmente los nombres que los números. Por ende, el dominio/URL, nos permite recordar el nombre de las
páginas más fácilmente. Cabe destacar que también podríamos entrar a una página web con su IP. Por
ejemplo, para entrar a Google, puedo escribir google.com o 216.58.201.163.
c) DNS (Domain Name System). Servidor cuya función es traducir el nombre de dominio a su IP. El DNS
tiene una tabla que contiene tanto las IPs como sus dominios correspondientes.
e) Sitio Web. Conjunto de uno o varios recursos web alojados en el mismo dominio.
e) Servidor Web. Ordenador cuyo objetivo es servir recursos web.
f) Hosting. Almacenamiento del servidor web.
g) Petición. Acción de solicitar recursos al servidor.
4. Historia de HTML.
- (1989) Inicio de su desarrollo.
- (1991) Lanzamiento de la web basada en tres conceptos: http, html y url.
- (1992) Lanzamiento de HTML.
- (1994) Creación de la W3C (consorcio que define los estándares de la web).
- (1998) Lanzamiento de HTML4. Versión que más duró de HTML.
- (1999) Lanzamiento de HTML 4.1. Versión muy restrictiva.
- (2004) Creación de la WHATWG (consorcio paralelo a la W3C). Su objetivo era trabajar en HTML5.
- (2008) Lanzamiento de HTML5. Lo lanzó WHATWG, pero W3C no estaba de acuerdo.
- (2014) Estándar HTML5. Dado que las personas adoptaron HTML5, W3C lo tuvo que aprobar.
- (Actualidad) Estándar HTML5.2. Es la última actualización.
Recomendación. Documental ‘‘Guerra de los Navegadores’’.
5. Sintaxis HTML. Funciona a través de etiquetas. Se utiliza una de apertura y una de cierre. En medio de
ambas, se encontrará el contenido. Cabe destacar que no todas las etiquetas sirven para el mismo contenido.
- Footer <footer></footer>. Pie de página. Contiene todo aquello que en la página web haya podido pasar
desapercibido como por ejemplo las redes sociales, el contacto o un formulario de contacto o suscripción.
También se suele utilizar para colocar el copyright o la política de privacidad. Lo ideal es poner solo lo más
importante. No debemos llenar el footer de elementos que no aporten nada o confundan al usuario. Pese a
que es una práctica muy extendida no debemos incluir elementos como el mapa del sitio ni imágenes o
demasiado texto.
a) Elementos de Bloque. Son aquellos elementos que, a pesar de que su contenido no ocupe todo el ancho de
la página, el bloque que lo contiene si lo hace. Por ejemplo, <h1></h1>. Lo podemos ver a continuación.
Elemento de bloque.
Lista completa de elementos de bloque. <address> <article> <aside> <blockquote> <canvas> <dd> <div>
<dl> <dt> <fieldset> <figcaption> <figure> <footer> <form> <h1>-<h6> <header> <hr> <li> <main>
<nav> <noscript> <ol> <p> <pre> <section> <table> <tfoot> <ul> <video>.
b) Elementos de Línea. Son aquellos cuyo bloque que lo contiene ocupa únicamente el ancho de la página
que ocupa su contenido. Por ejemplo, <span></span>. Lo podemos ver a continuación.
Elemento de línea.
Lista completa de elementos de línea. <a> <abbr> <acronym> <b> <bdo> <big> <br> <button> <cite>
<code> <dfn> <em> <i> <img> <input> <kbd> <label> <map> <object> <output> <q> <samp> <script>
<select> <small> <span> <strong> <sub> <sup> <textarea> <time> <tt> <var>.
- Em/Small/Strong. Cursiva(emphasize)/Pequeña(menor énfasis)/Negrita(mayor énfasis).
- Mark (Resaltar/Highlight). Resaltar en amarillo.
- I (Italic), B (Bold) y U (Underline). Contradicen lo dicho hasta ahora dado que permiten dar estilo en
HTML. No se suelen usar. Se hace todo con CSS.
- Br. Forzar salto de línea. Nunca utilizar varios br juntos para separar elementos en HTML. Si quiero
separar algo, lo puedo hacer con el margin en CSS, pero nunca hacerlo en HTML.
- Wbr. Salto de línea si hiciera falta.
- Time. Se utiliza para representar un contenido de fecha y hora. Por ejemplo, la noticia ha sido publicada en
tal momento.
- Sup. Superíndice.
- Sub(Subíndice/Subscript).
- Del (Tachar/Strikeout).
- Q (Comillas).
- Bdo + Dir=“rtl”. Permite invertir el sentido de las letras, por ejemplo, si dice hola y aplicamos bdo, va a
decir aloh.
- Abbr + Title. Sirve para abreviaturas.
- Var. Definir variable.
*Por ende, si escribimos un h1 y luego un h2, el h2 aparecerá DEBAJO del h1. En cambio, si escribimos un
span y luego otro span, aparecerán uno al lado de otro. Lo podemos ver a continuación.
11. Atributos. Son valores adicionales que configuran los elementos y/o ajustan su comportamiento.
12. Enlaces (Links). Son la parte más importante de la web dado que permiten que las webs se conecten
entre sí y con recursos. Por ejemplo, cuando hago una búsqueda en Google, me aparecen enlaces con
resultados. Se insertan con <a href="RUTA DEL LINK QUE LLEVE A CONTACTO">Contacto.</a>. Al
hacer click en contacto, se haría click en el link que nos llevaría a la web donde se encuentra el mismo. La
letra a viene de anchor.
a) Rutas Absolutas. Busca AFUERA del proyecto. Tienen un protocolo (http o https) y son únicas en la red.
Se suelen utilizar para rutas externas. Por ejemplo, una ruta absoluta serviría para poner un link de Google
en mi página web.
c) Rutas dentro de la Misma Página. Busca DENTRO de la misma página. Sirve para que se haga un scroll
automático que nos lleve a una parte de la misma página en la que nos encontramos. Se le debe incorporar
un atributo (ID) al elemento al cual queremos ir y, al crear la etiqueta a para ir a dicho elemento, debemos
hacer referencia al atributo en el href.
13. Navegación a través de Anclas. Arriba hemos visto cómo navegar a través de links entre páginas, pero
también podríamos querer ir a un punto específico de la misma u otra página.
a) Link a parte específica de la misma página. Si queremos ir a una sección específica dentro de la misma
página. Lo que debemos hacer es nombrar la etiqueta con un id y luego incorporar un link con ese id. Así
funciona Wikipedia. Se puede ver a continuación.
<a href="#cap-5">Capítulo 5.</a>
<article id=“cap-5”> o <h2 id=“cap-5”>
b) Link a parte específica de otra página. Si queremos ir a una sección específica dentro de otra página, lo
que debemos hacer es nombrar la etiqueta de la otra página con un id y luego incorporar un link con ese id.
Se puede ver a continuación.
<a href="/paginas/capítulos.html#cap-5">Capítulo 5.</a>
<article id=“cap-5”> o <h2 id=“cap-5”>
*Si presiono alt + click en diferentes líneas, Visual Studio Code me permite escribir en todas a la vez.
Listas Anidadas. Se pueden construir listas anidadas. Por ejemplo, una lista ordenada dentro de una
desordenada o una lista desordenada dentro de una ordenada.
15. Tablas. Antes se utilizaban para incorporar todo el contenido dentro de una web. Actualmente sirven
para mostrar contenido tabulado. La estructura básica de una tabla es la siguiente.
a) Table. Contiene toda la tabla.
b) Caption. Título de la tabla.
c) Thead>TR>TH. Se utiliza para la cabecera.
d) Thbody. Contiene toda la tabla menos la cabecera.
e) TR (Table Row). Construye una fila.
f) TD (Table Data). Construye una celda dentro de la fila.
g) Tfoot (opcional). Pie de tabla.
*Se construyen fila a fila.
*El número de celdas establecerá el número de columnas.
Atributos para Tablas. Se puede hacer que las celdas ocupen más de una fila o más de una columna.
a) Rowspan. Sirve para que una celda ocupe más de una fila. El valor por defecto es 1.
b) Colspan. Sirve para que una celda ocupe más de una columna. El valor por efecto es 1.
Seleccionar Columnas. Hemos visto que seleccionando un <tr>, podemos seleccionar toda una fila. Si
queremos seleccionar toda una columna, tenemos la etiqueta <colgroup>, la cual nos permite seleccionar
una columna en concreto. Dentro pondremos tantas etiquetas <col> como columnas tengamos. Cada etiqueta
equivaldrá a una columna siguiendo el mismo orden que tiene la tabla.
a) Address. Se utiliza para aportar información de contacto para el article más cercano o para todo el body.
Por ejemplo, si tenemos un artículo que menciona una noticia que ha ocurrido en una dirección en concreto,
podríamos incorporar la dirección dentro de la etiqueta. Por ejemplo, si queremos incorporar una dirección
en el footer, también podríamos incorporar la dirección dentro de la etiqueta.
b) Blockquote. Se utiliza para marcar las citas a otros autores o documentos. Adentro va p. Se puede incluir
el atributo cite para poner un enlace al documento original o fuente.
c) Pre. Se utiliza para tener código preformateado que necesita ser representado exactamente igual que lo
que vemos en VS Studio Code. Con la misma fuente y tabulaciones.
d) Div. Se utiliza como división del documento. Semánticamente no significa nada. No es más que un
contenedor genérico que se usa para dar estilos a través de CSS o para la delegación de eventos en
JavaScript. El contenido dentro del div debe estar relacionado.
e) HR (Horizontal Rule). Se utiliza para decirle al navegador que vamos a cambiar de tema. Se representa
con una línea, pero no se debe utilizar para dibujar líneas como función principal.
a) Q (Quote). Contenedor equivalente a blockquote. Sirve para poner citas, pero en línea. Se puede incluir el
atributo cite para poner un enlace al documento original o fuente.
b) Span. Contenedor de línea equivalente a div. Se suele utilizar para encerrar palabras o pequeños textos y
darles estilo a través de CSS o localizarlos desde JavaScript. Semánticamente no significa nada.
c) Code. Sirve para encerrar código que queremos representar visualmente. Suele ir unido con la etiqueta
pre.
d) Entidades Especiales en HTML - Código ASCII. Ver https://ascii.cl/es/códigos-html.htm
18. Formularios. Hasta ahora, no hemos visto ningún tipo de interacción con el usuario de la página web. La
primera que veremos serán los formularios. Sirven para acceder a las páginas, para hacer pagos online, entre
otras funciones. Se utilizan para que los usuarios envíen datos. La estructura básica de los formularios se
compone de cuatro elementos.
a) Form. Contiene todo el formulario. Se le incorpora la etiqueta action, la cual define la ubicación (URL)
donde se envían los datos que el formulario ha recopilado cuando se validan.
b) Label. Sirve para escribir el título del campo a rellenar. No olvidar incorporarle el atributo for (para
relacionarlo con el input).
c) Input. Sirve para crear un campo que permitirá al usuario interactuar. No olvidar incorporarle los atributos
type, id (para relacionarlo con el label) y name (para nombrar la información). Hay varios types para input.
- Button. Visualmente es igual, pero el formulario no se enviará.
- Submit. Se utiliza para enviar el formulario.
- Inputs para fechas.
- Date. Se utiliza para introducir una fecha.
- Time. Se utiliza para introducir una hora.
- Datetime. Obsoleto.
- Datetime-local. Se utiliza para introducir una fecha y una hora. No funciona en Firefox.
- Month. Se utiliza para introducir un mes y un año.
- Week. Se utiliza para introducir una semana y un año.
*Se recomienda usar datetime-local y time para seleccionar fecha y hora.
- Inputs para móviles. Se ven iguales en la web, pero en los móviles cambia el teclado.
- Search. Se utiliza para las barras de búsqueda.
- Tel. Se utiliza para introducir números telefónicos.
- Email. Se utiliza para introducir un email.
- Password. Se utiliza para introducir una contraseña. Al escribir la contraseña, salen puntos para
ocultarla, pero si fuera a inspeccionar elemento y modifico el type, podría ver la contraseña que está
escrita.
- URL. Se utiliza para introducir una URL.
- Inputs seleccionables. En todos los casos va el label y luego el input, pero en los inputs seleccionables el
input se encuentra dentro del label.
- Radio. Permite seleccionar una única opción de una lista de opciones relacionadas. Se incorporarán
varios inputs, pero hay un problema. Se pueden seleccionar todos al mismo tiempo. Lo que hay que
hacer es incorporar el atributo name, con el mismo nombre en todos los casos para que el navegador
comprenda que los labels son del mismo formulario y, al marcar uno, se desmarquen los demás. A su
vez, podemos usar el atributo checked para que salga alguno marcado por defecto. Recordar que
tanto el name como el checked se coloca en la etiqueta input. No olvidar colocar el atributo value (si
es posible con el mismo nombre del label), dado que lo que se encuentre en dicho atributo será lo que
reciba el servidor.
- Checkbox. Permite seleccionar varias opciones de una lista de opciones relacionadas. Al igual que
en el tipo radio, se debe incorporar el atributo name y value.
- Select. Crea una lista de opciones donde podemos seleccionar una o varias opciones. Cada opción
irá dentro de una etiqueta option. Si tenemos muchas opciones podemos ordenarlas por categorías a
través de la etiqueta optgroup con el atributo label para nombrar la categoría. Si queremos que se
pueda seleccionar más de una opción, debemos incorporar la palabra multiple en el select.
- Datalist. Similar al select, pero con filtro.
- Inputs sin categoría.
- Color. Se utiliza para especificar un color. Se abre una paleta de colores. Sirve, por ejemplo, para
que el usuario pueda elegir el color de cierto elemento de la web.
- Number. Se utiliza para valores numéricos.
- Range. Se utiliza para establecer un rango. Sus atributos son step (establece de cuánto en cuánto se
moverá), min (el punto de partida) y max (el punto final).
- Reset Se utiliza para resetear el formulario.
- Text. Valor por defecto.
- Hidden. Campo oculto que puede contener valor, pero no se mostrará a menos que lo configuremos
con JavaScript para que si se muestre. Por ejemplo, podríamos poner en un input ¿tiene coche? Y que
el input hidden sea para incorporar el color del coche. Si el usuario pone que no tiene coche, no se
muestra, pero si el usuario pone que tiene coche, a través de JavaScript, podemos hacer que el input
hidden aparezca.
- File. Se utiliza para cargar archivos y enviarlos desde el formulario. Se complementa con CSS y
JavaScript.
d) Button. Botón que permitirá enviar el formulario.
Asociar Label e Input. Se coloca en label el atributo for y en input el atributo id. En ambos se pone el mismo
nombre y quedan asociados. Otra forma, que no se suele utilizar, es escribir el input dentro del label. Dicha
forma no se usa con frecuencia debido a que reduce las posibilidades del CSS.
19. Envío de Formularios. Método GET VS Método POST. El envío de formularios se realiza a través de un
método http (GET o POST). Se debe incorporar el atributo method en la etiqueta form para definir el
método a utilizar.
a) Método GET (método por defecto). Envío de formularios a través de la URL.
b) Método POST. Envío de formularios a través de la parte de atrás de la página.
20. Contenido Embebido. Consiste en todo aquel contenido que traemos desde afuera, es decir, que no
forman parte de nuestro código, pero queremos que formen parte de nuestra página web. Son los archivos
que más peso (tamaño) añaden a una página web. Los tipos más conocidos son imágenes, audios, videos e
iframes.
Insertar Imágenes. Se insertan con la etiqueta img. La misma tiene el atributo src (ruta de la imagen) y alt
(descripción de la imagen que aparecerá si la carga de la misma falla). A su vez, las imágenes SVG, pueden
ser insertadas a través del código que se utiliza para realizarlas.
Device Pixel Ratio. Ratio entre los pixels lógicos y los pixels físicos de un dispositivo. Sirve para el
responsive web design.
- Si mi DPR es de 1, el tamaño de 1 píxel lógico será de 1 píxel físico, por lo que ambos abarcarán el mismo
espacio en pantalla. DPR 1 = 1PL = 1PF
- Si mi DPR es de 2, el tamaño de 1 píxel lógico será de 4 píxeles físicos (2 píxeles físicos de ancho x 2
píxeles físicos de alto). DPR 2 = 1PL = 4PF
- Si mi DPR es de 3, el tamaño de 1 píxel lógico será de 9 píxeles físicos (3 píxeles físicos de ancho x 3
píxeles físicos de alto). DPR 3 = 1PL = 9PF
La razón por la que se creó el DPR pixel ratio fue el aumento de la resolución en los dispositivos móviles.
Con el aumento de la densidad de pixels físicos, si todos los dispositivos tuvieran un DPR de 1 las páginas
se renderizarían demasiado pequeñas.
Se recomienza NO utilizar las mismas imágenes para la versión de escritorio que para la versión móvil. Lo
que podemos alterar a través del atributo srcset o de la etiqueta picture.
- Atributo SRCSET. Sirve para decirle al navegador que cargue una imagen u otra en función del Device
Pixel Ratio. Se le debe modificar el atributo src de la etiqueta img por el atributo src y colocar ‘‘ruta de
imagen1, ruta de imagen 2 número dprx’’.
Si dprx se encontrara al lado de la ruta 1 (y no al lado de la ruta 2 como en el ejemplo), estaríamos aclarando
que a tal DPR queremos que aparezca la imagen uno, pero en el ejemplo al ponerlo al lado de la ruta 2,
estamos aclarando cuando queremos que aparezca la imagen dos (a DPR 3). A su vez, podemos agregar
ilimitadas rutas en srcset por si alguna imagen no es soportada por el sitio web.
¿Cómo ver qué imagen cargó la página? Click derecho, inspeccionar elemento, network y refresh. Aparecerá
en el recuadro inferior el nombre y peso de la imagen cargada. Si queremos probar distintos DPR, al dejar el
zoom en 100% en Chrome es DPR1, al hacer 300% de zoom en Chrome es DPR3. Así podremos hacer la
prueba y ver cual se carga.
- Etiqueta Picture. Sirve para hacer lo mismo que SRCSET, pero con más opciones. Dentro de la etiqueta
picture tendremos otras dos etiquetas.
- Etiqueta source con atributos srcset y media. Colocamos en srcset la ruta y en media la condición.
Por ejemplo, que aparezca la imagen cuando el tamaño de la pantalla sea inferior a 1200px.
- Etiqueta img con atributo src. Colocamos en img la ruta de la imagen que queremos que aparezca
cuando no se cumpla la condición de la etiqueta source. Por ejemplo, siguiendo el caso anterior,
aparecerá la imagen cuando la pantalla supere los 1200px.
b) Audios.
Insertar Audios. Se insertan con la etiqueta audio. La misma tiene el atributo src (ruta de la imagen) y
controls (para que aparezca el reproductor). También se puede incorporar el atributo autoplay para que inicie
la canción automáticamente, pero hay un problema. Actualmente los navegadores bloquean el autoplay
siempre y cuando el reproductor no se encuentre silenciado. Se puede agregar el atributo muted para que el
sonido inicie muteado y así funcionaría el autoplay (comenzaría a correr la canción, pero no se escucharía
hasta que saquen el muteado). A su vez, también podemos agregar la etiqueta loop para que, cuando el audio
termine, vuelva a comenzar desde el principio.
c) Video.
Insertar Videos. Se insertan con la etiqueta video. Se aplica TODO lo mismo que en los audios. El único
atributo distinto a los audios es poster, el cual sirve para elegir la imagen inicial que se mostrará antes de que
se reproduzca el video. Se puede elegir cualquier imagen. Si pusiéramos el autoplay, no se lograría apreciar
la imagen de poster.
d) Iframes. Consiste en agarrar una web, o parte de la misma, e insertarla dentro de la nuestra. Por ejemplo,
insertar videos de Youtube o publicaciones de Instagram en nuestra página.
Insertar Iframes. Se insertan con la etiqueta iframe. El problema que tienen los iframes es que dentro tienen
un HTML, lo que a la hora de cargar nos puede provocar mayor lentitud. No se recomienza incorporar
iframes dado que ralentizarán la carga de la web. Los atributos básicos son src, width (ancho) y height (alto).
e) Etiqueta Figure. Sirve para insertar contenido embebido, pero es opcional. Se utiliza siempre que se
quiera romper el flujo, con un contenido relacionado, pero que no es necesario para la interpretación del
artículo, es decir que, si lo elimináramos, se podría seguir comprendiendo. Contendría las etiquetas img,
audio, video e iframe.
Figcaption. Sirve para incorporar una descripción del contenido. Por ejemplo, la descripción que se
encuentra debajo de las fotos o debajo de las tablas.
21. Etiquetas Meta. Son las que van dentro del head. Suministran información codificada a navegadores y
motores de búsqueda sobre una página web. Los metadatos son invisibles para el usuario y se encargan de
añadir información para facilitar el análisis de los archivos HTML y la gestión del contenido de una página
web. Hasta ahora, conocíamos charset (para indicar la codificación de caracteres) y title (para nombrar la
pestaña). La mayoría de etiquetas meta tiene dos atributos.
a) Name. Tipo de metadato.
b) Content. Contenido del metadato.
22. Favicon. Consiste en la imagen que observamos como ícono en la pestaña de la web. Lo primero que hay
que hacer es ir a favicon-generator.org. Allí debemos cargar la imagen que queremos utilizar y nos la
convertirá a todos los formatos posibles de favicon. Se descargan todas las imágenes, se agregan a la carpeta
creada con el nombre favicons y se incorpora el código que nos otorga la misma página. Cabe destacar que
debemos modificar la ruta para que sea correcta.
23. FontAwesome. Es una librería de íconos que nos otorga una red de distribución de contenidos (CDN), es
decir, un servidor que tiene una copia de lo que estamos solicitando. Se debe incorporar en la etiqueta head
el CDN que nos otorga FontAwesome.
Luego ya podemos elegir íconos de la página e incorporarlos en nuestro código. No olvidar agregar el CDN
al head dado que, si no lo agregamos, los íconos no aparecerán.
24. Atributos de Accesibilidad. La accesibilidad hace referencia a la posibilidad de hacer una página web
accesible para todo el mundo. Independiente de si la pueden ver o no. Sirve para aquellas personas no
videntes que ingresen a nuestra web.
a) Tabindex. Sirve para que el usuario se mueve por la página en un orden.
b) Aria-Label. Sirve específicamente para gente invidente que utiliza el navegados por voz. Al hacer click,
la voz de sus computadoras dirá lo que hayamos escrito en el atributo aria-label.
c) Role. Sirve específicamente para gente invidente que utiliza el navegados por voz. Le da al navegador
información para que sepa sobre que tipo de elemento se están posicionando.
25. Open Graph Protocol. Consiste en un protocolo creado por Facebook para poder elegir lo que se muestra
cuando compartimos nuestra página web. Por ejemplo, cuando compartimos el link de una página en
Whatsapp, aparece una miniatura con algunos datos, la cual se realiza con Open Graph Protocol. Se realiza
en el head dado que se incorpora a través de metadatos. Si no lo hacemos, la propia plataforma donde se
comparta el link lo hará por nosotros, pero nos arriesgamos a que el contenido no sea estético, falte cierto
contenido que nos interesa que aparezca o únicamente se comparta el link sin información adicional. La
información para armar el Open Graph Protocol se encuentra en ogp.me.
Caso Twitter Card. Consite en el Open Graph Protocol exclusivo de Twitter. La información para armarlo
encuentra en developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards. Hay distintos
tipos de Twitter cards dependiendo de la necesidad.
a) Summary Card.
b) Summary Card with Large Image.
c) Player Card. Reproductor.
d) App Card.