├── 9-Tables
├── Screen Shot 2019-06-20 at 10.18.17.png
├── Screen Shot 2019-06-20 at 10.24.08.png
├── Screen Shot 2019-06-20 at 10.26.15.png
├── Screen Shot 2019-06-20 at 10.27.59.png
├── Screen Shot 2019-06-20 at 10.29.37.png
├── Screen Shot 2019-06-20 at 10.49.16.png
└── Screen Shot 2019-06-20 at 10.52.41.png
├── 6-Tags-that-interact-with-text
├── Screen Shot 2019-06-11 at 19.46.57.png
├── Screen Shot 2019-06-12 at 08.43.55.png
├── Screen Shot 2019-06-12 at 09.35.05.png
└── Screen Shot 2019-06-12 at 09.45.21.png
├── README.md
├── LICENSE
├── 7-Links.md
├── 5-The-document-body.md
├── 1-Prefacio.md
├── 2-Introduction.md
├── 8-Container-structure-tags.md
├── 11-audio-and-video.md
├── 12-iframes.md
├── 13-Images.md
├── 10-Tables.md
├── 6-Tags-that-interact-with-text.md
├── 14-Accessibility.md
├── 3-HTML-Basics.md
├── 4-The-document-heading.md
└── 9-Forms.md
/9-Tables/Screen Shot 2019-06-20 at 10.18.17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.18.17.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.24.08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.24.08.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.26.15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.26.15.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.27.59.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.27.59.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.29.37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.29.37.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.49.16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.49.16.png
--------------------------------------------------------------------------------
/9-Tables/Screen Shot 2019-06-20 at 10.52.41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/9-Tables/Screen Shot 2019-06-20 at 10.52.41.png
--------------------------------------------------------------------------------
/6-Tags-that-interact-with-text/Screen Shot 2019-06-11 at 19.46.57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/6-Tags-that-interact-with-text/Screen Shot 2019-06-11 at 19.46.57.png
--------------------------------------------------------------------------------
/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 08.43.55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 08.43.55.png
--------------------------------------------------------------------------------
/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 09.35.05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 09.35.05.png
--------------------------------------------------------------------------------
/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 09.45.21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zetta102/html-handbook-es/HEAD/6-Tags-that-interact-with-text/Screen Shot 2019-06-12 at 09.45.21.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # El Manual de HTML
2 | Traducción al español del libro open source [The HTML Handbook](https://github.com/flaviocopes/html-handbook), escrito por Flavio Copes.
3 |
4 | Este repositorio contendrá la traducción al español del Manual de HTML.
5 |
6 | Todos los comentarios son bienvenidos, sin embargo, serían especialmente útiles los siguientes:
7 |
8 | * ¿Se me olvidó agregar/traducir algo importante?
9 | * ¿Alguna explicación es demasiado complicada?
10 | * ¿Agregué/traduje información irrelevante?
11 | * ¿Hay errores de tipeo/escritura?
12 |
13 | Todas las PRs son bienvenidas siempre y cuando sea para este tipo de comentarios.
14 |
15 | ¡Muchas gracias por leerme!
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 zetta102
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/7-Links.md:
--------------------------------------------------------------------------------
1 | # Enlaces
2 |
3 | Los enlaces son definidos usando la etiqueta `a`. El destino del enlace estará en su atributo `href`.
4 |
5 | Ejemplo:
6 |
7 | ```html
8 | haz click aquí
9 | ``
10 |
11 | Entre la etiqueta de apertura y de clausura tendremos el texto del enlace.
12 |
13 | El ejemplo de arriba es una dirección absoluta, aunque los enlaces también sirven con direcciones relativasThe above example is an absolute URL. Links also work with relative URLs:
14 |
15 | ```html
16 | haz click aquí
17 | ```
18 |
19 | En este caso, al hacer click en el enlace, el usuario es movido a la dirección `/test`, partiendo desde el punto actual.
20 |
21 | Tenga cuidado con el caracter '/'. Si es omitido, en lugar de comenzar desde la raíz, el navegador solo agregará la palabra 'test' a la dirección actual.
22 |
23 | Por ejemplo, si estoy en la página `https://flaviocopes.com/axios/` y tengo los enlaces `/test` y `test`:
24 |
25 | - `/test` me llevará a `https://flaviocopes.com/test`
26 | - `test` me llevará a `https://flaviocopes.com/axios/test`
27 |
28 | Las etiquetas de enlace pueden contener otras cosas dentro aparte del texto. Por ejemplo, imágenes:
29 |
30 | ```html
31 |
32 |
33 |
34 | ```
35 |
36 | o cualquier otro elemento, excepto otras etiquetas `a`.
37 |
38 |
39 | Si desea que el enlace se abra en una nueva ventana, puede usar el atributo `target`:
40 |
41 | ```html
42 | abrir en nueva ventana
43 | ```
44 |
--------------------------------------------------------------------------------
/5-The-document-body.md:
--------------------------------------------------------------------------------
1 | # La etiqueta ´body´
2 |
3 | Después de cerrar la etiqueta ´head´, solo podemos tener una etiqueta más en un documento HTML: el elemento `body`.
4 |
5 | ```html
6 |
7 |
8 |
9 | ...
10 |
11 |
12 | ...
13 |
14 |
15 | ```
16 |
17 | Tal como las etiquetas `head` y `html`, solo podemos tener una etiqueta ´body´ en una página.
18 |
19 | Dentro de la etiqueta `body` tenemos todas las etiquetas que definen el contenido de la página.
20 |
21 | Técnicamente, las etiquetas de apertura y clausura son opcionales, pero considero que es una buena práctica agregarlas solo por cuestiones de claridad.
22 |
23 | En los próximos capítulos definiremos la variedad de etiquetas que se pueden usar dentro del cuerpo de la página.
24 |
25 | Pero antes, debemos presentar la diferencia entre elementos de bloque y elementos de línea.
26 |
27 | ## Bloques o líneas
28 |
29 | Los elementos visuales, que están definindos en el cuerpo de la página, pueden ser generalmente clasificados en dos categorías:
30 |
31 | - elementos en bloque (`p`, `div`, listas y sus objetos, ...)
32 | - elementos en línea (`a`, `span`, `img`, ...)
33 |
34 | ¿Cuál es la diferencia?
35 |
36 | Los elementos en bloque, al posicionarse en la página, no permiten otros elementos cerca de ellos,. ya sea a la derecha o izquierda.
37 |
38 | Los elementos en línea, en su lugar, pueden estar cerca de otros elementos en línea.
39 |
40 | La diferencia también yace en las propiedades visuales que podemos editar usando CSS. Podemos alterar la altura/anchura, margen interno/externo y el borde de los elementos en bloque, mientras que no podemos en el caso de los bloques en línea.
41 |
42 | > Nótese que usar CSS permite cambiar los valores por defecto de los elementos, haciendo que una etiqueta `p` esté en línea, o que un elemento `span` esté en bloque.
43 |
44 | Otra diferencia es que los elementos en línea pueden estar dentro de elementos en bloque, pero no al revés.
45 |
46 | Algunos elementos en bloque pueden contener otros elementos en bloque, pero depende de cada caso. La etiqueta `p`, por ejemplo, no permite tal opción.
47 |
--------------------------------------------------------------------------------
/1-Prefacio.md:
--------------------------------------------------------------------------------
1 | # Prefacio del autor
2 |
3 | HTML es la base de la maravilla que hoy conocemos como la Web.
4 |
5 | Hay un increíble poder bajo este relativamente simple y limitado conjunto de reglas, que nos permite crear documentos, aplicaciones y experiencias para personas alrededor del mundo.
6 |
7 | Mi primer libro de HTML (refiriéndose al autor original) fue lanzado en 1997 y se llamaba "HTML Unleashed". Un tomo largo, grande y de muchas páginas.
8 |
9 | 20+ años han pasado desde entonces, y HTML es todavía la base de la web tal y como la conocemos hoy en día, con cambios mínimos desde entonces.
10 |
11 | Sí, tenemos nuevas etiquetas semánticas, se dejó de usar HTML para dar estilos, y CSS ha tomado las riendas del diseño.
12 |
13 | Pero el éxito de HTML se basa en una sola cosa: **su sencillez**.
14 |
15 | Resistió su transformación a un dialecto de XML por medio de XHTML, cuando, eventualmente, la gente se dió cuenta que era demasiado complejo.
16 |
17 | Logró hacerlo gracias a otra de sus funciones: **su flexibilidad**. Aunque hay *algunas* reglas, después de aprenderlas el usuario tiene mucha libertad para programar.
18 |
19 | Los navegadores de internet aprendieron a ser resilientes y a intentar hacer lo mejor al presentar código HTML a sus usuarios.
20 |
21 | Y había algo que la plataforma Web hacía muy bien: siempre funcionaba con documentos antiguos. Por increíble que sea, podemos ir hoy en día a documentos HTML escritos en 1991, y se ven prácticamente iguales a como se veían en aquel entonces.
22 |
23 | Incluso sabemos cuál fue la primera página. Es ésta: http://info.cern.ch/hypertext/WWW/TheProject.html.
24 |
25 | Y puedes ver su código fuente ya que, gracias a otra gran función de HTML, **podemos inspeccionar el código HTML de cualquier página web**.
26 |
27 | Sin embargo, no crea que es algo común. No conozco otra plataforma que nos dé ésta habilidad.
28 |
29 | Las excepcionales Herramientas de Desarrollador incluidas en cualquier navegador nos permiten tomar inspiración de cualquier documento HTML escrito por cualquier persona del mundo.
30 |
31 | Si recién aprendes sobre HTML, este libro apunta a darte una mano en tu aprendizaje. Si eres un desarrollador web experimentado, este libro mejorará tus conocimientos.
32 |
33 | Aprendí mucho al escribirlo, a pesar que llevo trabajando en la web más de 20 años, y estoy seguro que usted también aprenderá algo nuevo.
34 |
35 | ...O tal vez vuelva a aprender algo que había olvidado.
36 |
37 | De cualquier manera, la finalidad del libro es que le sea útil, y espero tenga éxito en su misión.
38 |
--------------------------------------------------------------------------------
/2-Introduction.md:
--------------------------------------------------------------------------------
1 | # Introducción
2 |
3 | HTML es un estándar definido por el **WHATWG**, un acrónimo para Web Hypertext Application Technology Working Group, una organización formada por gente trabajando en los navegadores web más populares. Básicamente significa que está controlado por Google, Mozilla, Apple y Microsoft.
4 |
5 | En el pasado, el **W3C** (Consorcio World Wide Web) era la organización a cargo de crear el estándar HTML.
6 |
7 | El control del mismo pasó del W3C al WHATWG cuando quedó claro que la inclinación del W3C hacia el XHTML no era una buena idea.
8 |
9 | Si nunca has escuchado de XHTML, acá tienes una historia corta. A principios de los 2000, todos creíamos que el futuro del internet era XML (en serio). Así que HTML pasó de ser un lenguaje de marcado basado en SMGL a un lenguaje de marcado XML.
10 |
11 | Era un cambio bastante grande. Teníamos que conocer y respetar más reglas, siendo estas también más estrictas.
12 |
13 | Eventualmente, las empresas detrás de los navegadores se dieron cuenta que no era el camino a tomar, creando lo que es ahora conocido como HTML5.
14 |
15 | El W3C no cedió al principio el control de HTML, y por años tuvimos dos estándares competidores, cada uno buscando ser el oficial. El 28 de mayo de 2019, eventualmente, se hizo oficial por medio del W3C que la "verdadera" versión de HTML era la publicada por WHATWG.
16 |
17 | Mencioné HTML5, así que tengo otra pequeña historia. Lo sé, es un poco confuso hasta ahora, como con cualquier cosa en la vida en la que hay muchos actores en juego, pero es igual de fascinante.
18 |
19 | Tuvimos la **versión 1 de HTML** en 1993. [Acá está el RFC original](https://tools.ietf.org/html/rfc1983).
20 |
21 | **HTML 2** apareció en 1995.
22 |
23 | Tuvimos **HTML 3** en enero de 1997, y **HTML 4** en diciembre del mismo año.
24 |
25 | ¡Tiempos ajetreados!
26 |
27 | Más de 20 años pasaron y tuvimos esta cosa del XHTML, y eventualmente terminamos teniendo HTML5, que ya no es _simplemente HTML_.
28 |
29 | HTML5 es ahora un término que define un conjunto entero de tecnologías, las cuales incluyen a HTML, pero también así a un montón de APIs y estándares como WebGL, SVG y más.
30 |
31 | Es importante entender que ahora ya no existe una cosa tal como una versión HTML. Es ahora un estándar viviente como CSS, que es llamado "3", pero es en realidad un montón de módulos independientes desarrollados por separado, justo como JavaScript, donde tenemos cada año una nueva edición. Sin embargo, lo único que importa son las características individuales que son implementadas por el motor.
32 |
33 | Sí, lo llamamos HTML5, pero HTML4 viene de 1997. Para cualquier cosa eso es un montón de tiempo, aún más para el área de tecnologia.
34 |
35 | La definición del estándar ahora "vive" en [https://html.spec.whatwg.org/multipage](https://html.spec.whatwg.org/multipage).
36 |
--------------------------------------------------------------------------------
/8-Container-structure-tags.md:
--------------------------------------------------------------------------------
1 | # Etiquetas de contenedor y estructura de página
2 |
3 | ## Etiquetas de contenedor
4 |
5 | HTML provee un conjunto de etiquetas contenedor. Estas etiquetas contienen un conjunto no especificado de otras etiquetas.
6 |
7 | Tenemos:
8 |
9 | - `article`
10 | - `section`
11 | - `div`
12 |
13 | y puede ser difícil entender la diferencia entre ellas.
14 |
15 | Veamos cuándo usar cada una de ellas.
16 |
17 | ### `article`
18 |
19 | Esta etiqueta identifica una *cosa* que puede ser independiente de otras *cosas* en una página.
20 |
21 | Por ejemplo, una lista de posts en la página principal.
22 |
23 | O una lista de enlaces.
24 |
25 | ```html
26 |
36 | ```
37 |
38 | El límite no son solo las listas: un articulo puede ser el elemento principal de una página.
39 |
40 | ```html
41 |
42 |
Un post
43 |
Contenido...
44 |
45 | ```
46 |
47 | Dentro de una etiqueta `article` deberíamos tener un título (`h1`-`h6`) y una
48 |
49 | ### `section`
50 |
51 | Representa una sección de un documento. Cada sección tiene una etiqueta de encabezado (`h1`-`h6`), y luego la sección del _cuerpo_.
52 |
53 | Ejemplo:
54 |
55 | ```html
56 |
57 |
Una sección de la página
58 |
...
59 |
60 |
61 | ```
62 |
63 | Es útil dividir un artículo largo en diferentes **secciones**.
64 |
65 | No debería usarse como un elemento contenedor génerico, ya que ese es el trabajo de `div`.
66 |
67 | ### `div`
68 |
69 | `div` es el elemento contenedor genérico:
70 |
71 | ```html
72 |
73 | ...
74 |
75 | ```
76 |
77 | Se suele agregar un atributo `class` o `id` a este elemento, para poder modelarlo con CSS.
78 |
79 | Usamos `div` en cualquier lugar que necesitemos un contenedor, pero que las etiquetas existentes no se ajusten lo suficiente.
80 |
81 | ## Etiquetas relacionadas con la página
82 |
83 | ### `nav`
84 |
85 | Está etiqueta es usada para crear el esqueleto que define la navegación de página. Dentro de ella suele agregarse una lista `ul` u `ol`:
86 |
87 | ```html
88 |
94 | ```
95 |
96 | ### `aside`
97 |
98 | La etiqueta `aside` es usada para agregar una pieza de contenido que está relacionado al contenido principal.
99 |
100 | Una caja en la cual agregar una cita, por ejemplo. O una barra lateral.
101 |
102 | Ejemplo:
103 |
104 | ```html
105 |
106 |
algún texto..
107 |
110 |
otro texto...
111 |
112 | ```
113 |
114 | Usar `aside` permite señalar que las cosas que contiene no son parte del flujo regular del documento.
115 |
116 | ### `header`
117 |
118 | La etiqueta `header` representa la introducción (o también el resumen) de una página. Puede, por ejemplo, contener una o más etiquetas de encabezado (`h1`-`h6`), un resumen, o una imagen.
119 |
120 | ```html
121 |
122 |
123 |
Título del Artículo
124 |
125 | ...
126 |
127 | ```
128 |
129 | ### `main`
130 |
131 | La etiqueta main representa la parte principal del artículo `main`:
132 |
133 | ```html
134 |
135 | ....
136 |
137 |
....
138 |
139 |
140 | ```
141 |
142 | ### `footer`
143 |
144 | La etiqueta `footer` se usa para determinar el pie de un artículo, o el pie de una página:
145 |
146 | ```html
147 |
148 | ....
149 |
152 |
153 | ```
154 |
--------------------------------------------------------------------------------
/11-audio-and-video.md:
--------------------------------------------------------------------------------
1 | # Etiquetas multimedia: `audio` y `video`
2 |
3 | En esta sección quiero mostrarte las etiquetas `audio` y `video`.
4 |
5 | ## La etiqueta `audio`
6 |
7 | Esta etiqueta le permite agregar audio a sus páginas HTML.
8 |
9 | Este elemento puede tanto transmitir audio, por medio de `getUserMedia()`, o puede reproducir de alguna fuente de audio a la cual debe hacer referencia con un atributo `src`:
10 |
11 | ```html
12 |
` de clausura. ¿Por qué? Por cuestiones de rendimiento.
56 |
57 | Al cargar código JS (o scripts), el navegador bloquea por defecto la visualización de la página hasta que el script esté interpretado y cargado.
58 |
59 | Al colocarlo al fondo de la página, es cargado y ejecutado después que la página haya sido interpretada y cargada, otorgando una mejor experiencia al usuario que si estuviera en la etiqueta `head`.
60 |
61 | En mi opinión, estas son malas prácticas hoy en día. No hay problemas en dejar que las etiquetas `script` estén dentro de `head`.
62 |
63 | En el JS moderno, tenemos una alternativa mejor que dejar los scripts al final, siendo este el atributo `defer`. Este es un ejemplo que carga un `archivo.js`, relativo a la dirección actual:
64 |
65 | ```html
66 |
67 | ```
68 |
69 | Con esto, se tiene un escenario que llevará a un camino más rápido para cargar tanto la página como el JavaScript.
70 |
71 | ### La etiqueta `noscript`
72 |
73 | Esta etiqueta es usada para detectar si los scripts están deshabilitados por el navegador.
74 |
75 | > Nota: los usuarios pueden elegir deshabilitar los scripts de JS en los ajustes del navegador, así como también puede que el navegador no los soporte por defecto.
76 |
77 | Se usa de manera distinta dependiendo del lugar en el que se ponga, pudiendo ser dentro de la etiqueta `head` o dentro de la etiqueta `body`.
78 |
79 | Ya que estamos hablando de la etiqueta, presentaré su uso.
80 |
81 | En este caso, la etiqueta `noscript` solo puede contener etiquetas:
82 |
83 | - `link`
84 | - `style`
85 | - `meta`
86 |
87 | para alterar los recursos servidos por la página, en caso que los scripts estén deshabilitados.
88 |
89 | En este ejemplo, establezco un elemento con la clase `no-script-alert` a mostrarse si los scripts están desactivados, ya que tiene la clase de CSS `display: none` por defecto:
90 |
91 | ```html
92 |
93 |
94 |