Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios...

34
1 Contenido Prólogo Parte 1: Abordar el diseño de sitios web Capítulo 1-1 La evolución de las especificaciones 1. Una breve historia de la Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2. Los trabajos de elaboración de las especificaciones. . . . . . . . . . . . . . . 18 3. La evolución del HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4. La evolución de las CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Capítulo 1-2 Los navegadores 1. La evolución de los navegadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2. Las herramientas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3. La compatibilidad de los navegadores . . . . . . . . . . . . . . . . . . . . . . . . . 24 Capítulo 1-3 Las buenas prácticas 1. Separar el contenido del formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2. Utilizar una estructura semántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3. Optimizar el código y organizar sus archivos . . . . . . . . . . . . . . . . . . . 28 4. Un ejemplo de una página bien formada . . . . . . . . . . . . . . . . . . . . . . 29 5. Validar el código de sus páginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Transcript of Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios...

Page 1: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

1Contenido

Prólogo

Parte 1: Abordar el diseño de sitios web

Capítulo 1-1La evolución de las especificaciones

1. Una breve historia de la Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Los trabajos de elaboración de las especificaciones. . . . . . . . . . . . . . . 18

3. La evolución del HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4. La evolución de las CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Capítulo 1-2Los navegadores

1. La evolución de los navegadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2. Las herramientas de desarrollo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3. La compatibilidad de los navegadores . . . . . . . . . . . . . . . . . . . . . . . . . 24

Capítulo 1-3Las buenas prácticas

1. Separar el contenido del formato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2. Utilizar una estructura semántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3. Optimizar el código y organizar sus archivos. . . . . . . . . . . . . . . . . . . 28

4. Un ejemplo de una página bien formada . . . . . . . . . . . . . . . . . . . . . . 29

5. Validar el código de sus páginas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Page 2: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

2

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

Parte 2 : HTML 5.2

Capítulo 2-1Los elementos HTML

1. Utilizar correctamente el HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2. Las etiquetas y los contenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3. Los atributos de los elementos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4. El uso correcto de la sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5. La anidación de los elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6. Los comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Capítulo 2-2La estructura de las páginas

1. La estructura general de las páginas web . . . . . . . . . . . . . . . . . . . . . . 39

2. La declaración doctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3. El elemento <html> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4. El elemento <head> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.1 Los elementos hijo del encabezado . . . . . . . . . . . . . . . . . . . . . . . 404.2 Los elementos <meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3 El elemento <title> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.4 El elemento <link> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5 El elemento <style> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.6 El elemento <script>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5. El elemento <body> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6. Ejemplo de una estructura sencilla . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Page 3: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

3Contenido

Capítulo 2-3Los contenedores semánticos

1. Utilizar correctamente los contenedores semánticos. . . . . . . . . . . . . 45

2. El elemento <div>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3. El elemento <span> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4. El elemento <header> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5. El elemento <footer> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6. El elemento <aside> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7. El elemento <nav> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8. El elemento <main> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

9. El elemento <section> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

10. El elemento <article> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

11. Dos ejemplos de estructura semántica de página . . . . . . . . . . . . . . . . 5011.1 Una estructura semántica sencilla. . . . . . . . . . . . . . . . . . . . . . . . 5011.2 Una estructura semántica más elaborada . . . . . . . . . . . . . . . . . . 51

12. Un ejemplo de estructura semántica de un artículo. . . . . . . . . . . . . . 52

Capítulo 2-4Los contenedores de texto

1. Utilizar correctamente los contenedores de texto . . . . . . . . . . . . . . . 55

2. El idioma y la dirección del texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3. Los títulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4. Los párrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5. Las citas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6. Las listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.1 Los diferentes tipos de lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.2 Las listas no ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.3 Las listas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Page 4: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

4

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

6.4 El atributo de <li>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.5 Las listas de definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

7. Las direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

8. El texto preformateado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

9. Las líneas horizontales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Capítulo 2-5El formateo semántico del texto

1. Utilizar un formateo semántico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

2. Insertar caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3. El marcado de especial énfasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4. El énfasis sencillo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5. Resaltar en negrita y cursiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6. El índice y el exponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7. El subrayado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

8. El tachado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

9. Reducir el tamaño de carácter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

10. Los títulos de obras y las citas cortas. . . . . . . . . . . . . . . . . . . . . . . . . . 75

11. Las inserciones y eliminaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

12. El retorno de línea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

13. Otros formatos semánticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Capítulo 2-6Los elementos de interacción

1. Mostar los detalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

2. Utilizar un cuadro de diálogo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Page 5: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

5Contenido

Capítulo 2-7Los enlaces

1. Inserción de enlaces para unir páginas . . . . . . . . . . . . . . . . . . . . . . . . 85

2. La estructura de los enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3. Los enlaces a las páginas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4. Los enlaces internos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5. El contexto de apertura del enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6. Las relaciones de los enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7. Los enlaces al correo electrónico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

8. Los enlaces de descarga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

9. Enlaces en imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Capítulo 2-8Las tablas

1. La correcta utilización de las tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

2. La estructura de las tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3. Las líneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4. Las celdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5. La fusión de celdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6. El título Tabla:titulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7. Los grupos de columnas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997.1 Agrupar columnas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997.2 Enumerar las columnas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

8. Las tablas estructuradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Page 6: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

6

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

Capítulo 2-9Las imágenes

1. Explotar correctamente las imágenes . . . . . . . . . . . . . . . . . . . . . . . . 105

2. Entender los formatos de compresión. . . . . . . . . . . . . . . . . . . . . . . . 1062.1 Comprimir las imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.2 El formato GIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.3 El formato JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072.4 El formato PNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

3. Insertar imágenes con el elemento <img> . . . . . . . . . . . . . . . . . . . 1083.1 La utilización de las imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.2 El atributo src . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.3 El atributo alt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093.4 Los atributos width y height . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103.5 Los atributos srcset y size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4. Insertar ilustraciones con el elemento <figure> . . . . . . . . . . . . . . . 1124.1 La utilización de las ilustraciones . . . . . . . . . . . . . . . . . . . . . . . 1124.2 El elemento <figure> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4.3 El elemento <figcaption> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Capítulo 2-10Los formularios

