El Gran Libro de HTML5, CSS3 y JavaScript
2da Edición Revisada
ISBN: 978-84-267-1995-9

El Gran Libro de HTML5, CSS3 y JavaScript guía al lector paso a paso en la adquisición de conocimientos elementales y el dominio de temas complejos introducidos en HTML5. Luego de leer este libro, usted sabrá cómo estructurar sus documentos con HTML, cómo otorgarles estilos con CSS, y cómo trabajar con las más poderosas APIs de JavaScript.
Tabla de Contenidos
Introducción
Capítulo 1 - Documentos HTML5
1.1 Componentes Básicos
1.2 Breve introducción a HTML
Etiquetas y elementos
Atributos
Elementos Tradicionales
1.3 Estructura Global
<!doctype>
<html>
<head>
<body>
<meta>
<title>
<link>
1.4 Estructura del Cuerpo
Organización
<header>
<nav>
<section>
<aside>
<footer>
1.5 Dentro del Cuerpo del Documento
<article>
<hgroup>
<figure> y <figcaption>
<details> y <summary>
1.6 Elementos Nuevos y Viejos
<mark>
<small>
<cite>
<address>
<wbr>
<time>
<data>
1.7 Atributos Nuevos y Viejos
Atributo data-*
Atributo reversed
Atributos ping y download
Atributo translate
Atributo contenteditable
Atributo spellcheck
Capítulo 2 - Estilos CSS
2.1 CSS y HTML
2.2 Breve Introducción a CSS
Reglas CSS
Propiedades
Estilos en Línea
Estilos Embebidos
Archivos Externos
Referencias
Referenciando con Palabra Clave
Referenciando con el Atributo id
Referenciando con el Atributo class
Referenciando con Cualquier Atributo
Referenciando con Pseudo-Clases
Nuevos Selectores
2.3 Aplicando CSS a Nuestro Documento
Modelos de Caja
2.4 Modelo de Caja Tradicional
Documento HTML
Selector Universal *
Cabeceras
Declarando Nuevos Elementos de HTML5
Centrando el Cuerpo del Documento
Centrando la Caja Principal
La Cabecera
Barra de Navegación
Area Principal y Barra Lateral
Pie de página
Ultimos Toques
Propiedad box-sizing
2.5 Modelo de Caja Flexible
Contenedor Flex
Documento HTML
Propiedad display
Ejes
Propiedad flex
Propiedad flex-direction
Propiedad order
Propiedad justify-content
Propiedad align-items
Propiedad align-self
Propiedad flex-wrap
Propiedad align-content
Capítulo 3 - Propiedades de CSS3
3.1 Las Nuevas Reglas
CSS3 se Vuelve Loco
Documento HTML
Propiedad border-radius
Propiedad box-shadow
Propiedad text-shadow
Regla @font-face
Gradiente Lineal
Gradiente Radial
RGBA
HSLA
Propiedad outline
Propiedad border-image
Propiedad background
Columnas
Filtros
3.2 Transformaciones
Propiedad transform: scale
Propiedad transform: rotate
Propiedad transform: skew
Propiedad transform: translate
Transformando Todo al Mismo Tiempo
Transformaciones Dinámicas
Transformaciones en 3D
3.3 Transiciones
3.4 Animaciones
Capítulo 4 - JavaScript
4.1 Breve Introducción a JavaScript
El lenguaje
Variables
Condicionales y Bucles
Funciones y Funciones Anónimas
Objetos
Constructores
El Objeto Window
El Objeto Document
4.2 Introducción a Eventos
Atributos de Eventos
Propiedades de Eventos
El Método addEventListener()
4.3 Incorporando JavaScript
En Línea
Embebido
Archivos Externos
4.4 Nuevos selectores
Método querySelector()
Método querySelectorAll()
Método matchesSelector()
4.5 Interactuando con el Documento
Estilos JavaScript
Propiedades className y classList
Accediendo Atributos
Propiedad dataset
Crear y Eliminar Elementos
Propiedades innerHTML, outerHTML e insertAdjacentHTML
4.6 APIs
APIs Nativas
APIs Externas
4.7 Errores y Depuración
Consola
Método console.log()
Evento error
Capítulo 5 - Formularios y API Forms
5.1 Formularios HTML
El Elemento <form>
El Elemento <input>
Más Elementos de Formulario
Enviar Formulario
5.2 Nuevos Tipos de Entrada
Tipo email
Tipo search
Tipo URL
Tipo tel
Tipo number
Tipo range
Tipo date
Tipo week
Tipo month
Tipo time
Tipo datetime
Tipo datetime-local
Tipo color
5.3 Nuevos Atributos
Atributo autocomplete
Atributo novalidate y formnovalidate
Atributo placeholder
Atributo required
Atributo multiple
Atributo autofocus
Atributo pattern
Atributo form
5.4 Nuevos elementos de Formulario
El Elemento <datalist>
El Elemento <progress>
El Elemento <meter>
El Elemento <output>
5.5 Nuevas Pseudo-Clases
Pseudo-Clases valid e invalid
Pseudo-Clases optional y required
Pseudo-Clases in-range y out-of-range
5.6 API Forms
Método setCustomValidity()
Evento invalid y Método checkValidity()
Validación en Tiempo Real con validityState
Restricciones de Validez
Capítulo 6 - Video y audio
6.1 Video con HTML5
El Elemento <video>
Atributos para el Elemento <video>
Formatos de Video
6.2 Audio en HTML5
El elemento <audio>
6.3 Subtítulos
El Elemento <track>
6.4 Programando un Reproductor
El Diseño
La Aplicación
Eventos
Código JavaScript
Métodos
Propiedades
El Código en Funcionamiento
Capítulo 7 - API TextTrack
7.1 API TextTrack
Leyendo Pistas
Leyendo Entradas
Agregando Nuevas Pistas
Capítulo 8 - API Fullscreen
8.1 El Fin de las Ventanas
Activando Pantalla Completa
Estilos fullscreen
Capítulo 9 - API Stream
9.1 Captura de Medios
Accediendo a la Cámara Web
Objetos MediaStreamTrack
Método stop()
Capítulo 10 - API Canvas
10.1 Gráficos para la Web
El Elemento <canvas>
Método getContext()
10.2 Dibujando en el Lienzo
Rectángulos
Colores
Gradientes
Trayectorias
Estilos de Línea
Texto
Sombras
Transformaciones
Restaurando el Estado
Propiedad globalCompositeOperation
10.3 Procesando Imágenes
Método drawImage()
Datos de Imagen
Aplicaciones Cross-Origin
Extrayendo Datos
Patrones
10.4 Animaciones en el Lienzo
Animaciones Elementales
Animaciones Profesionales
10.5 Procesando Video en el Lienzo
Video en el Lienzo
Aplicación en la Vida Real
Capítulo 11 - WebGL y Three.js
11.1 El Lienzo en 3D
11.2 Three.js
Renderer
Escena
Cámara
Mallas
Primitivas Geométricas
Materiales
Implementación
Transformaciones
Luces
Texturas
Mapeado UV
Texturas con Lienzos
Texturas con Videos
Cargando Modelos 3D
Animaciones 3D
Capítulo 12 - API Pointer Lock
12.1 Nuevo Puntero del Ratón
Captura del Ratón
Propiedad pointerLockElement
Propiedades movementX y movementY
Capítulo 13 - API Drag and Drop
13.1 Arrastrar y Soltar en la Web
Eventos
Objeto dataTransfer
Eventos dragenter, dragleave y dragend
Seleccionando una Fuente Válida
Método setDragImage()
Archivos
Capítulo 14 - API Web Storage
14.1 Dos Sistemas de Almacenamiento
14.2 sessionStorage
Almacenamiento de Datos
Creación de Datos
Lectura de Datos
Eliminación de Datos
14.3 localStorage
Evento storage
Capítulo 15 - API IndexedDB
15.1 Estructurando Datos
Base de Datos
Objetos y Almacenes de Objetos
Indices
Transacciones
Métodos de Almacenes de Objetos
15.2 Implementación de IndexedDB
Documento HTML
Abriendo la Base de Datos
Almacenes de Objetos e Indices
Agregando Objetos
Leyendo Objetos
Finalización del Código y Prueba
15.3 Listado de Datos
Cursores
Cambiando el Orden
15.4 Eliminación de Datos
15.5 Búsqueda de Datos
Capítulo 16 - API File
16.1 Almacenamiento de Archivos
16.2 Procesando Archivos de Usuario
Documento HTML
Leyendo Archivos
Propiedades de Archivos
Blobs
Eventos
16.3 Creación de Archivos
Documento HTML
El Disco Duro
Creando Archivos
Creando Directorios
Listando Archivos
Controlando Archivos
Moviendo Archivos
Copiando Archivos
Eliminando Archivos
16.4 Contenido del Archivo
Escribiendo Contenido
Agregando Contenido
Leyendo Contenido
16.5 Acceso a Archivos
16.6 Sistema de Archivos en la Vida Real
Capítulo 17 - API Geolocation
17.1 Determinando la Ubicación
Documento HTML
Método getCurrentPosition(ubicación)
Método getCurrentPosition(ubicación, error)
Método getCurrentPosition(ubicación, error, configuración)
Método watchPosition(ubicación, error, configuración)
Usos Prácticos con Google Maps
Capítulo 18 - API History
18.1 La Interfaz History
Navegando la Web
Nuevos Métodos
URLs Falsas
Propiedad state
Ejemplo de la Vida Real
Capítulo 19 - API Offline
19.1 El Manifiesto
El Archivo manifest
Categorías
Comentarios
Usando el Archivo manifest
19.2 Offline API
Errores
Eventos online y offline
Proceso de Cacheo
Evento progress
Actualizando el Caché
Capítulo 20 - API Page Visibility
20.1 Estado de Visibilidad
Estado actual
Una Mejor Experiencia
Detección Completa
Capítulo 21 - Ajax Nivel 2
21.1 XMLHttpRequest
Leyendo Datos
Las Propiedades response
Eventos
Enviando Datos
Solicitudes Cross-Origin
Subiendo Archivos
Aplicación en la Vida Real
Capítulo 22 - API Web Messaging
22.1 Comunicación a Través de Documentos
Enviando un Mensaje
Comunicándose con un iFrame
Filtros y Cross-Origin
Capítulo 23 - API WebSocket
23.1 WebSockets
Servidor WebSocket
Instalando y Ejecutando un Servidor WS
Constructor
Métodos
Propiedades
Eventos
Documento HTML
Iniciando Comunicación
Aplicación Completa
Capítulo 24 - API WebRTC
24.1 Se Viene la Revolución
El Antiguo Paradigma
El Nuevo Paradigma
Requisitos
Conexión Entre Pares
Candidato ICE
Oferta y Respuesta
Descripción de Sesión
Transmisión de Medios
Eventos
Finalizando la Conexión
24.2 Implementando WebRTC
Servidor de Señales
Servidores ICE
Documento HTML
Código JavaScript
Aplicación en la Vida Real
24.3 Canales de Datos
Creando Canales de Datos
Enviando Datos
Capítulo 25 - API Web Audio
25.1 Estructura de Nodos
Nodos de Audio
Contexto de Audio
Fuentes de Audio
Conectando Nodos
25.2 Sonidos para la Web
Dos Nodos Básicos
Bucles y Tiempos
Creando AudioNodes
Interfaz AudioParam
Nodo GainNode
Nodo DelayNode
Nodo BiquadFilterNode
Nodo DynamicsCompressorNode
Nodo ConvolverNode
Nodo PannerNode y Sonido 3D
Nodo AnalyserNode
Capítulo 26 - API Web Workers
26.1 Haciendo el Trabajo Sucio
Crear un Trabajador
Enviar y Recibir Mensajes
Detectar Errores
Terminando Trabajadores
APIs Síncronas
Importando Código
Trabajadores Compartidos
Conclusiones
Trabajando para el Mundo
Las Alternativas
Modernizr
Librerías
Google Chrome Frame
Trabajando para la Nube
APIs no Incluidas
Lo que Debería Saber
Palabras Finales del Autor