GRAN LIBRO DE HTML5, CSS3 Y JAVASCRIPT,EL.MARCOMBO

GRAN LIBRO DE HTML5, CSS3 Y JAVASCRIPT,EL.MARCOMBO

GAUCHAT, JUAN DIEGO

28,50 €
IVA incluido
Consulta disponibilidad
Editorial:
MARCOMBO BOIXAREU EDITORES
Año de edición:
2013
Materia
Informática
ISBN:
978-84-267-1995-9
Páginas:
504
Encuadernación:
Rústica
Colección:
EL GRAN LIBRO DE
28,50 €
IVA incluido
Consulta disponibilidad

Índice Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1. Documentos HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.1 Componentes básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2 Una breve introducción a HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.1 Etiquetas y elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.2 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.3 Elementos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3 Estructura global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 <BR>1.3.7 <link> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 <BR>1.4 La estructura del cuerpo del documento . . . . . . . . . . . . . . . . . . . . . 34 <BR>1.4.1 Organización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 <BR>1.4.2 <header> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 <BR>1.4.3 <nav> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 <BR>1.4.4 <section> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 <BR>1.4.5 <aside> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 <BR>1.4.6 <footer> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 <BR>1.5 En el interior del cuerpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 <BR>1.5.1 <article> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 <BR>1.5.2 <hgroup> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 <BR>1.5.3 <figure> y <figcaption> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 <BR>1.5.4 <details> y <summary> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 <BR>1.6 Elementos nuevos y elementos antiguos . . . . . . . . . . . . . . . . . . . . . 51 <BR>1.6.1 <mark> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 <BR>1.6.2 <small> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 <BR>1.6.3 <cite> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 <BR>1.6.4 <address> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 <BR>1.6.5 <wbr> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<BR>1.6.6 <time> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 <BR>1.6.7 <data> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 <BR>1.7 Nuevos atributos y viejos atributos. . . . . . . . . . . . . . . . . . . . . . . . . 54 <BR>1.7.1 El atributo data-* 54 <BR>1.7.2 reversed 54 <BR>1.7.3 ping y download 54 <BR>1.7.4 translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 <BR>1.7.5 contenteditable 56 <BR>1.7.6 spellcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 <BR>2. Estilos CSS y modelos de caja . . . . . . . . . . . . . . . . . . . . . . . . 57 <BR>2.1 CSS y HTML 57 <BR>2.2 Breve introducción a CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<BR> 2.2.1 Reglas CSS 58 <BR>2.2.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 <BR>2.2.3 Estilos en línea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 <BR>2.2.4 Estilos incrustados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 <BR>2.2.5 Archivos externos 61 <BR>2.2.6 Referencias 62<BR> 2.2.7 Selectores nuevos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 <BR>2.3 Aplicar CSS a nuestro documento . . . . . . . . . . . . . . . . . . . . . . 69 <BR>2.3.1 Modelos de caja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 <BR>2.4 Modelo de caja tradicional . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 <BR>2.4.1 Documento HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 <BR>2.4.2 Selector universal (*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 <BR>2.4.3 Títulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 <BR>2.4.4 Declaración de nuevos elementos HTML5 . . . . . . . . . .. . . . . . . . . . . . 74 <BR>2.4.5 Centrar el cuerpo 75<BR> 2.4.6 Creación de la caja principal 75 <BR>2.4.7 La cabecera 76 <BR>2.4.8 Barra de navegación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 <BR>2.4.9 Área principal y Barra lateral 78 <BR>2.4.10 Pie de página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 <BR>2.4.11 Toques finales 81 <BR>2.4.12 box-sizing 82 <BR>2.5 Modelo de caja flexible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 <BR>2.5.1 Contenedor flexible 84<BR>2.5.2 Documento HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 <BR>2.5.3 Display 85 <BR>2.5.4 Ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 <BR>2.5.5 Propiedad Flex 86<BR> 2.5.6 flex-direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 <BR>2.5.7 order 92 <BR>2.5.8 justify-content 92 <BR>2.5.9 align-items 95 <BR>2.5.10 align-self 97 <BR>2.5.11 flex-wrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 <BR>2.5.12 align-content 99 <BR>3. Propiedades CSS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 <BR>3.1 Las nuevas reglas 102 <BR>3.1.1 CSS3 ha enloquecido 102 <BR>3.1.2 Documento HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 <BR>3.1.3 border-radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<BR> 3.1.4 box-shadow 106 <BR>3.1.5 text-shadow 108 <BR>3.1.6 @font-face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 <BR>3.1.7 linear-gradient 110 <BR>3.1.8 radial-gradient 112 <BR>3.1.9 rgb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 <BR>3.1.10 hsla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 <BR>3.1.11 outline 114 <BR>3.1.12 border-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 <BR>3.1.13 background 116 <BR>3.1.14 Columnas 118 <BR>3.2 Transformar 120 <BR>3.2.1 transform: scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 <BR>3.2.2 transform: rotate 121 <BR>3.2.3 transform: skew 122 <BR>3.2.4 transform: translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 <BR>3.2.5 Transformar todo en un elemento 123 <BR>3.2.6 Transformaciones dinámicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 <BR>3.2.7 Transformaciones 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 <BR>3.3 Transiciones 127 3.4 Animaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<BR>4 Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 <BR>4.1 Breve introducción a Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 <BR>4.1.1 El lenguaje 132 <BR>4.1.2 Variables 133 <BR>4.1.3 Condicionales y bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 <BR>4.1.4 Objetos 144 <BR>4.1.5 Constructores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 <BR>4.1.6 El objeto Window 154 <BR>4.1.7 El objeto Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 <BR>4.2 Una introducción a los eventos 156 4.2.1 Atributos de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 <BR>4.2.2 Propiedades del evento 157 <BR>4.2.3 El método addEventListener() 157<BR> 4.3 Incorporar Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 <BR>4.3.1 En línea 158 4.3.2 Incrustado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 <BR>4.3.3 Desde un archivo externo 160 <BR>4.4 Nuevos selectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 <BR>4.4.1 querySelector() 161 <BR>4.4.2 querySelectorAll() 162<BR> 4.4.3 matchesSelector() 164 <BR>4.5 Interactuar con el documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 <BR>4.5.1 Estilos Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<BR>4.5.2 ClassList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 <BR>4.5.3 Acceder a los atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 <BR>4.5.4 dataset 169 4.5.5 Crear y borrar elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 <BR>4.5.6 innerHTML, outerHtml e insertAdjacentHTML 170 4.6 Las API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 <BR>4.6.1 API nativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 <BR>4.6.2 API externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 <BR>4.7 Errores y depuración 174 4.7.1 Consola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 <BR>4.7.2 console.log() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 <BR>4.7.3 Evento error 176 <BR>5 Formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<BR>5.1 Formularios HTML 177 <BR>5.1.1 El elemento <form> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 <BR>5.1.2. El elemento <input> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 <BR>5.1.3 Más elementos de formulario 180 <BR>5.1.4 Enviar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 <BR>5.2 Nuevos tipos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 <BR>5.2.1 Tipo email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 <BR>5.2.2 Tipo search 182 <BR>5.2.3 Tipo url 182 <BR>5.2.4 Tipo tel 183 <BR>5.2.5 Tipo number 183<BR>5.2.6 Tipo range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 <BR>5.2.7 Tipo date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 <BR>5.2.8 Tipo week . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 <BR>5.2.9 Tipo month 184 <BR>5.2.10 Tipo time 184 <BR>5.2.11 Tipo datetime 184 <BR>5.2.12 Tipo datetime-local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 <BR>5.2.13 Tipo color 185 <BR>5.3 Nuevos atributos 185 <BR>5.3.1 Atributo autocomplete 185 <BR>5.3.2 Atributos novalidate y formnovalidate 185 <BR>5.3.3 Atributo placeholder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 <BR>5.3.4 Atributo required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 <BR>5.3.5 Atributo multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 <BR>5.3.6 Atributo autofocus 187 <BR>5.3.7 Atributo pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 <BR>5.3.8 Atributo form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 <BR>5.4 Nuevos elementos de los formularios 188 <BR>5.4.1 El elemento <datalist> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 <BR>5.4.2 El elemento <progress> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 <BR>5.4.3 El elemento <meter> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 <BR>5.4.4 El elemento <output> 189 <BR>5.5 Nueva pseudo-clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 <BR>5.5.1 valid e invalid 189 <BR>5.5.2 optional y required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 <BR>5.5.3 in-range y out-of-range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<BR>5.6 Formularios API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 <BR>5.6.1 SetCustomValidity() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 <BR>5.6.2 El evento invalid y el método CheckValidity() 194 <BR>5.6.3 Validación en tiempo real con ValidityState . . . . . . . . . . . . . . . . . . . . 196 <BR>5.6.4 Restricciones de validez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 <BR>6 Vídeo y audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 <BR>6.1 Vídeo con HTML5 199 6.1.1 El elemento <video> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 6.1.2 Atributos del elemento <video> 201 6.1.3 Formatos de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 6.2 Audio con HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 6.2.1 El elemento <audio> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 6.3 Subtítulos 204 6.3.1 El elemento <track> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.4 Programar un reproductor multimedia 208 6.4.1 Diseño de un reproductor de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.4.2 Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.4.3 Eventos 211 <BR>6.4.4 Código Javascript 212 <BR>6.4.5 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 <BR>6.4.6 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 <BR>6.4.7 Código en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 <BR>7 API TextTrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 7.1 API TextTrack 218 7.1.1 Lectura de pistas o tracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 7.1.2 Lectura de entradas o cues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 7.1.3 Adición de pistas nuevas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 8 API Fullscreen 224 8.1 Basta de ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 8.1.1 Ir a pantalla completa 224 8.1.2 Estilos "Fullscreen" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9. API Stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.1 Capturar contenidos 228 9.1.1 Acceder a la cámara web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<BR>9.1.2 Objetos MediaStreamTrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.1.3 Método stop() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10 API Canvas 233 10.1 Los gráficos para la Web 233 10.1.1 El elemento <canvas> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 10.1.2 GetContext() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 10.2 Dibujar en el lienzo 234 10.2.1 Dibujar rectángulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 10.2.2 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 10.2.3 Degradados 236 10.2.4 Crear trazados 238 10.2.5 Estilos de línea 244 10.2.6 Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 10.2.7 Sombras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 10.2.8 Transformaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 10.2.9 Restaurar el estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 10.2.10 globalCompositeOperation . . . . . . . . . . . . . . . . . . . . . . . . . . 252 10.3 Procesamiento de Imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 10.3.1 drawImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 10.3.2 Datos de imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 10.3.3 cross-Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 10.3.4 Extracción de los datos 259 10.3.5 Patrones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 10.4 Animaciones sobre lienzo 261 10.4.1 Animaciones elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 10.4.2 Animaciones profesionales 262 10.5 Procesar vídeo en el lienzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 10.5.1 Mostrar vídeo en el lienzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 10.5.2 Aplicación de la vida real 268 11. WebGL y Three.js 270 11.1 Lienzo en 3D 270 11.2 Three.js 270 11.2.1 Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 11.2.2 scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 11.2.3 Cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 </p> </div> <div id="tabsinopsis" > <p class="bodytext">Vivimos una revolución. Internet ha dejado de ser sólo un instrumento de comunicación para convertirse en parte de, prácticamente, todos los aspectos de la vida humana. En este contexto, el lenguaje HTML5 ha adquirido una importancia única. Las aplicaciones de Internet a las que accedemos ahora incontables veces en un día, ya sea desde un ordenador de mesa, un teléfono móvil, una PDA o cualquier otro dispositivo, son posibles gracias a HTML5. Con este manual aprenderá, a través de ejercicios prácticos soportados por sólidos conocimientos teóricos, a crear toda clase de sitios webs y aplicaciones estructuradas en HTML5, con estilos CS3 y programadas con las más importantes y recientes herramientas de Javascript. Estudiará desde los conceptos más básicos y tradicionales de cada uno de los lenguajes hasta los más utilizados por verdaderos profesionales de la programación. En cada capítulo irá desarrollando diversos códigos que irán ganando complejidad a medida que se avanza en la lección y harán mucho más accesibles los conceptos previamente estudiados. Mediante el uso de los componentes de los tres lenguajes, las nuevas API que ofrece Javascript y librerías externas, aprenderá a escribir sus propios códigos para crear, programar y optimizar formularios, personalizar la forma en la que se reproduce un archivo de vídeo o de audio, insertar una o más pistas de subtítulos en un vídeo, controlar la entrada y salida de cualquier elemento en el modo de pantalla completa, capturar vídeo en streamig, crear gráficos y animaciones de dos y tres dimensiones, programar un vídeo juego, controlar la apariencia y la forma en la que se comporta el ratón en determinadas circunstancias, utilizar la geolocalización, manipular la historia de navegación del usuario, optimizar el funcionamiento fuera de línea de su sitio, crear aplicaciones de mensajería digital y otras formas de comunicación bidireccional, entre muchos otros conocimientos. </p> </div> </div><!--detpestanias--> <!-- 07/08/2020 SE QUITAN LOS ARTICULOS RELACIONADOS HASTA QUE SE PUEDA MEJORAR EN OCTUBRE--> <!-- --> </div> </div> <!-- Modal Enviar amigo --> <div id="modal-send-friend" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <form id="formEnviaAmigo" class="form-horizontal" method="post" data-toggle="validator" data-focus="false" role="form" novalidate="true"> <input type="hidden" name="codigo" value="1079435" /> <input type="hidden" name="marcaTiempo" value="1780658664" /> <input type="hidden" name="campov" value="" /> <div class="modal-header"> <button class="close" type="button" data-dismiss="modal"><i class="fa fa-times" aria-hidden="true"></i></button> <h4 class="modal-title">Enviar a un amigo</h4> </div> <div class="modal-body"> <div id="send-to-friend-box"> <div class="form-group"> <label for="yourEmail" class="col-sm-2 control-label">Tu email</label> <div class="col-sm-9"> <input id="yourEmail" type="email" name="email" placeholder="Tu email" class="form-control" data-error="Completa este campo" required> <div class="help-block with-errors"></div> </div> </div> <div class="form-group"> <label for="friendEmail" class="col-sm-2 control-label">Email del destinatario</label> <div class="col-sm-9"> <input id="friendEmail" type="text" name="emailAmigo" placeholder="paco@ejemplo.com, lola@outlook.com, cris@yahoo.es" class="form-control" data-error="Completa este campo" required> <div class="help-block with-errors"></div> </div> </div> <div class="form-group"> <label for="subject" class="col-sm-2 control-label">Asunto</label> <div class="col-sm-9"> <input id="subject" type="text" name="asunto" placeholder="Asunto" value="Librería Publics: Un amigo te recomienda" class="form-control"> </div> </div> <div class="form-group"> <label for="comments" class="col-sm-2 control-label">Comentarios</label> <div class="col-sm-9"> <textarea name="comentarios" id="comments" placeholder="Comentarios" class="form-control" data-error="Completa este campo" required></textarea> <div class="help-block with-errors"></div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-9"> <div id="Recaptcha1"></div> </div> </div> </div> <div id="msg-modal"></div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-primary">Enviar</button> </div> </form> </div> </div> </div> <!-- Modal Avisador de stock --> <!-- Modal Reservar --> <!-- Modal Comentar --> </div><!--cierre primary --> </div><!--cierre row --> </div><!--cierre content --> <footer id="footer"> <div class="footer-bottom container"> <div class="row"> <div class="col-md-3"> <img class="footer-logo" title="Ir a la página de inicio" alt="Librería Publics" src="/es/images/logo-white.png"/> <div class="contact-info hidden"> <div>Patricio Ferrandiz, 16</div> <span>03700</span> <span>Dénia</span> <span>(España)</span> </div> <ul class="social-networks"> <li class="facebook"> <a title="FACEBOOK" target="_blank" href="https://es-es.facebook.com/LibreriaPublics/"><i class="fa fa-facebook"></i></a> </li> <li class="whatsapp"> <a title="WHATSAPP" target="_blank" href="https://wa.me/34653539728"><i class="fa fa-whatsapp"></i></a> </li> <li class="instagram"> <a title="INSTAGRAM" target="_blank" href="https://www.instagram.com/publicslibreria"><i class="fa fa-instagram"></i></a> </li> </ul> </div> <div class="footer-menu col-md-3 col-sm-4"> <h2>Contacto</h2> <ul> <li><i class="fa fa-phone" aria-hidden="true"></i><a href="tel:(+34) 965780543">(+34) 965780543</a></li> <li><a href="mailto:info@llibreriapublics.com" target="_blank"><i class="fa fa-envelope" aria-hidden="true"></i>info@llibreriapublics.com</a></li> <li><a href="/es/contacto"><i class="fa fa-comment" aria-hidden="true"></i>Formulario de contacto</a></li> </ul> </div> <div class="footer-menu col-md-3 col-sm-4"> <h2>Páginas legales</h2> <ul> <li><a href="/es/especial/aviso-legal">Aviso legal</a></li> <li><a href="/es/especial/politica-de-cookies">Política de Cookies</a></li> <li><a href="/es/especial/condiciones-de-venta">Condiciones de venta</a></li> <li><a href="/es/especial/proteccion-de-datos">Protección de datos</a></li> </ul> </div> <div class="footer-menu col-md-3 col-sm-4"> <h2>Atención al cliente</h2> <ul> <li><a href="/es/especial/quienes-somos">Quiénes somos</a></li> <li><a href="/es/pedidos-especiales/">Pedidos especiales</a></li> </ul> </div> </div> <div class="footer-copyright"> <div class="row"> <div class="col-sm-12"> <p class="info-name"> 2026 © <strong>Librería Publics</strong>. Todos los Derechos Reservados | <a href="https://editorial.trevenque.es/productos/weblib/" title="Desarrollado por Grupo Trevenque" target="_blank">Grupo Trevenque</a> </p> </div> </div> </div> </div> </footer> <div id="dialogAlert" style="display:none"></div> </div><!--cierre container --> <a href="#" class="scrollToTop"><i class="fa fa-chevron-circle-up" aria-hidden="true"></i></a> <script type="text/javascript"> /** Variables configuración **/ var rutaHtml = "/es"; var rutaImg = "/es/images"; var paginaActual = "detalle.php"; var paramMoneda = "€|D|2|,|."; var totalArticulosCesta = 0; var slider = 0; var autocomplete = 1; var analytics = "UA-174456194-1"; var afiliado = ""; var stickyHeader = "1"; /** Variables texto **/ var aceptar = "Aceptar"; var verCesta = "Ver Mi Compra"; var artInsCestaOK = "Artículo añadido a mi cesta"; var verTodos = "Ver todos"; var introPalBusqueda = "Introduce las palabras de búsqueda"; var notifOK = ""; var notifERR = ""; var notifINFO = ""; var numArticulosCarritoCab = ""; var noArticulosCesta= "No hay artículos en la cesta"; </script> <script type="text/javascript" src="/es/js/jquery.js" ></script> <script type="text/javascript" src="/es/js/jquery-ui.min.js"></script> <script type="text/javascript" src="/es/js/jquery.pnotify.min.js"></script> <script type="text/javascript" src="/es/js/bootstrap.min.js"></script> <script type="text/javascript" src="/es/js/validator.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.5/js/bootstrap-dialog.min.js"></script> <script type="text/javascript" src="/es/js/jquery-labelauty.js"></script> <script type="text/javascript" src="/es/js/lightslider.js"></script> <script type="text/javascript" src="/es/js/jquery.idTabs.min.js" ></script> <script type="text/javascript" src="/es/lightbox/js/lightbox.min.js"></script> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="/es/js/googlebooks.js"></script> <script type="text/javascript" src="https://books.google.com/books?bibkeys=9788426719959&jscmd=viewapi&callback=ProcessGBSBookInfo"></script> <script type="text/javascript" src="/es/js/jssocials.min.js"></script> <script type="text/javascript" src="/es/js/check.js"></script> <script type="text/javascript" src="/es/js/util.js"></script> <script type="text/javascript" src="/es/js/general.js"></script> <script type="text/javascript"> var CaptchaCallback = function() { grecaptcha.render('Recaptcha1', {'sitekey' : '6Lci550UAAAAAI2nbOw-mmmD3QpRWWS3Xj5i1Bhy'}); }; </script> <script src='https://www.google.com/recaptcha/api.js?hl=es&onload=CaptchaCallback&render=explicit' async defer></script> <noscript class="cookie-block-b"> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-174456194-1', 'auto'); ga('require', 'displayfeatures'); ga('send', 'pageview'); </script> </noscript> <script type="text/javascript"> var rutaImg = "/es/images"; var VALORACIONES_LIBROS = false; var EBOOKS = "L"; var logeado = false; var rutaEbooks = "https://www.llibreriapublics.com/es/unclick"; var disponibilidad_L = "N"; var ean = "9788426719959"; var emailNOK = "El e-mail no es correcto"; var emailAmigoNOK = "El e-mail de tu amigo no es correcto"; function comprarEbook (codigo, obj) { if(logeado){ obj.href = "#"; $(document).ready(function() { $("#dialog").dialog({ modal: true }); $("#dialog").dialog({ draggable: false }) $("#dialog").dialog({ resizable: false }); $("#dialog").dialog({ width: 390 }); $("#dialog").dialog({ buttons: { "Cancelar": function() { $(this).dialog("close"); }, "Revisar": function() { window.location = rutaEbooks+"/formPedido.php?fr_accion=comprar&codArticulo=" + codigo }, "No es necesario": function() { window.location = rutaEbooks+"/crearPedido.php?fr_accion=comprar&codArticulo=" + codigo } }}); }); } else return false; } </script> <!-- <script type="text/javascript" src="http://www.google.com/jsapi" charset="utf-8"></script> --> <script src="/es/js/detalleBase.js" type="text/javascript"></script> <!-- <script src="http://books.google.com/books?bibkeys=9788426719959&jscmd=viewapi&callback=ProcessGBSBookInfo"></script> --> <div id="cookie-compliant"> <div class="container"> <div class="row"> <div id="introcookies"> <div class="col-sm-9 introcookies-text"> <p>Esta web utiliza cookies propias y de terceros para mejorar nuestros servicios mediante el análisis de sus hábitos de navegación. Puede obtener más información <a id="info-cookies" href="/es/politica-de-cookies" title="Más información">aquí</a> o cambiar la <a id="config-cookies" href="#">configuración</a>.</p> </div> <div class="col-sm-3 introcookies-btn"> <button type="button" id="cookie-accept" class="btn btn-accept" aria-label="Close">Aceptar cookies</button> </div> </div> <div id="configcookies"> <div class="row"> <div class="col-md-12"> <form name="formCookies" id="formCookies" action="#" method="post"> <h2>¿Que son las Cookies?</h2> <p>Una cookie es un fichero que se descarga en tu ordenador al acceder a determinadas páginas web. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo, gestionar el acceso de usuarios a zonas restringidas de la web, etc. Tipo de cookies utiliza esta página web.</p> <ul class="lista-check"> <li> <div class="primary"> <input type="checkbox" id="cookie_a" name="cookie_a" value="1" checked="checked" disabled="disabled"> <label for="cookie_a"></label> <span>Cookies Técnicas</span> <p>Este tipo de cookies permiten al usuario la navegación a través de una página web, plataforma o aplicación y la utilización de las diferentes opciones o servicios que en ella existan como, por ejemplo, controlar el tráfico y la comunicación de datos, identificar la sesión, acceder a partes de acceso restringido, seleccionar el idioma, o compartir contenidos a través de redes sociales.</p> </div> </li> <li> <div class="primary"> <input type="checkbox" id="cookie_b" name="cookie_b" value="1"> <label for="cookie_b"></label> <span>Cookies de Análisis</span> <p>Son aquéllas que posibilitan el seguimiento y análisis del comportamiento de los usuarios en nuestra página. La información recogida se utiliza para la medición de la actividad de los usuarios en la web y la elaboración de perfiles de navegación de los usuarios, con la finalidad de mejorar la web, así como los productos y servicios ofertados.</p> </div> </li> <li> <div class="primary"> <input type="checkbox" id="cookie_c" name="cookie_c" value="1"> <label for="cookie_c"></label> <span>Cookies de Personalización</span> <p>Estas cookies pueden ser establecidas a través de nuestro sitio por nuestros socios publicitarios. Pueden ser utilizadas por esas empresas para crear un perfil de sus intereses y mostrarle anuncios relevantes en otros sitios. No almacenan directamente información personal, sino que se basan en la identificación única de su navegador y dispositivo de Internet. Si no permite utilizar estas cookies, verá menos publicidad dirigida.</p> </div> </li> </ul> <div class="row"> <div class="col-md-12 botones"> <button type="button" id="grabarAceptar" class="btn btn-accept">Guardar y aceptar</button> <button type="button" id="aceptartodas" class="btn btn-accept">Aceptar todas</button> </div> </div> </form> </div> </div> </div> </div> </div> </div> <script type="text/javascript" src="/es/js/cookieblock-1.1.0.js"></script> <script type="text/javascript"> var cb = new CookieBlock({ browsing: '0', scrolling: '0', }); cb.setIgnore(['/es/politica-de-cookies']); cb.setAnalytics('UA-174456194-1'); cb.setDebug(false); cb.init(); $(document).ready(function() { $("#config-cookies").click(function(e) { e.preventDefault(); $("#configcookies").slideDown(200); $("#introcookies").slideUp(100); }); $("#grabarAceptar").click(function(e) { e.preventDefault(); var form = document.formCookies; var cookiesActivas = "a"; //console.log("cookie_b:"+form.cookie_b.checked); if (form.cookie_b.checked) { cookiesActivas += "-b"; } //console.log("cookie_c:"+form.cookie_c.checked); if (form.cookie_c.checked) { cookiesActivas += "-c"; } $("#cookie-compliant").hide(); //console.log("cookiesActivas:"+cookiesActivas); cb.setCookieExt("ALLOW_COOKIES", cookiesActivas); cb.init(); }); $("#cookie-compliant .lista-check input ~ label + span").click(function() { $(this).next("p").slideToggle(100); }); }); </script> </body> </html>