1. La presencia de formularios en las páginas web . . . . . . . . . . . . . . . . 115

2. La estructura de los formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.1 El formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.2 Las etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.3 Agrupar los campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182.4 Los atributos comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

3. Los campos de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.1 La introducción de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.2 Los campos de texto sencillos . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.3 Los campos de texto para las contraseñas. . . . . . . . . . . . . . . . . 120

Page 7: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

7Contenido

3.4 Los campos de texto multilínea . . . . . . . . . . . . . . . . . . . . . . . . . 121

4. Las listas de valores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

5. Los botones de radio de selección única . . . . . . . . . . . . . . . . . . . . . . 125

6. Las casillas de selección múltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7. Otros tipos de campos con <input> . . . . . . . . . . . . . . . . . . . . . . . . 126

8. Las ayudas a la introducción de datos . . . . . . . . . . . . . . . . . . . . . . . . 1278.1 Los objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278.2 La indicación inicial de la entrada de los datos . . . . . . . . . . . . . 1278.3 Activar un campo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298.4 El autocompletado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298.5 Hacer un campo obligatorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308.6 Las entradas autorizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

9. Los botones de acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

10. Un ejemplo completo de formulario . . . . . . . . . . . . . . . . . . . . . . . . . 13510.1 El código completo del formulario. . . . . . . . . . . . . . . . . . . . . . . 13510.2 El formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

10.3 Los botones de radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13710.4 Los campos de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13810.5 El campo numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13810.6 El campo de dirección de correo. . . . . . . . . . . . . . . . . . . . . . . . . 13910.7 El campo de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14010.8 La lista desplegable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14110.9 Las casillas de selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14210.10Los botones de acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Capítulo 2-11Los recursos multimedia

1. La presencia de elementos multimedia . . . . . . . . . . . . . . . . . . . . . . . 145

2. Los formatos y los códecs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

3. La inserción de un vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Page 8: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

8

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

3.1 El elemento <video> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1473.2 El origen del vídeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483.3 Los controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483.4 Precargar el vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503.5 Mostar una imagen de apertura. . . . . . . . . . . . . . . . . . . . . . . . . 1503.6 Especificar las dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503.7 Ofrecer varias fuentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513.8 Reproducir en bucle y desactivar el sonido . . . . . . . . . . . . . . . . 151

4. La inserción de un archivo de audio . . . . . . . . . . . . . . . . . . . . . . . . . 152

Capítulo 2-12La Web semántica con Microdata

1. El estado actual de la Web semántica . . . . . . . . . . . . . . . . . . . . . . . . 153

2. El objetivo de Microdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.1 La norma y los esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.2 Los atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

3. El esquema para las personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1563.1 Definir el uso de Microdata con itemscope . . . . . . . . . . . . . . . 1563.2 Indicar el esquema utilizado con itemtype. . . . . . . . . . . . . . . . 1563.3 Especificar las propiedades con itemprop . . . . . . . . . . . . . . . . . 157

4. Anidar esquemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584.1 ¿Por qué anidar los esquemas? . . . . . . . . . . . . . . . . . . . . . . . . . 1584.2 Los dos esquemas necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 1594.3 Hacer referencia a un elemento . . . . . . . . . . . . . . . . . . . . . . . . . 161

Page 9: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

9Contenido

Parte 3: Los CSS3

Capítulo 3-1Integrar los estilos CSS

1. El rol de las CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

2. Los estilos integrados en un elemento HTML . . . . . . . . . . . . . . . . . 164

3. Los estilos definidos en la página. . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

4. Los estilos definidos en un archivo .css . . . . . . . . . . . . . . . . . . . . . . . 166

5. Los estilos importados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Capítulo 3-2Definir los estilos CSS

1. La estructura de una regla de estilo . . . . . . . . . . . . . . . . . . . . . . . . . . 1691.1 La terminología de las CSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691.2 Definir una regla de estilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.3 Las reglas de nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2. Las unidades de medida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722.1 La utilización de las unidades de medida . . . . . . . . . . . . . . . . . 1722.2 Los valores inicial y heredado. . . . . . . . . . . . . . . . . . . . . . . . . . . 1722.3 Los valores numéricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1732.4 Las unidades de longitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1732.5 Los valores calculados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

3. La notación de los colores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.1 Utilizar los colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.2 La notación nominativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.3 La notación hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1763.4 Las notaciones RGB y RGBA . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773.5 Las notaciones HSL y HSLA . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

4. Los comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

Page 10: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

10

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

5. Los selectores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805.1 El objetivo de los selectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805.2 El selector universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805.3 Los selectores de tipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.4 Los selectores de clase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.5 Los selectores de clase de tipo . . . . . . . . . . . . . . . . . . . . . . . . . . 1825.6 Los selectores de identificación . . . . . . . . . . . . . . . . . . . . . . . . . 1835.7 Los selectores de atributo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1845.8 Los selectores de pseudoclases . . . . . . . . . . . . . . . . . . . . . . . . . . 186

5.8.1 Utilizar las pseudoclases . . . . . . . . . . . . . . . . . . . . . . . . . 1865.8.2 Las pseudoclases dinámicas de los enlaces . . . . . . . . . . . 1865.8.3 Las pseudoclases dinámicas de las acciones de usuario . 1885.8.4 La pseudoclase de ancla . . . . . . . . . . . . . . . . . . . . . . . . . . 1895.8.5 La pseudoclase de idioma . . . . . . . . . . . . . . . . . . . . . . . . . 1925.8.6 Las pseudoclases de estado. . . . . . . . . . . . . . . . . . . . . . . . 1935.8.7 Las pseudoclases de estructura . . . . . . . . . . . . . . . . . . . . 1945.8.8 La pseudoclase de negación . . . . . . . . . . . . . . . . . . . . . . . 204

