Descripción
En este libro se estudian los conceptos, sintaxis, matrices, funciones y programación orientada a objetos; se aborda la estructura de la base de datos MySQL y cómo generar consultas complejas; se muestra cómo combinar PHP y MySQL para empezar a crear páginas web dinámicas integrando formularios y otras características HTML, administrar cookies y sesiones y mantener un alto nivel de seguridad. Se hace una exposición completa del manejo de JavaScript, desde la simulación y gestión de eventos hasta el acceso al Modelo de Objetos del Documento, la validación en el navegador y la gestión de errores; se muestra cómo realizar llamadas a Ajax en un segundo plano y convertir sitios web en entornos dinámicos. Asimismo, se hace una explicación completa acerca del funcionamiento de CSS para diseñar y maquetar páginas web, y de las bibliotecas jQuery que pueden hacer el trabajo de desarrollo mucho más fácil. Se estudian también las características interactivas incorporadas a HTML5, incluidos la geolocalización, el audio, el vídeo y el lienzo. Todo lo anterior tiene como finalidad que el lector aprenda a utilizar un completo conjunto de programas para crear un sitio web de red social completamente funcional.
VENTAJAS
• A lo largo del libro aparecen ejemplos, figuras explicativas y secciones con sugerencias, consejos y advertencias.
• Al final de cada capítulo se encuentra una serie de preguntas útiles para repasar lo aprendido.
• Cuenta con un índice alfabético para una búsqueda más puntual de algún término o tema en específico.
• La estructura didáctica del libro en su conjunto obedece a un orden de menos a más relativo al nivel de complejidad.
• Cuenta con contenidos adicionales en www.marcombo.info
CONOZCA
• Las herramientas necesarias para configurar un servidor de desarrollo.
• La estructura, sintaxis, funciones objetos y matrices de PHP.
• Las variables, funciones y operadores de JavaScript.
• Las características y el funcionamiento de la biblioteca JQuery y JQuery Mobile.
APRENDA
• A realizar diferentes acciones utilizando el lenguaje PHP.
• A diseñar una base de datos utilizando MySQL.
• A manipular las funciones, matrices y objetos de JavaScript.
• A diseñar una aplicación de red social.
DESARROLLE SUS HABILIDADES PARA
• Utilizar los mejores procedimientos para implementar formularios HTML.
• Realizar una validación y manejo de errores de JavaScript y PHP.
• Trabajar con hojas de estilo en cascada (CSS).
• Trabajar con el lienzo HTML5.
Prefacio …………………………………………………………………………………. xxiii
1. Introducción al contenido dinámico de la web ……………………………. 1
http y HTML: los conceptos básicos de Berners-Lee …………………………….. 2
Procedimiento de solicitud/respuesta …………………………………………………….. 2
Ventajas de PHP, MySQL, JavaScript, CSS y HTML5 …………………………….. 5
MariaDB: el clon de MySQL …………………………………………………………….. 6
Utilización de PHP……………………………………………………………………………. 7
Utilización de MySQL ………………………………………………………………………. 7
Utilización de JavaScript …………………………………………………………………… 9
Utilización de CSS ………………………………………………………………………….. 10
Y luego está HTML5 ………………………………………………………………………… 11
El servidor web Apache …………………………………………………………………….. 11
Uso de dispositivos móviles ……………………………………………………………….. 12
Sobre el software libre ………………………………………………………………………. 12
Todo junto ……………………………………………………………………………………………… 13
Preguntas …………………………………………………………………………………………. 14
2. Configuración de un servidor de desarrollo ………………………………. 17
¿Qué son WAMP, MAMP o LAMP? …………………………………………………….. 18
Instalación de AMPPS en Windows …………………………………………………….. 18
Prueba de la instalación…………………………………………………………………… 22
Acceso a la carpeta principal (Windows) …………………………………………… 24
WAMP alternativos …………………………………………………………………………………….. 25
Instalación de AMPPS en macOS ……………………………………………………….. 26
Acceso a la carpeta principal (macOS) ……………………………………………… 27
Instalación de LAMP en Linux ……………………………………………………………. 28
Trabajar de forma remota …………………………………………………………………… 28
Inicio de sesión ……………………………………………………………………………… 29
Utilización de FTP ………………………………………………………………………….. 29
Utilización del editor de programas ……………………………………………………… 30
Utilización del EDI ……………………………………………………………………………. 31
Preguntas …………………………………………………………………………………………. 33
3. Introducción a PHP ……………………………………………………………….. 35
Inclusión de PHP en HTML ……………………………………………………………….. 35
Ejemplos de este libro ……………………………………………………………………….. 37
Estructura de PHP …………………………………………………………………………….. 37
Utilización de comentarios ………………………………………………………………. 37
Sintaxis básica ……………………………………………………………………………….. 38
Variables……………………………………………………………………………………………… 39
Operadores ……………………………………………………………………………………. 44
Asignación de valores a variables …………………………………………………….. 47
Comandos de varias líneas ………………………………………………………………. 49
Tipificación de variables ……………………………………………………………………… 51
Constantes …………………………………………………………………………………….. 52
Constantes predefinidas ………………………………………………………………….. 53
Diferencia entre los comandos echo y print ……………………………………….. 54
Funciones ……………………………………………………………………………………… 54
Ámbito de aplicación de variables ……………………………………………………. 55
Preguntas …………………………………………………………………………………………. 61
4. Expresiones y control de flujo en PHP ………………………………………. 63
Expresiones ……………………………………………………………………………………… 63
¿TRUE o FALSE? ……………………………………………………………………………….. 63
Literales y variables ……………………………………………………………………………… 65
Operadores ………………………………………………………………………………………. 66
Prioridades de los operadores ………………………………………………………….. 66
Asociatividad ………………………………………………………………………………… 68
Operadores relacionales ………………………………………………………………….. 70
Condicionales …………………………………………………………………………………… 73
La declaración if ……………………………………………………………………………. 74
La declaración else …………………………………………………………………………. 75
La declaración elseif ………………………………………………………………………. 77
La declaración switch …………………………………………………………………….. 78
El operador ? …………………………………………………………………………………. 81
Bucles ……………………………………………………………………………………………… 82
Bucles while ………………………………………………………………………………….. 83
Bucles do…while …………………………………………………………………………… 84
Bucles for …………………………………………………………………………………….. 85
Salida del bucle …………………………………………………………………………….. 87
Declaración continue ……………………………………………………………………… 88
Conversión implícita y explícita ………………………………………………………… 88
Enlaces dinámicos en PHP ………………………………………………………………… 90
Enlaces dinámicos en acción ……………………………………………………………… 90
Preguntas …………………………………………………………………………………………. 91
5. Funciones y objetos en PHP ……………………………………………………. 93
Funciones en PHP ……………………………………………………………………………. 94
Definición de función ……………………………………………………………………. 95
Devolución de un valor …………………………………………………………………………. 95
Devolución de una matriz ……………………………………………………………….. 97
Paso de argumentos por referencia ………………………………………………….. 98
Devolución en variables globales …………………………………………………………. 99
Recapitulación sobre el ámbito de aplicación de las variables ……………. 100
Inclusión y requisición de archivos ……………………………………………………. 100
La declaración include ………………………………………………………………….. 100
Utilización de include_once ……………………………………………………………. 101
Utilización de require y require_once ………………………………………………. 101
Compatibilidad de las versiones PHP ……………………………………………….. 102
Objetos en PHP ……………………………………………………………………………… 102
Terminología ……………………………………………………………………………….. 103
Declaración de clases ……………………………………………………………………. 104
Creación de objetos ………………………………………………………………………. 105
Acceso a objetos ………………………………………………………………………….. 105
Clonación de objetos …………………………………………………………………….. 107
Constructores ………………………………………………………………………………. 108
Destructores ………………………………………………………………………………… 108
Métodos de escritura …………………………………………………………………….. 109
Declaración de propiedades …………………………………………………………… 110
Declaración de constantes ……………………………………………………………… 110
Ámbito de las propiedades y de los métodos ……………………………………. 111
Métodos estáticos …………………………………………………………………………. 112
Propiedades estáticas ……………………………………………………………………. 113
Herencia ……………………………………………………………………………………… 114
Preguntas ……………………………………………………………………………………….. 117
6. Matrices en PHP …………………………………………………………………..119
Introducción …………………………………………………………………………………… 119
Matrices indexadas numéricamente ………………………………………………… 119
Matrices asociativas ……………………………………………………………………… 121
Asignación mediante la palabra clave array ……………………………………… 122
Bucle foreach…as ……………………………………………………………………………. 123
Matrices de varias dimensiones …………………………………………………………. 125
Uso de funciones en matrices …………………………………………………………….. 128
is_array……………………………………………………………………………………….. 128
count ………………………………………………………………………………………….. 128
sort …………………………………………………………………………………………….. 128
shuffle ………………………………………………………………………………………… 129
explode ……………………………………………………………………………………….. 129
extract…………………………………………………………………………………………. 130
compact ………………………………………………………………………………………. 131
reset ……………………………………………………………………………………………. 132
end ……………………………………………………………………………………………… 132
Preguntas ……………………………………………………………………………………….. 132
7. PHP práctico ………………………………………………………………………..135
Uso de printf …………………………………………………………………………………… 135
Ajustes de la precisión ………………………………………………………………….. 136
Relleno de cadenas ……………………………………………………………………….. 138
Uso de sprintf ………………………………………………………………………………. 139
Funciones de fecha y hora ………………………………………………………………… 139
Constantes de fecha………………………………………………………………………. 142
Uso de la verificación de fecha ………………………………………………………… 142
Manejo de archivos …………………………………………………………………………. 143
Verificación de la existencia de un archivo ……………………………………… 143
Creación de archivos …………………………………………………………………….. 143
Lectura de archivos ………………………………………………………………………. 145
Copia de archivos …………………………………………………………………………. 146
Movimiento de archivos ……………………………………………………………….. 146
Eliminación de archivos ………………………………………………………………… 147
Actualización de archivos ……………………………………………………………… 147
Bloqueo de archivos debido a accesos múltiples ………………………………. 148
Lectura de archivos completos ……………………………………………………….. 150
Carga de archivos …………………………………………………………………………. 151
Llamadas al sistema ………………………………………………………………………… 156
¿XHTML o HTML5? ………………………………………………………………………. 158
Preguntas ……………………………………………………………………………………….. 158
8. Introducción a MySQL …………………………………………………………..161
Fundamentos de MySQL …………………………………………………………………. 161
Resumen de términos de bases de datos ………………………………………………….. 162
Acceso a MySQL mediante la línea de comandos ……………………………….. 162
Inicio de la interfaz de la línea de comandos ……………………………………. 163
Uso de la interfaz de la línea de comandos ………………………………………… 167
Comandos MySQL ……………………………………………………………………… 168
Tipos de datos …………………………………………………………………………………… 173
Índices …………………………………………………………………………………………… 183
Creación de un índice ……………………………………………………………………. 183
Consulta de bases de datos MySQL ……………………………………………….. 189
Unión de tablas………………………………………………………………………………….. 199
Uso de operadores lógicos ………………………………………………………………. 201
Funciones MySQL ………………………………………………………………………….. 202
Acceso a MySQL mediante phpMyAdmin …………………………………………. 202
Preguntas ……………………………………………………………………………………….. 203
9. Dominio de MySQL ……………………………………………………………….205
Diseño de bases de datos ………………………………………………………………….. 205
Claves principales: las claves de las bases de datos relacionales …………. 206
Normalización ………………………………………………………………………………… 207
Primera forma normal …………………………………………………………………… 208
Segunda forma normal ………………………………………………………………….. 210
Tercera forma normal …………………………………………………………………… 212
Cuándo no utilizar la normalización ……………………………………………….. 214
Relaciones ……………………………………………………………………………………… 215
Uno a uno ……………………………………………………………………………………. 215
Uno a muchos ……………………………………………………………………………… 216
Muchos a muchos ………………………………………………………………………… 217
Bases de datos y anonimato …………………………………………………………… 218
Transacciones …………………………………………………………………………………. 219
Motores de almacenamiento de transacciones ………………………………….. 219
Uso de BEGIN …………………………………………………………………………….. 220
Uso de COMMIT …………………………………………………………………………. 221
Uso de ROLLBACK …………………………………………………………………….. 221
Uso de EXPLAIN ……………………………………………………………………………. 222
Copias de seguridad y restauración ……………………………………………………. 223
Uso de mysqldump ……………………………………………………………………….. 223
Creación de archivos de copias de seguridad ……………………………………. 225
Restauración del archivo de la copia de seguridad ……………………………. 227
Descarga de datos en formato CSV …………………………………………………. 227
Planificación de copias de seguridad ………………………………………………. 228
Preguntas ……………………………………………………………………………………….. 228
10. Acceso a MySQL mediante PHP …………………………………………….231
Consultas de la base de datos MySQL con PHP ………………………………….. 231
El proceso …………………………………………………………………………………… 231
Creación del archivo de inicio de sesión ………………………………………….. 232
Conexión a la base de datos MySQL ………………………………………………. 233
Un ejemplo práctico ………………………………………………………………………… 239
La matriz $_POST ……………………………………………………………………….. 242
Eliminación de un registro …………………………………………………………….. 243
Visualización del formulario ………………………………………………………….. 243
Consulta de la base de datos ………………………………………………………….. 244
Ejecución del programa ………………………………………………………………… 245
MySQL práctico ……………………………………………………………………………… 246
Creación de una tabla ………………………………………………………………………… 247
Descripción de una tabla ……………………………………………………………………. 247
Eliminación de una tabla ……………………………………………………………………. 248
Adición de datos ………………………………………………………………………….. 249
Recuperación de datos ………………………………………………………………….. 250
Actualización de datos ………………………………………………………………….. 251
Borrado de datos ………………………………………………………………………….. 251
Uso de AUTO_INCREMENT ……………………………………………………….. 252
Realización de consultas adicionales ………………………………………………. 253
Prevención de intentos de piratería ……………………………………………………. 254
Pasos que puedes seguir ………………………………………………………………………. 255
Uso de marcadores de posición ……………………………………………………….. 256
Prevención de la inyección de HTML ……………………………………………. 259
Uso procedimental de mysqli …………………………………………………………….. 260
Preguntas ……………………………………………………………………………………….. 262
11. Gestión de formularios ………………………………………………………..263
Creación de formularios …………………………………………………………………… 263
Extracción de los datos enviados ………………………………………………………. 265
Valores por defecto ……………………………………………………………………………. 266
Tipos de entradas ………………………………………………………………………………. 267
Desinfección de entradas ………………………………………………………………. 274
Programa de ejemplo ……………………………………………………………………….. 276
Mejoras en HTML5 …………………………………………………………………………. 279
Atributo autocomplete ………………………………………………………………….. 279
Atributo autofocus ……………………………………………………………………….. 279
Atributo placeholder …………………………………………………………………….. 279
Atributo required ………………………………………………………………………….. 280
Atributos de sustitución ………………………………………………………………… 280
Atributos width y height ………………………………………………………………… 280
Atributos min y max ……………………………………………………………………… 280
Atributo step ……………………………………………………………………………….. 281
Atributo form ………………………………………………………………………………. 281
Atributo list …………………………………………………………………………………. 281
Tipo de entrada color …………………………………………………………………………. 281
Tipos de entradas number y range ………………………………………………… 282
Selectores de fecha y hora ……………………………………………………………… 282
Preguntas ……………………………………………………………………………………….. 282
12. Cookies, sesiones y autenticación ………………………………………….283
Uso de cookies en PHP …………………………………………………………………….. 283
Configuración de cookies ……………………………………………………………… 285
Acceso a cookies ………………………………………………………………………….. 286
Eliminación de cookies …………………………………………………………………. 286
Autenticación http ……………………………………………………………………….. 286
Almacenamiento de nombres de usuario y contraseñas ……………………… 290
Programa de ejemplo ……………………………………………………………………. 292
Uso de sesiones ……………………………………………………………………………….. 295
Inicio de sesión ……………………………………………………………………………. 296
Finalización de sesión …………………………………………………………………… 298
Configuración del tiempo de espera ………………………………………………… 299
Seguridad de sesión ………………………………………………………………………. 300
Preguntas ……………………………………………………………………………………….. 303
13. Exploración de JavaScript …………………………………………………….305
Texto JavaScript y HTML ……………………………………………………………………….. 305
Uso de scripts en el encabezamiento de documentos …………………………… 307
Navegadores antiguos y no estándar ……………………………………………….. 307
Inclusión de archivos JavaScript …………………………………………………….. 308
Depuración de errores en JavaScript ……………………………………………….. 309
Uso de comentarios ………………………………………………………………………….. 310
Signos de punto y coma …………………………………………………………………… 310
Variables ………………………………………………………………………………………………. 310
Variables de cadena de caracteres ………………………………………………………. 311
Variables numéricas ………………………………………………………………………….. 311
Matrices ……………………………………………………………………………………… 312
Operadores …………………………………………………………………………………….. 312
Operadores aritméticos …………………………………………………………………. 313
Operadores de asignación ……………………………………………………………… 313
Operadores de comparación …………………………………………………………… 314
Operadores lógicos ……………………………………………………………………….. 314
Asignación creciente, decreciente y abreviada …………………………………. 314
Concatenación de cadenas …………………………………………………………….. 315
Caracteres de escape …………………………………………………………………….. 315
Escritura de variables …………………………………………………………………………….. 316
Funciones ………………………………………………………………………………………. 317
Variables globales ………………………………………………………………………………… 317
Variables locales …………………………………………………………………………………… 317
Modelo de objetos del documento …………………………………………………….. 318
Otro uso del símbolo $ …………………………………………………………………. 320
Uso del DOM ………………………………………………………………………………. 321
Sobre document.write ………………………………………………………………………. 322
Uso de console.log ……………………………………………………………………….. 322
Uso de alert………………………………………………………………………………….. 322
Escritura en elementos …………………………………………………………………… 322
Uso de document.write ………………………………………………………………….. 323
Preguntas ……………………………………………………………………………………….. 323
14. Expresiones y control de flujo en JavaScript ……………………………325
Expresiones ……………………………………………………………………………………. 325
Literales y variables ………………………………………………………………………………. 326
Operadores …………………………………………………………………………………….. 327
Prioridad de operadores ………………………………………………………………… 328
Asociatividad ………………………………………………………………………………. 328
Operadores relacionales ………………………………………………………………… 329
Declaración with …………………………………………………………………………….. 332
Uso de onE11o1 ………………………………………………………………………………… 333
Uso de try…catch …………………………………………………………………………….. 334
Condicionales …………………………………………………………………………………. 335
Declaración if ……………………………………………………………………………… 335
Declaración else ………………………………………………………………………….. 335
Declaración switch ……………………………………………………………………….. 336
Operador ? ………………………………………………………………………………….. 338
Bucles ……………………………………………………………………………………………. 338
Bucles while ………………………………………………………………………………… 338
Bucles do…while ………………………………………………………………………….. 339
Bucles for ……………………………………………………………………………………. 340
Salida del bucle ……………………………………………………………………………. 341
Declaración continue ……………………………………………………………………. 341
Conversión explícita ………………………………………………………………………… 342
Preguntas ……………………………………………………………………………………….. 343
15. Funciones, objetos y matrices de JavaScript ……………………………345
Funciones JavaScript ………………………………………………………………………. 345
Definición de función …………………………………………………………………… 345
Devolución de un valor ……………………………………………………………………….. 347
Devolución de una matriz ……………………………………………………………… 349
Objetos JavaScript …………………………………………………………………………… 350
Declaración de clase …………………………………………………………………….. 350
Creación de objetos ………………………………………………………………………. 351
Acceso a objetos ………………………………………………………………………….. 352
La palabra clave prototype ……………………………………………………………. 352
Matrices JavaScript …………………………………………………………………………. 355
Matrices numéricas ………………………………………………………………………. 355
Matrices asociativas ……………………………………………………………………… 357
Matrices de varias dimensiones ……………………………………………………… 358
Métodos de uso de matrices ……………………………………………………………. 359
Preguntas ……………………………………………………………………………………….. 364
16. Validación de JavaScript y PHP y tratamiento de errores …………..367
Validación de la entrada de usuario con JavaScript ……………………………….. 367
Documento validate.html (Parte 1) …………………………………………………. 367
Documento validate.html (Parte 2) …………………………………………………. 370
Expresiones regulares ………………………………………………………………………. 373
Concordancia mediante metacaracteres …………………………………………… 373
Concordancia de caracteres difusos ………………………………………………… 374
Agrupación mediante paréntesis …………………………………………………….. 375
Clase de caracteres ……………………………………………………………………….. 376
Indicación del intervalo …………………………………………………………………. 376
Negación …………………………………………………………………………………….. 376
Otros ejemplos más complicados ……………………………………………………. 377
Resumen de metacaracteres …………………………………………………………… 379
Modificadores generales ……………………………………………………………….. 381
Uso de expresiones regulares en JavaScript ………………………………………. 382
Uso de expresiones regulares en PHP ……………………………………………….. 382
Nueva visualización del formulario después de la validación PHP …………. 383
Preguntas ……………………………………………………………………………………….. 389
17. Uso de comunicaciones asíncronas ………………………………………..391
¿Qué es la comunicación asíncrona? ………………………………………………….. 392
Uso de XMLhttpRequest …………………………………………………………………. 392
Tu primer programa asíncrono ………………………………………………………….. 394
Uso de GET en lugar de POST ………………………………………………………. 399
Envío de solicitudes XML …………………………………………………………….. 401
Uso de frameworks para la comunicación asíncrona ……………………………. 406
Preguntas ……………………………………………………………………………………….. 406
18. Introducción a CSS ………………………………………………………………407
Importación de hojas de estilo …………………………………………………………… 408
Importación de CSS desde HTML ………………………………………………….. 408
Ajuste de estilo integrados …………………………………………………………….. 409
Uso de ID ……………………………………………………………………………………….. 409
Uso de clases …………………………………………………………………………………… 409
Uso del punto y coma ……………………………………………………………………….. 410
Reglas CSS …………………………………………………………………………………….. 410
Asignaciones múltiples …………………………………………………………………. 410
Uso de comentarios ……………………………………………………………………….. 411
Tipos de estilos …………………………………………………………………………………….. 412
Estilos por defecto………………………………………………………………………… 412
Estilos de usuario ………………………………………………………………………….. 412
Hoja de estilo externas ………………………………………………………………….. 413
Estilos internos …………………………………………………………………………….. 413
Estilos en línea …………………………………………………………………………….. 414
Selectores CSS ……………………………………………………………………………….. 414
Selector de tipo ……………………………………………………………………………. 414
Selector de descendiente ……………………………………………………………….. 414
Selector de hijo ……………………………………………………………………………. 415
Selector de ID ……………………………………………………………………………… 416
Selector de clase …………………………………………………………………………… 417
Selector de atributo ………………………………………………………………………. 418
Selector universal …………………………………………………………………………. 418
Selección por grupo ……………………………………………………………………… 419
Cascada CSS ………………………………………………………………………………….. 419
Creadores de hojas de estilo …………………………………………………………… 420
Métodos de hojas de estilo …………………………………………………………….. 420
Selectores de hojas de estilo ………………………………………………………….. 421
Diferencia entre los elementos div y span ………………………………………….. 423
Medidas …………………………………………………………………………………………. 425
Fuentes y tipografía ………………………………………………………………………………. 427
font-family ………………………………………………………………………………….. 427
font-style …………………………………………………………………………………….. 428
font-size ……………………………………………………………………………………… 428
font-weight ………………………………………………………………………………….. 429
Tratamiento de estilos de texto ………………………………………………………….. 429
Decoración ………………………………………………………………………………….. 429
Espaciado ……………………………………………………………………………………. 430
Alineación …………………………………………………………………………………… 430
Transformación ……………………………………………………………………………. 430
Sangrado …………………………………………………………………………………….. 430
Colores CSS …………………………………………………………………………………… 431
Cadenas reducidas para determinar el color……………………………………… 432
Degradados …………………………………………………………………………………. 432
Elementos de posicionamiento ………………………………………………………….. 434
Posicionamiento absoluto ……………………………………………………………… 434
Posicionamiento relativo ……………………………………………………………….. 434
Posicionamiento fijo …………………………………………………………………….. 435
Pseudoclases …………………………………………………………………………………… 437
Reglas abreviadas ……………………………………………………………………………. 439
El modelo de caja y el diseño ……………………………………………………………. 440
Fijación de márgenes ……………………………………………………………………. 440
Aplicación de bordes …………………………………………………………………….. 442
Ajuste de relleno ………………………………………………………………………….. 443
Contenidos del objeto …………………………………………………………………… 445
Preguntas ……………………………………………………………………………………….. 445
19. CSS avanzado con CSS3 ………………………………………………………..447
Selectores de atributos ……………………………………………………………………… 448
Partes coincidentes de las cadenas ………………………………………………….. 448
Propiedad box-sizing ……………………………………………………………………….. 449
Fondos CSS3 ………………………………………………………………………………….. 450
Propiedad background-clip ……………………………………………………………. 450
Propiedad background-origin …………………………………………………………. 452
Propiedad background-size ……………………………………………………………. 452
Uso de auto Value ………………………………………………………………………………… 453
Múltiples fondos ………………………………………………………………………….. 453
Bordes CSS3 ………………………………………………………………………………….. 455
Propiedad border-color …………………………………………………………………. 455
Propiedad border-radius ………………………………………………………………… 456
Sombras de caja ………………………………………………………………………………. 459
Desbordamiento de elementos ………………………………………………………….. 460
Diseño en varias columnas ……………………………………………………………….. 460
Colores y opacidad ………………………………………………………………………….. 462
Colores HSL ……………………………………………………………………………….. 462
Colores HSLA ……………………………………………………………………………… 463
Colores RGB ……………………………………………………………………………….. 463
Colores RGBA …………………………………………………………………………….. 463
Propiedad opacity…………………………………………………………………………. 464
Efectos de texto ………………………………………………………………………………… 464
Propiedad text-shadow ………………………………………………………………….. 464
Propiedad text-overflow ………………………………………………………………… 464
Propiedad word-wrap ……………………………………………………………………. 465
Fuentes web …………………………………………………………………………………….. 466
Fuentes de la web de Google …………………………………………………………. 467
Transformaciones ……………………………………………………………………………. 468
Transformaciones 3D …………………………………………………………………… 469
Transiciones …………………………………………………………………………………… 470
Propiedades de las transiciones ………………………………………………………. 470
Duración de las transiciones ………………………………………………………….. 471
Retardo en las transiciones …………………………………………………………….. 471
Tiempo de transición …………………………………………………………………….. 471
Sintaxis abreviada ………………………………………………………………………… 472
Preguntas ……………………………………………………………………………………….. 474
20. Acceso a CSS desde JavaScript ………………………………………………475
Revisión de la función getElementById ……………………………………………… 475
La función O ……………………………………………………………………………….. 475
La función S ………………………………………………………………………………… 476
La función C ……………………………………………………………………………….. 477
Inclusión de funciones ………………………………………………………………….. 478
Acceso a las propiedades de CSS desde JavaScript ……………………………… 478
Algunas propiedades de uso frecuente …………………………………………….. 479
Otras propiedades…………………………………………………………………………. 480
JavaScript en línea …………………………………………………………………………… 482
Palabra clave this …………………………………………………………………………. 482
Anexión de eventos a objetos en un script ……………………………………….. 483
Anexión a otros eventos ………………………………………………………………… 484
Adición de nuevos elementos ……………………………………………………………. 485
Eliminación de elementos ……………………………………………………………… 486
Alternativas para añadir y eliminar elementos ………………………………….. 487
Uso de interrupciones ……………………………………………………………………….. 488
Uso de setTimeout ………………………………………………………………………… 488
Cancelación del tiempo de espera …………………………………………………… 489
Uso de setInterval …………………………………………………………………………. 489
Uso de interrupciones en animaciones ………………………………………………. 491
Preguntas ……………………………………………………………………………………….. 493
21. Introducción a jQuery ………………………………………………………….495
¿Por qué jQuery? …………………………………………………………………………….. 495
Inclusión de jQuery …………………………………………………………………………. 496
Elección de la versión adecuada …………………………………………………………. 496
Descarga ……………………………………………………………………………………… 498
Uso de una red de entrega de contenido …………………………………………….. 498
Personalización de jQuery …………………………………………………………….. 499
Sintaxis de jQuery …………………………………………………………………………… 499
Un sencillo ejemplo ……………………………………………………………………… 500
Cómo evitar conflictos entre bibliotecas ………………………………………….. 501
Selectores ………………………………………………………………………………………. 501
Método css ………………………………………………………………………………….. 502
Selector de elemento …………………………………………………………………….. 502
Selector de ID ……………………………………………………………………………… 503
Selector de clase …………………………………………………………………………… 503
Combinación de selectores ……………………………………………………………. 503
Tratamiento de eventos ……………………………………………………………………. 504
En espera de que el documento esté preparado ……………………………………… 505
Funciones y propiedades de eventos ………………………………………………….. 506
Eventos de enfoque y desenfoque …………………………………………………… 507
Palabra clave this …………………………………………………………………………. 508
Eventos click y dblclick ………………………………………………………………… 508
Evento keypress …………………………………………………………………………… 509
Programación amable ……………………………………………………………………. 511
Evento mousemove ………………………………………………………………………. 511
Otros eventos del ratón …………………………………………………………………. 514
Métodos alternativos del ratón ……………………………………………………….. 515
Evento submit ……………………………………………………………………………… 516
Efectos especiales ……………………………………………………………………………. 517
Ocultación y presentación ……………………………………………………………… 518
Método toggle ……………………………………………………………………………… 519
Desvanecimiento de entrada y salida ………………………………………………. 520
Elementos deslizantes hacia arriba y hacia abajo ……………………………… 521
Animaciones ……………………………………………………………………………….. 522
Detención de animaciones …………………………………………………………….. 525
Tratamiento del DOM ……………………………………………………………………… 526
Diferencia entre los métodos text y html …………………………………………. 527
Métodos val y attr …………………………………………………………………………. 527
Adición y eliminación de elementos ……………………………………………….. 529
Aplicación dinámica de clases ………………………………………………………….. 531
Modificación de dimensiones ……………………………………………………………. 531
Métodos width y height …………………………………………………………………. 532
Métodos innerWidth e innerHeight …………………………………………….. 534
Métodos outerWidth y outerHeight ………………………………………………… 534
Atravesar el DOM ………………………………………………………………………………… 535
Elementos padre …………………………………………………………………………… 535
Elementos hijo …………………………………………………………………………….. 539
Elementos hermanos …………………………………………………………………….. 539
Selección de elementos anteriores y posteriores ……………………………….. 541
Atravesar selecciones jQuery ………………………………………………………….. 543
Método is ……………………………………………………………………………………. 544
Uso de jQuery sin selectores ……………………………………………………………….. 546
Método $.each ……………………………………………………………………………… 546
Método $.map ……………………………………………………………………………… 547
Uso de la comunicación asíncrona ………………………………………………………. 548
Uso del método POST …………………………………………………………………… 548
Uso del método GET …………………………………………………………………….. 549
Complementos………………………………………………………………………………… 549
Interfaz de usuario de jQuery …………………………………………………………. 550
Otros complementos …………………………………………………………………….. 550
Preguntas ……………………………………………………………………………………….. 550
22. Introducción a jQuery Mobile ……………………………………………….553
Inclusión de jQuery Mobile ………………………………………………………………. 554
Primeros pasos ……………………………………………………………………………….. 555
Páginas enlazadas ……………………………………………………………………………. 557
Enlace síncrono ……………………………………………………………………………. 557
Enlace en un documento de varias páginas ………………………………………. 558
Transiciones de página ………………………………………………………………….. 558
Botones de diseño …………………………………………………………………………… 562
Gestión de listas ……………………………………………………………………………… 565
Filtrado de listas …………………………………………………………………………… 566
Divisores de listas ………………………………………………………………………… 568
¿Y ahora qué? …………………………………………………………………………………. 571
Preguntas ……………………………………………………………………………………….. 571
23. Introducción a HTML5 …………………………………………………………573
El lienzo ………………………………………………………………………………………… 573
Geolocalización ………………………………………………………………………………. 575
Audio y vídeo …………………………………………………………………………………. 577
Formularios ……………………………………………………………………………………. 578
Trabajadores de la web ……………………………………………………………………………. 579
Microdatos …………………………………………………………………………………….. 579
Preguntas ……………………………………………………………………………………….. 579
24. El lienzo HTML5 ………………………………………………………………….581
Creación y acceso al lienzo ………………………………………………………………. 581
Función toDataURL ……………………………………………………………………… 583
Especificación del tipo de imagen………………………………………………………. 584
Método fillRect ……………………………………………………………………………. 585
Método clearRect …………………………………………………………………………. 585
Método strokeRect ……………………………………………………………………….. 585
Combinación de estos comandos ……………………………………………………. 585
Método createLinearGradient ………………………………………………………… 587
Método addColorStop detallado …………………………………………………….. 589