5.9 Los selectores de pseudoelemento . . . . . . . . . . . . . . . . . . . . . . . 206

5.9.1 El pseudoelemento de primera línea . . . . . . . . . . . . . . . . 2065.9.2 El pseudoelemento de primera letra . . . . . . . . . . . . . . . . 2075.9.3 Los pseudoelementos de contenido . . . . . . . . . . . . . . . . . 208

5.10 Las combinaciones de selectores . . . . . . . . . . . . . . . . . . . . . . . . 2105.10.1Los selectores combinados . . . . . . . . . . . . . . . . . . . . . . . . 2105.10.2Las combinaciones descendientes . . . . . . . . . . . . . . . . . . 2105.10.3Las combinaciones de hijos . . . . . . . . . . . . . . . . . . . . . . . 2115.10.4Las combinaciones de hermanos inmediatos . . . . . . . . . 2135.10.5Las combinaciones de hermanos . . . . . . . . . . . . . . . . . . . 215

6. La aplicación de los estilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2166.1 La noción de herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2166.2 La especificidad de los selectores . . . . . . . . . . . . . . . . . . . . . . . . 218

6.2.1 El cálculo de la especificidad de los selectores. . . . . . . . . 2186.2.2 Un ejemplo de las especificidades de los selectores . . . . 219

6.3 La noción de importancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

Page 11: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

1

1Contenido

6.4 La noción de cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2246.4.1 Las prioridades en la cascada . . . . . . . . . . . . . . . . . . . . . . 2246.4.2 Los conflictos en la cascada . . . . . . . . . . . . . . . . . . . . . . . 226

6.5 El orden de aplicación de los estilos. . . . . . . . . . . . . . . . . . . . . . 226

Capítulo 3-3Los estilos para los tipos de letra

1. El módulo CSS 3 para las fuentes de letra. . . . . . . . . . . . . . . . . . . . . 227

2. Las fuentes de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.1 Elegir una fuente de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.2 Las familias de caracteres genéricas . . . . . . . . . . . . . . . . . . . . . . 2282.3 Declarar una fuente de letra. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282.4 Incorporar una fuente de letra . . . . . . . . . . . . . . . . . . . . . . . . . . 230

3. El tamaño de los caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313.1 Los tamaños por defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313.2 Modificar el tamaño de los caracteres . . . . . . . . . . . . . . . . . . . . 232

4. El formato de los caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374.1 El peso de los caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374.2 La cursiva de los caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2394.3 La anchura de los caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2394.4 Las versalitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

5. La sintaxis de acceso directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

Capítulo 3-4Los estilos para el texto

1. La aplicación de los estilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

2. El color del texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

3. Las declaraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443.1 El módulo CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443.2 Las líneas para el texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Page 12: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

12

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

3.3 Las líneas decorativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2463.4 El sombreado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

4. El formato del texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484.1 El módulo CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484.2 El cambio entre mayúsculas/minúsculas . . . . . . . . . . . . . . . . . 2494.3 Los espacios entre los caracteres y las palabras. . . . . . . . . . . . . 2504.4 Los espacios en blanco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514.5 Las alineaciones del texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2534.6 Indentación de la primera línea . . . . . . . . . . . . . . . . . . . . . . . . . 2544.7 La partición de palabras al final de línea . . . . . . . . . . . . . . . . . . 255

5. Otras propiedades para el texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2575.1 El interlineado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2575.2 Desbordamiento de texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Capítulo 3-5Los estilos para los contenedores de texto

1. Los titulos, los párrafos y las citas . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

2. Las listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612.1 Los elementos de las listas y los estilos . . . . . . . . . . . . . . . . . . . 2612.2 Los estilos de enumeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2622.3 La enumeración con una imagen. . . . . . . . . . . . . . . . . . . . . . . . 2642.4 La posición del símbolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652.5 La sintaxis de acceso directo . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

3. Las tablas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2673.1 El texto en las tablas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2673.2 El borde de la tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2683.3 Los bordes de las celdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2693.4 El espacio interno de las celdas . . . . . . . . . . . . . . . . . . . . . . . . . 2703.5 Las celdas vacías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2703.6 El título de la tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

Page 13: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

3

1Contenido

4. Los formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2724.1 El formato del texto de los campos . . . . . . . . . . . . . . . . . . . . . . 2724.2 Los estados activo e inactivo de los objetos . . . . . . . . . . . . . . . 2734.3 Los campos obligatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2754.4 La longitud de las etiquetas y de los campos . . . . . . . . . . . . . . 2774.5 Formatear el foco de los campos . . . . . . . . . . . . . . . . . . . . . . . . 278

Capítulo 3-6Los estilos para los paneles

1. El concepto del modelo de panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

2. Las visualizaciones de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . 2822.1 Los diferentes tipos de visualización . . . . . . . . . . . . . . . . . . . . . 2822.2 La visualización en bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2832.3 La visualización en línea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2842.4 Cambiar el tipo de visualización . . . . . . . . . . . . . . . . . . . . . . . . 285

3. Los márgenes externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.1 El margen global y los márgenes diferenciados. . . . . . . . . . . . . 288

3.2 Las sintaxis abreviadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

4. Los bordes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

5. Los rellenos internos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

6. La longitud y la altura de los paneles . . . . . . . . . . . . . . . . . . . . . . . . 2926.1 Las dimensiones del contenido . . . . . . . . . . . . . . . . . . . . . . . . . 2926.2 Las dimensiones de visualización . . . . . . . . . . . . . . . . . . . . . . . 294

7. Los fondos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2987.1 El color de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2987.2 Las imágenes de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3007.3 Los degradados de colores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3037.4 La opacidad de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

8. Las esquinas redondeadas de los paneles. . . . . . . . . . . . . . . . . . . . . . 307

9. El sombreado de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

Page 14: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

14

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

Capítulo 3-7La estructuración de la página con paneles

1. Los objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

2. El posicionamiento de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . 3122.1 Las posiciones de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . 3122.2 La posición relativa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3132.3 La posición absoluta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3142.4 La posición fija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

3. El flotamiento de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3173.1 Rodear una imagen con texto . . . . . . . . . . . . . . . . . . . . . . . . . . 3173.2 Prohibir la flotación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

4. La superposición de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

5. La estructuración con las propiedades de visualización tabla . . . . . 324

6. El desbordamiento de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

7. La visibilidad de los paneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

8. La estructuración de página flexible . . . . . . . . . . . . . . . . . . . . . . . . . 330

9. La estructuración en rejilla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

Capítulo 3-8El Responsive Web Design

1. El desarrollo responsivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

2. Las consultas de recursos multimedia . . . . . . . . . . . . . . . . . . . . . . . . 3372.1 Los criterios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3372.2 La sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3392.3 Los valores mínimos y máximos . . . . . . . . . . . . . . . . . . . . . . . . 3392.4 Los operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

3. El tamaño de las pantallas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

Page 15: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

5

1Contenido

4. Un ejemplo de composición responsiva . . . . . . . . . . . . . . . . . . . . . . 3414.1 El sitio web inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3414.2 El sitio web responsivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

Capítulo 3-9Los módulos de animación

1. Los módulos CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

2. Las transformaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3502.1 La función y el punto de referencia . . . . . . . . . . . . . . . . . . . . . . 3502.2 El desplazamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3522.3 El escalado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3532.4 La rotación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3552.5 La deformación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3552.6 Aplicar todas las transformaciones . . . . . . . . . . . . . . . . . . . . . . 357

3. Las transiciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3583.1 Crear transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3583.2 Crear un desplazamiento horizontal. . . . . . . . . . . . . . . . . . . . . 359

3.3 Crear un desplazamiento horizontal y vertical . . . . . . . . . . . . 362

4. Las animaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3634.1 Crear animaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3634.2 Crear un desplazamiento infinito . . . . . . . . . . . . . . . . . . . . . . . 3654.3 Crear un formulario animado . . . . . . . . . . . . . . . . . . . . . . . . . . 368

Capítulo 3-10Los módulos CSS para los diseñadores gráficos

1. Los módulos del futuro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

2. Las máscaras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712.1 El módulo CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712.2 Crear una máscara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

Page 16: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

16

Domine los estándares de la creación de los sitios web

HTML5 y CSS3

3. Rodear una imagen con texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3753.1 El módulo CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3753.2 Crear el contorneo de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

Capítulo 3-11Las hojas de estilo para la impresión

1. La impresión de las páginas web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

2. Las hojas de estilo específicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3802.1 Las relaciones con los archivos CSS. . . . . . . . . . . . . . . . . . . . . . 3802.2 Las consultas de recursos multimedia . . . . . . . . . . . . . . . . . . . . 380

3. Las propiedades globales de las páginas. . . . . . . . . . . . . . . . . . . . . . . 381

4. Las fuentes de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

5. Los elementos no impresos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

6. Las rupturas de lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3836.1 Los saltos de página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3836.2 Las líneas consecutivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384

6.3 Las líneas viudas y huérfanas. . . . . . . . . . . . . . . . . . . . . . . . . . . 384

7. Los enlaces de hipertexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Page 17: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

1Contenido

Parte 1Presentación de JavaScripty programación a partir de algoritmos

Capítulo 1

Presentación del lenguaje JavaScript

1. Definición y breve historia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2. Requisitos previos para un aprendizaje sencillo del lenguaje. . . . . . 21

3. Herramientas necesarias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4. Posicionamiento de JavaScript respecto a otras tecnologías de desarrollo web (HTML, CSS, PHP...) . . . . . . . . . . . . . . . . . . . . . . 23

Capítulo 2

Desarrollo a partir de algoritmos

1. Presentación de la noción de algoritmo. . . . . . . . . . . . . . . . . . . . . . . 25

2. Noción de variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1 Presentación de las nociones de variable y tipo . . . . . . . . . . . . 262.2 Tipos básicos y operaciones asociadas. . . . . . . . . . . . . . . . . . . . 282.3 Interés de los tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4 Uso de variables en las expresiones . . . . . . . . . . . . . . . . . . . . . . 312.5 Tabla resumen de los operadores. . . . . . . . . . . . . . . . . . . . . . . . 31

3. Manipulación de las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.1 Nomenclatura de las variables . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3 Ejercicio n.°1: Inversión del contenido

de dos variables en memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Podrá descargar algunos elementos de este libro en la página web de Ediciones ENI: http://www.ediciones-eni.com.

Escriba la referencia ENI del libro RIT3JASAP en la zona de búsqueda y valide. Haga clic en el título y después en el botón de descarga.

Page 18: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

2con JavaScript

Aprender a desarrollar

3.4 Visualización de los resultados . . . . . . . . . . . . . . . . . . . . . . . . . 363.5 Ejercicio n.°2: Superficies de círculos. . . . . . . . . . . . . . . . . . . . . 393.6 Introducción por el teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.7 Ejercicio n.°3: Superficie y volumen de una esfera . . . . . . . . . . 41

4. Funciones predefinidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.1 Ejercicio n.°4: Visualización de la longitud de un nombre. . . . 424.2 Ejercicio n.°5: Determinación de iniciales . . . . . . . . . . . . . . . . . 43

5. Procesamientos condicionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.1 Ejercicio n.°6: Polinomio de segundo grado . . . . . . . . . . . . . . . 485.2 Ejercicio n.°7: Etiqueta del mes sin cifrar . . . . . . . . . . . . . . . . . 505.3 Ejercicio n.°8: Etiqueta del mes sin cifrar

(Siguiente ... Finsiguiente) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6. Estructuras iterativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.1 Concepto de iteraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.2 Estructuras iterativas básicas. . . . . . . . . . . . . . . . . . . . . . . . . . . 546.3 Ejercicio n.°9: Media de 10 números . . . . . . . . . . . . . . . . . . . . . 576.4 Ejercicio n.°10: Media de una serie de n números. . . . . . . . . . . 586.5 Ejercicio n.°11: El común divisor más grande,

por el método de las divisiones sucesivas . . . . . . . . . . . . . . . . . 616.6 Estructura iterativa Para. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.7 Ejercicio n.°12: Cálculo de la media de 10 números . . . . . . . . . 656.8 Ejercicio n.°13: Deducir el número de vocales de una palabra . .66

7. Tabla de dimensión única . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687.1 Ejercicio n.°14: Contar los números pares en una tabla . . . . . . 69

8. Tabla con dimensiones múltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.1 Ejercicio n.°15: Minihoja de cálculo. . . . . . . . . . . . . . . . . . . . . . 71

9. Procedimientos, funciones y paso de argumentos . . . . . . . . . . . . . . 739.1 Los objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.2 Los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.3 Ejercicio n.°16: Llamada de un procedimiento

con paso de argumentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.4 Las funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Page 19: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

3Contenido

9.5 Ejercicio n.°17: Llamada de una función con paso de argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Parte 2Comenzar bien con JavaScript

Capítulo 3

Conceptos principales del lenguaje JavaScript

1. Metodología de aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

2. Variables (declaración y tipado). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.1 Ejercicio n.°2: Superficies de círculos. . . . . . . . . . . . . . . . . . . . . 822.2 Ejercicio n.°3: Superficie y volumen de una esfera . . . . . . . . . . 892.3 Ejercicio n.°4: Número de letras de una palabra . . . . . . . . . . . . 922.4 Ejercicio n.°5: Determinación de las iniciales . . . . . . . . . . . . . . 92

Capítulo 4

Procesamiento condicionado

1. Presentación de la sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.1 Ejercicio n.°6: Polinomio de segundo grado . . . . . . . . . . . . . . . 972.2 Ejercicio n.°8: Impresión de la etiqueta de un mes . . . . . . . . . . 98

Capítulo 5

Procesamiento iterativo (bucles)

1. Presentación de la sintaxis de los bucles . . . . . . . . . . . . . . . . . . . . . 101

2. Bucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022.2 Ejercicio n.°9: Media de 10 números

que se introducirán con el teclado . . . . . . . . . . . . . . . . . . . . . . 1032.3 Ejercicio n.°10: Media de una serie de n números

que se introducirán con el teclado . . . . . . . . . . . . . . . . . . . . . . 104

Page 20: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

4con JavaScript

Aprender a desarrollar

3. Bucle do while. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.2 Ejercicio n.°11: Media de una serie de n números

que se introducirán con el teclado . . . . . . . . . . . . . . . . . . . . . . 106

4. Bucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.2 Ejercicio n.°12: Media de una serie de 10 números

que se introducirán con el teclado . . . . . . . . . . . . . . . . . . . . . . 1084.3 Ejercicio n.°13: Contar el número de vocales en una palabra . .109

Capítulo 6

Tablas

1. Tablas de dimensión única. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.2 Ejercicio n.°14: Contar los números pares en una tabla . . . . . 113

2. Tablas de dimensiones múltiples. . . . . . . . . . . . . . . . . . . . . . . . . . . 1142.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142.2 Ejercicio n.°15: Minihoja de cálculo. . . . . . . . . . . . . . . . . . . . . 115

Capítulo 7

Procedimientos y funciones

1. Los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201.2 Ejercicio n.°16: Llamada de un procedimiento

con argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

2. Las funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.2 Ejercicio n.°17: Llamada de una función con argumentos . . . 123

Page 21: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

5Contenido

Parte 3Aproximación a la POO en JavaScript

Capítulo 8

Enfoque orientado a "objetos" en JavaScript

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

2. Programación orientada a objetos a través de ejemplos . . . . . . . . . 1262.1 Secuencia 1: Declaración de los objetos JavaScript

de manera "Inline". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262.2 Secuencia 2: Creación de objetos JavaScript

con un constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272.3 Secuencia 3: Variables privadas en una instancia de objeto. . 1282.4 Secuencia 4: Paso de argumento(s) a un constructor . . . . . . . 1292.5 Secuencia 5: No compartición de los métodos

por las instancias de objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . 1302.6 Secuencia 6: Noción de prototipo . . . . . . . . . . . . . . . . . . . . . . 1312.7 Secuencia 7: Sobrecarga de un método . . . . . . . . . . . . . . . . . . 1332.8 Secuencia 8: Extensión de un prototipo . . . . . . . . . . . . . . . . . 1342.9 Secuencia 9: Mecanismo de la herencia. . . . . . . . . . . . . . . . . . 1352.10 Secuencia 10: Límite de la herencia de la secuencia 9. . . . . . . 1372.11 Secuencia 11: Un segundo límite a nuestra herencia . . . . . . . 139

Capítulo 9

Principales objetos en JavaScript

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

2. Los objetos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.1 Objeto Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.2 Objeto Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.3 Objeto Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502.4 Objeto window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532.5 Objeto navigator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632.6 Objeto String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Page 22: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

6con JavaScript

Aprender a desarrollar

Capítulo 10

Las novedades de EcmaScript 6

1. Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2. Aportaciones a nivel de la Programación Orientada a Objetos . . . 1722.1 Noción de prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722.2 Sobrecarga de un método. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1762.3 Extensión de prototipo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792.4 Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1822.5 Primer ejemplo POO en EcmaScript 6 . . . . . . . . . . . . . . . . . . 1862.6 Herencia en EcmaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1902.7 Métodos getter, setter y static en EcmaScript 6. . . . . . . . . . . 194

3. Funciones flecha (arrow functions). . . . . . . . . . . . . . . . . . . . . . . . . 1983.1 Ventajas de las funciones flecha . . . . . . . . . . . . . . . . . . . . . . . 1983.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

4. Estructuras Map, Set y bucle for of. . . . . . . . . . . . . . . . . . . . . . . . . 2054.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2054.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

5. Ámbito de las variables (var o let) . . . . . . . . . . . . . . . . . . . . . . . . . . 2155.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2155.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

6. Promesas (promise). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

7. Desestructuración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2247.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2247.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Page 23: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

7Contenido

Parte 4Gestión de formularios y modelo DOM

Capítulo 11

Utilizar formularios para introducir datos

1. Controles en la entrada de datos con JavaScript . . . . . . . . . . . . . . 2291.1 Control de entrada de datos en un campo de texto . . . . . . . . 2291.2 Control del tipo numérico de una entrada

de datos en un campo de texto . . . . . . . . . . . . . . . . . . . . . . . . 2361.3 Control de caracteres alfabéticos de una entrada

de datos en un campo de texto . . . . . . . . . . . . . . . . . . . . . . . . 2391.4 Control de caracteres alfabéticos y numéricos

de una entrada de datos en un campo de texto . . . . . . . . . . . 2391.5 Control de la longitud de una entrada de datos

en un campo de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391.6 Control de entrada de datos en una dirección de e-mail . . . . 2401.7 Control de la selección de una lista desplegable

(versión simplificada) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.8 Control de la selección en una lista desplegable

(versión extendida) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451.9 Control de selección con un botón de radio . . . . . . . . . . . . . . 2481.10 Control de la selección con casillas de selección . . . . . . . . . . . 252

Capítulo 12

Modelo DOM

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.1 Definición del DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.2 Definición de la arborescencia . . . . . . . . . . . . . . . . . . . . . . . . . 258

2. Aprendizaje del modelo DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612.1 Script "Hello World" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612.2 Diferencia entre write y writeln . . . . . . . . . . . . . . . . . . . . . . . 2622.3 Gestión de los enlaces hipertextos. . . . . . . . . . . . . . . . . . . . . . 2632.4 Gestión de las imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

Page 24: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

8con JavaScript

Aprender a desarrollar

2.5 Gestión de formularios y de sus etiquetas . . . . . . . . . . . . . . . 2672.6 Gestión de los anchors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2702.7 Gestión de la navegación entre páginas web . . . . . . . . . . . . . 2722.8 Visualización de las características generales del documento . .2772.9 Gestión de los botones en los formularios . . . . . . . . . . . . . . . 2792.10 Gestión de las tablas (etiqueta HTML table) . . . . . . . . . . . . . 290

Capítulo 13

Exploración de flujo XML vía DOM

1. Noción de flujo XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3202.1 Ejemplo 1: Visualización del contenido

de un e-mail codificado en XML . . . . . . . . . . . . . . . . . . . . . . . 3202.2 Ejemplo 2: Lista de marcas de coches (archivo coches.xml) . . .3242.3 Ejemplo 3: Lista de las marcas de coches con un bucle . . . . . 3262.4 Ejemplo 4: Lista de nodos conectados a la raíz . . . . . . . . . . . . 3272.5 Ejemplo 5: Lista de los campos (nodos) de cada coche. . . . . . 3292.6 Ejemplo 6: Sustitución de un valor de nodo . . . . . . . . . . . . . . 3322.7 Ejemplo 7: Acceso a los atributos . . . . . . . . . . . . . . . . . . . . . . 3322.8 Ejemplo 8: Acceso a un nodo padre. . . . . . . . . . . . . . . . . . . . . 3342.9 Ejemplo 9: Recorrer hacia atrás los nodos. . . . . . . . . . . . . . . . 3352.10 Ejemplo 10: Sustitución sistemática de un valor de atributo . .3362.11 Ejemplo 11: Conversión XML en HTML . . . . . . . . . . . . . . . . 3372.12 Ejemplo 12: Eliminación de un nodo en un flujo XML . . . . . 339

Page 25: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

9Contenido

Parte 5Cookies y mecanismos de persistencia

Capítulo 14

Gestión de las cookies en JavaScript

1. Noción de cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

2. Escritura de una cookie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

3. Lectura de una cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

4. Eliminación de una cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

Capítulo 15

Almacenamiento local de datos

1. Presentación general de las soluciones. . . . . . . . . . . . . . . . . . . . . . . 3511.1 Almacenamiento con sessionStorage . . . . . . . . . . . . . . . . . . . 3521.2 Almacenamiento con localStorage . . . . . . . . . . . . . . . . . . . . . 352

2. Implementación de Web Storage a través de ejemplos . . . . . . . . . 3532.1 Ejemplo 1: Almacenamiento por localStorage

de cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3532.2 Ejemplo 2: Almacenamiento en el localStorage

de un objeto JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

Capítulo 16

Almacenamiento remoto: formato XML

1. Presentación general de la solución . . . . . . . . . . . . . . . . . . . . . . . . . 373

2. Implementación del almacenamiento remoto a través de ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3742.1 Ejemplo 1: Acceso Ajax sobre BDD MySQL

(lista de los coches) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3752.2 Ejemplo 2: Acceso MySQL vía Ajax . . . . . . . . . . . . . . . . . . . . 400

Page 26: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

10con JavaScript

Aprender a desarrollar

Capítulo 17

Almacenamiento remoto: formato JSON

1. Presentación general de la solución . . . . . . . . . . . . . . . . . . . . . . . . . 407

2. Implementación del almacenamiento remoto a través de ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4092.1 Ejemplo 1: Presentación del sistema de notación JSON . . . . 4092.2 Ejemplo 2: Lectura de un archivo JSON

con XMLHttpRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4142.3 Ejemplo 3: Lectura de un archivo JSON

con XMLHttpRequest y un script servidor en PHP . . . . . . . . 4192.4 Ejemplo 4: Lectura de una tabla MySQL

con XMLHttpRequest (servidor PHP y flujo JSON) . . . . . . . 4212.5 Ejemplo 5: Recodificación del ejemplo 4

con una lista desplegable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Parte 6Geolocalización, diseño y gráficos de gestión

Capítulo 18

Geolocalización

1. Principio de la geolocalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

2. Ejemplos de aplicaciones de geolocalización. . . . . . . . . . . . . . . . . . 4342.1 Ejemplo 1: Visualización del mapa del centro de España. . . . 4342.2 Ejemplo 2: Visualización del mapa

del centro de España (marcador) . . . . . . . . . . . . . . . . . . . . . . . 4412.3 Ejemplo 3: Visualización del mapa del centro de España

(marcador y círculos de población) . . . . . . . . . . . . . . . . . . . . . 4452.4 Ejemplo 4: Visualización del mapa del centro de España

(información meteorológica) . . . . . . . . . . . . . . . . . . . . . . . . . . 4492.5 Ejemplo 5: Visualización del mapa de Madrid

(con fotos de los sitios importantes) . . . . . . . . . . . . . . . . . . . . 4562.6 Ejemplo 6: Visualización del mapa de Madrid (Street View) . .458

Page 27: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

11Contenido

Capítulo 19

Diseño (HTML5 CANVAS)

1. Presentación del API HTML5 CANVAS . . . . . . . . . . . . . . . . . . . . . 465

2. Ejemplos de aplicaciones del elemento <canvas> . . . . . . . . . . . . . 4662.1 Ejemplo 1: Dibujar un cuadrado sencillo . . . . . . . . . . . . . . . . 4662.2 Ejemplo 2: Dibujar una matriz de TicTacToe . . . . . . . . . . . . 4702.3 Posibles mejoras en el conjunto del TicTacToe . . . . . . . . . . . 477

Capítulo 20

Gráficos de gestión

1. Diferentes soluciones de diseño de gráficos de gestión . . . . . . . . . 479

2. Ejemplos de uso de los API de Google Charts . . . . . . . . . . . . . . . . . 4802.1 Ejemplo 1: Dibujar un histograma . . . . . . . . . . . . . . . . . . . . . 4802.2 Ejemplo 2: Representación de un gráfico de sectores . . . . . . . 4852.3 Ejemplo 3: Representación de un mapa . . . . . . . . . . . . . . . . . 488

Parte 7Frameworks JavaScript y cliente/servidor

Capítulo 21

Framework AngularJS

1. Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

2. Nociones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4942.1 Primer ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4942.2 Directiva ng-bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4972.3 Directiva ng-init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4992.4 Evaluación de una expresión . . . . . . . . . . . . . . . . . . . . . . . . . . 5002.5 Ejemplo de resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502

3. Manipular tablas de memoria y objetos . . . . . . . . . . . . . . . . . . . . . 5053.1 Uso de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5053.2 Uso de un objeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

Page 28: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

12con JavaScript

Aprender a desarrollar

4. Módulo y controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5094.1 Ejemplo utilizando un módulo y un controlador . . . . . . . . . . 5114.2 Directiva personal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5134.3 Método personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5154.4 Controlador en un archivo externo . . . . . . . . . . . . . . . . . . . . . 5184.5 Introducir datos con zonas de texto . . . . . . . . . . . . . . . . . . . . 520

5. Bucles y visualización en modo tabla . . . . . . . . . . . . . . . . . . . . . . . 5225.1 Iteración sobre una tabla de datos. . . . . . . . . . . . . . . . . . . . . . 5225.2 Iteración sobre una tabla de datos y un filtro. . . . . . . . . . . . . 5255.3 Iteración sobre una tabla de datos y una ordenación. . . . . . . 5285.4 Iteración sobre una tabla de datos y una tabla HTML . . . . . 5295.5 Filtrado de una tabla mediante una zona de texto. . . . . . . . . 533

6. Acceso a un servidor de datos remoto (servidor PHP) . . . . . . . . . . 5366.1 Lista simple a partir de una tabla MySQL . . . . . . . . . . . . . . . 5366.2 Lista filtrada a partir de una tabla MySQL . . . . . . . . . . . . . . . 5466.3 Insertar un registro en una tabla MySQL . . . . . . . . . . . . . . . . 552

7. Controles de introducción de datos en los formularios . . . . . . . . . 5597.1 Control para introducir datos en una zona de texto . . . . . . . 5597.2 Control para introducir los datos de una dirección

de correo electrónico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5617.3 Control para introducir datos

en una zona de texto requerida . . . . . . . . . . . . . . . . . . . . . . . . 5627.4 Lista desplegable para escoger una marca . . . . . . . . . . . . . . . . 5647.5 Lista desplegable más avanzada para seleccionar una marca . .5677.6 Lista desplegable todavía más avanzada

para seleccionar una marca . . . . . . . . . . . . . . . . . . . . . . . . . . . 5687.7 Lista desplegable asociada a una búsqueda MySQL. . . . . . . . 5707.8 Directivas ng-click y ng-mouseover . . . . . . . . . . . . . . . . . . . . 5747.9 Directivas ng-show y ng-mouseleave . . . . . . . . . . . . . . . . . . . 5787.10 Gestión del tiempo (temporizador) . . . . . . . . . . . . . . . . . . . . . 5807.11 Gestión de las opciones mediante botones de radio . . . . . . . . 5847.12 Gestión de las opciones mediante casillas de selección . . . . . 586

Page 29: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

13Contenido

Capítulo 22

Framework Node.js

1. Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591

2. Instalación de Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

3. Ejecución del entorno Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594

4. Primer script Node.js que muestra "Hello World" . . . . . . . . . . . . . 5954.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5954.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5964.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598

5. Segundo script que muestra «Hello World» (versión con Content-Type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5995.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5995.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5995.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

6. Tercer script que muestra «Hello World» (versión HTML) . . . . . . 6016.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6016.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6016.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

7. Gestión de las URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6037.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6037.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6037.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605

8. Recuperar parámetros de la URL . . . . . . . . . . . . . . . . . . . . . . . . . . . 6068.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6068.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6068.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608

9. Detectar el evento close en el servidor . . . . . . . . . . . . . . . . . . . . . . 6099.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6099.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6099.3 Ejecución del servidor node_06.js . . . . . . . . . . . . . . . . . . . . . . 610

Page 30: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

14con JavaScript

Aprender a desarrollar

10. Creación de un objeto con su propio evento . . . . . . . . . . . . . . . . . 61110.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61110.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61110.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613

11. Mostrar el primer registro de una tabla MySQL (versión 1) . . . . . 61311.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61311.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61411.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617

12. Mostrar el conjunto de registros de una tabla MySQL . . . . . . . . . 61812.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61812.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61912.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621

13. Mostrar el primer registro de una tabla MySQL (versión 2) . . . . . 62113.1 Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62113.2 Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62213.3 Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

Parte 8Desarrollo híbrido con Ionic 3

Capítulo 23

Desarrollo híbrido en JavaScript

1. Enfoques de desarrollo para las aplicaciones móviles . . . . . . . . . . . 6251.1 Desarrollos web, nativo y híbrido . . . . . . . . . . . . . . . . . . . . . . 626

1.1.1 Aplicaciones web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6261.1.2 Aplicaciones nativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6271.1.3 Aplicaciones híbridas . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

1.2 Las tres principales plataformas . . . . . . . . . . . . . . . . . . . . . . . 6291.2.1 Apple iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6291.2.2 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6301.2.3 Windows Phone, Windows 10 Móvil . . . . . . . . . . . . . . 630

Page 31: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

15Contenido

2. Panorama de las principales plataformas «híbridas» . . . . . . . . . . . . 6312.1 Ionic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6312.2 React Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6312.3 Otras soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632

Capítulo 24

Ionic 3, JavaScript en modo híbrido

1. Presentación detallada del entorno Ionic . . . . . . . . . . . . . . . . . . . . 633

2. Instalación del entorno Ionic 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6342.1 La instalación de Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6352.2 La instalación de los frameworks Ionic y Cordova. . . . . . . . . 6362.3 Una primera aplicación de prueba . . . . . . . . . . . . . . . . . . . . . . 6362.4 Un IDE para modificar las scripts,

Microsoft Visual Studio Code . . . . . . . . . . . . . . . . . . . . . . . . . 6392.5 El código del proyecto ionic3-blank en detalle . . . . . . . . . . . . 640

Capítulo 25

Gestión del Hardware en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659

2. Aplicación ioni3-infos_hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . 6592.1 Informe de la ejecución de la aplicación . . . . . . . . . . . . . . . . . 6592.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 6602.3 Despliegue de la aplicación en Android. . . . . . . . . . . . . . . . . . 668

2.3.1 Descarga de Android Studio. . . . . . . . . . . . . . . . . . . . . . 6702.3.2 Preparación de la aplicación Ionic

para su transferencia en Android Studio. . . . . . . . . . . . 6702.3.3 Importación de la aplicación Ionic en Android Studio . 6722.3.4 Prueba de la aplicación Ionic en Android Studio

en modo AVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6752.3.5 Prueba de la aplicación Ionic en el dispositivo «físico» . . 678

Page 32: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

16con JavaScript

Aprender a desarrollar

3. Aplicación ionic3-battery_status. . . . . . . . . . . . . . . . . . . . . . . . . . . 6803.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 6803.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 681

4. Aplicación ionic3-screen_orientation . . . . . . . . . . . . . . . . . . . . . . . 6864.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 6864.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 687

Capítulo 26

Componentes principales en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693

2. Aplicación ionic3-paso_argumentos . . . . . . . . . . . . . . . . . . . . . . . . 6942.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 6942.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 696

3. Aplicación que integra ventanas modales . . . . . . . . . . . . . . . . . . . . 7043.1 Aplicación ionic3-alert_basic . . . . . . . . . . . . . . . . . . . . . . . . . . 7063.2 Aplicación ionic3-alert_confirm . . . . . . . . . . . . . . . . . . . . . . . 7103.3 Aplicación ionic3-alert_checkbox . . . . . . . . . . . . . . . . . . . . . . 7143.4 Aplicación ionic3-alert_prompt. . . . . . . . . . . . . . . . . . . . . . . . 7213.5 Aplicación ionic3-alert_radio . . . . . . . . . . . . . . . . . . . . . . . . . . 725

Capítulo 27

Aplicaciones básicas en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729

2. Aplicación ionic3-raices_polinomio. . . . . . . . . . . . . . . . . . . . . . . . . 7292.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7292.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 731

3. Aplicación ionic3-MCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7393.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7393.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 741

Page 33: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

17Contenido

Capítulo 28

Gestión de la persistencia en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745

2. Aplicación ionic3-clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7462.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7462.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 747

3. Aplicación ionic3-local_storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7513.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7513.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 752

4. Aplicación ionic3-sqlite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7564.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7564.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 759

Capítulo 29

Gestión de las listas en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2. Aplicación ionic3-list_basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7682.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7682.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 769

3. Aplicación ionic3-list_avatar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7713.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7713.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 772

4. Aplicación ionic3-list_slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7734.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7734.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 776

Page 34: Parte 1: Abordar el diseño de sitios web...2 Domine los estándares de la creación de los sitios web HTML5 y CSS3 Parte 2 : HTML 5.2 Capítulo 2-1 Los elementos HTML 1. Utilizar

18con JavaScript

Aprender a desarrollar

Capítulo 30

Gráficos de gestión en Ionic 3

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785

2. Aplicación ionic3-chartjs_bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7862.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7862.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 7872.3 Script home.html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787

3. Aplicación ionic3-chartjs_pie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7923.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7923.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 794

4. Aplicación ionic3-chartjs_doughnut_json . . . . . . . . . . . . . . . . . . . 7984.1 Resultado de la ejecución de la aplicación. . . . . . . . . . . . . . . . 7984.2 Análisis de los scripts principales. . . . . . . . . . . . . . . . . . . . . . . 800

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811