HTML5 & CSS3 Hernán Beati @hernan_beati hernan@saberweb.com.ar 1.

Slides:



Advertisements
Presentaciones similares
Una página web es una fuente de información adaptada para la World Wide Web(WWW) y accesible mediante un navegador de Internet. Un sitio web es un conjunto.
Advertisements

Repaso desde HTML a XHTML
Publicación de páginas web
INTRODUCCION A CSS.
Ing. Jéber G. Martínez. HTML: Definiéndolo de forma sencilla, "HTML es lo que se utiliza para crear todas las páginas web de Internet". Más concretamente,
RESPONSIVE WEB DESIGN Participantes Gabriel Cuchca PalominoU Jorge Luis Alcantara OspinaU Juan Botetano OlorteguiU Tapia Suaña.
HTML5 y el Futuro de la Web
EVOLUCIÓN DE HTML.
CSS 3.
Introducción al desarrollo de proyectos RIA.
PRESENTACIONES EFECTIVAS Licda. Maura de Magaña Sábado de 7:00 a 12:00
Lic. Manuel Álvaro Pacheco Hoyo
HTML/CSS Marcas básicas.
TALLER DE HTML5. Clase 01 – Prof. Germán RODRÍGUEZ.
Hojas de Estilo Una hoja de estilo es un documento es un documento independiente, donde se definen todos los estilos que se utilizarán en todas las páginas.
Hypertext Markup Language HTML
Curso de Diseño Web Profesor: Mario Figge. El Modelo de Cajas (Box Model)
CSS div.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Hyper Text Markup Language Área de Programación y Metodologías de Desarrollo de Software Departamento de Informática Universidad Nacional de San Luis.
InfoPath Ventajas y Uso.
Por principio un DIV, aunque su contenido sea muy pequeño ocupa todo el ancho de su padre generalmente el body, ya que son elementos de bloque. Recordar.
HTML5 & CSS3 Presentado Por: Fernando Ayala
Curso de Diseño Web Profesor: Mario Figge. CSS  Las hojas de estilo en cascada (Cascading Style Sheets) son un lenguaje formal usado para definir la.
 Un lenguaje que permite asociar estilos de composición a documentos estructurados, como HTML y aplicaciones XML  Un conjunto de propiedades y valores.
JENNY MILENA DIAZ MONCALEANO GESTION EMPRESARIAL.
Estudio de accesibilidad de la tienda online de adolfodominguez.com
inicio y diseño de pagina
introducción al lenguaje
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
HTML5 & CSS3 Hernán
ETIQUETAS. Importante Que es una Etiqueta: Son elementos que tienen dos propiedades básicas: atributos y contenidose crea de esta forma, Se cierra de.
Tel Microsoft Word Duración 25 hrs. XIV. TRABAJAR CON TÍTULOS Agregar títulos a una ilustración Agregar.
Instrucciones para realizar pasaporte: 1.Redactar a mano cada una de las dipaositivas 2.Incluir imágenes referentes al concepto 3.Entregar en carpeta con.
El lenguaje HTML Este lenguaje nos permite estructurar documentos. La mayoría de los documentos tienen estructuras comunes (títulos, parrafos, listas...)
Tu empresa Ing. Diego J. Arcusin Universidad del Cema – Facultad de Ingeniería En Internet? ¿Cómo crear.
Gabriel Montañés León. RSS es el acrónimo de Really Simple Sindication (Sindicación Realmente Simple). Es un formato basado en el lenguaje XML que permite.
HTML5 y el Futuro de la Web Ing. Eddie Malca Vicente CIP
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
¿Qué es? Requisitos Ventajas y Desventajas
Clase 7 Tecnología de la Comunicación II Lics. en Com. Social y Periodismo F AC. DE C S. H UMANAS. UNSL. Sitio Web: construcción en In Design.
WEB Y MULTIMEDIA INTEGRANTES: Piero Álvarez Milena Gómez Cristhian Rodríguez Mónica Pasaca Andrea Deleg Veronica Castillo.
Sitios WEB HTML Dreamweaver Interfaz Instructor: Adbeel Cabnal.
DEFINICIÓN DE HTML5 HTML5 es una combinación de nuevas etiquetas de markup (lenguaje) HTML, propiedades CSS3, JavaScript y algunas tecnologías complementarias.
Sergio Cubero Introducción a las Páginas Web. Sesión 3 12:00-12:30: 12:30-13:00: 13:00-13:30: 12:00-13:30: 13:30-14:00: 14:00-14:30: Tablas Formularios.
CSS Cascading Style Sheets
HTML.
Por: Mayela Mascorro Aplicación de las Tecnologías de la Información, Grupo 003. UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN FACULTAD DE ARQUITECTURA.
 Es un archivo delimitado por etiquetas que nos ayudan a crear páginas web por medio de estas por lo que hay multiples etiquetas que nos ayudan a la.
Lenguaje de Programación Web Dinámico Multiplataforma Estándar abierto y accesible Elementos nuevos Retrocompatible Nueva filosofía de trabajo Impulsado.
HTML 5 Edgar Vázquez Ayala. Rolando Aarón Pérez Mandujano.
Diseño Aplicado a la Web
HTML Creación de Formularios.. Diseñar es una actividad abstracta que implica programar, proyectar, traducir lo invisible en visible, comunicar. Jorge.
. ¿Cómo crear y administrar una web con Wordpress? Santiago, 1 de octubre 2012.
Layouts adaptables Objetivo: - Probar distintas técnicas para modificar el diseño de una página, según en cuál tamaño de pantalla está siendo visualizada.
Usabilidad de los Sitios Web María Enriqueta Castellanos Bolaños.
Workshop de Responsive Web Design Hernán Beati.
Scripts para elementos adaptables + Metodología
Imágenes líquidas y navegación adaptable Objetivos: - Incoporar técnicas que permitan entregar distintas imágenes según dispositivo, y volverlas líquidas.
@josedlujan. Director de Desarrollo M.T.I. José Dimas Luján Castillo
¿Qué es jQuery? jQuery es una librería gratuita y open source, que simplifica la creación de páginas web altamente interactivas. Funciona.
El color El tamaño del texto Tipo de letra Listas.
Web y Multimedia II Integrantes: Piero Álvarez Mayra Atience Jhonney Bermeo Johanna Cabrera Gabriela Cango.
HTML. HTML 5 Características –Es una versión basada en HTML 4 –Manejo de la aplicación y multimedia. –Tags específicos para diferentes contenidos.
MACROMEDIA FLASH KARLA YUNUEN GONZÁLEZ VILLANUEVA.
Alejandro Caballero Daza Juan Camilo Arévalo Arboleda.
PÁGINA WEB, SITIO WEB Y PORTAL WEB Una página web tradicionalmente hace relación a un documento en el internet, disponible para ser leído, con información.
HTML & CSS. 15 Qué es HTML FCC-BUAP Verano 2016BMB - RAM  Es un lenguaje de marcas para formatear y estructurar un documento, que puede leerse en cualquier.
Integración de objetos y de multimedia en páginas HTML5.
1 Estudios Sectoriales Accesibilidad web. 2 Á mbito de los estudios Las webs objeto del an á lisis de estos estudios pertenecen a los siguientes Sectores:
Transcripción de la presentación:

HTML5 & CSS3 Hernán Beati @hernan_beati hernan@saberweb.com.ar 1

Hernán Beati Desarrollador Web + 12 años + coautor con Maximiliano Firtman Autor libro: Fundador de: Docente en: 2

Lenguaje universal, base de la Web Web = HTML Lenguaje universal, base de la Web 3

HTML 4.01 = 1999 XHTML 1.0 = 2000 XHTML 1.1 = 2001 XHTML 2 = ? HTML5

¿A qué se le llama HTML5? HTML5 (nuevas etiquetas, marcado) CSS3 (nuevos estilos) APIs JavaScript (programación) + Otros estándares W3C (SVG, MathMl) + Estándares “de facto” (microformatos) + Experimentos de algún navegador + + + ... 5

Nuevas etiquetas semánticas Video, audio y animación sin plugins Nuevo en HTML5 Nuevas etiquetas semánticas (Google debe entender los contenidos) Video, audio y animación sin plugins (Acceso universal: cualquier dispositivo, cualquier navegador, cualquier versión) Nuevos elementos de formularios (Más usabilidad y menor uso de JavaScript) 6

Nuevo en CSS3 Usar cualquier tipografía Efectos decorativos: sombras, RGBa, bordes redondeados, gradientes, (menor uso de imágenes) Movimientos: transformaciones, transiciones, animaciones (menor uso de JavaScript) Diseño adaptable: Media Queries Selectores más precisos (menor uso de marcado innecesario) 7

Nuevo en Scripts Animaciones con Canvas Drag & Drop Geolocalización del usuario Trabajo offline (cache de aplicaciones) Web Storage (session y local) File System API (archivos enteros) Bases de datos del lado del cliente Web sockets (actualización en vivo, tipo Ajax) Hilos (threads) Web Workers 8

Pero...¿cuál es “la” pregunta? (que todos nos estamos haciendo con HTML5 y CSS3) 9

¿Ya se puede usar!? 10

“Naaahh... ¡si en Explorer no anda!” 11

Esa duda se basa en rumores* *(conceptos erróneos) 12

El principal: Esperar que la perfección total se haga realidad un día El principal: Esperar que la perfección total se haga realidad un día. El “Día D” nunca existirá… 13

“Cuando todos los seres humanos del mundo se actualicen a X navegador La diversidad de versiones y plataformas siempre existirá: sin plugins, JavaScript desactivado, resoluciones MUY diferentes. 14

“Cuando todos los navegadores interpreten idénticamente el 100% del estándar...” Las diferencias entre navegadores siempre existirán, jamás hubo 2 navegadores iguales. La evolución / innovación implementando nuevas capacidades, siempre existirá. Siempre seguirán en uso navegadores antiguos. 15

“Cuando el W3C publique la especificación, ahí sí se podrá usar!” En 2015 recién será “Recomendación”. ¿Para 2022 la habrán implementado los navegadores? HTML: primer estándar VIVO, sin versión. Se estandarizan las innovaciones. Lo que ya funciona nunca se quitará. 16

“...porque yo quiero que mis diseños se vean idénticos en todos los navegadores y en todos los dispositivos...” ¿!? Existen celulares de 128 x 160 pixeles, y plasmas de 1920 x 1200px!! 17

¿Y entonces cuál es la respuesta? ¿Ya se puede usar!? 18

Versión abreviada: Sí 19

Versión explicada: Se puede usar mediante técnicas de compatibilidad 20

Principales técnicas: Mejora progresiva (Progressive enhancement). Degradación elegante (Graceful degradation). Mejora regresiva (Regressive enhancement). 21

1. Mejora progresiva (Progressive enhancement) “Después de crear una página básica, que funcione en Explorer, agreguemos funcionalidades extra para navegadores más potentes, usando selectores avanzados.” Dave Shea (2003) www.csszengarden.com 22

2. Degradación elegante (Graceful degradation) “Diseñar para los navegadores más potentes y móviles, haciendo uso pleno de HTML5 y CSS3, asumiendo que no se va a ver idéntico.” Degrada en sitio menos decorado o menos funcional (le “falta” algo). 23

Andy Clarke propone crear hoja de estilo de texto plano para Explorers viejos, y no perder tiempo en compatibilizar la estética... (O cobrar ese tiempo aparte!) 24

3. Mejora Regresiva: Complementar al navegador Tercera posición: 3. Mejora Regresiva: Complementar al navegador Aplicamos nuevas etiquetas HTML5 y CSS3 para navegadores nuevos, y luego agregamos scripts para “fabricar” esa misma funcionalidad en navegadores que no la traen (funcional, o a veces característica estética). Se les llama shims, polyfills, scripts compatibilizadores, etc. Por ejemplo: Modernizr, Selectivizr, Yepnope. 25

Diseño Adaptable (responsive design) En el fondo, el concepto clave es aplicar Diseño Adaptable (responsive design) Aceptar diferencias entre dispositivos... ...pero también aceptar diferencias entre navegadores y sus versiones. NO BUSCAR UNIFORMIDAD!!!

Supera actitudes extremas de: -Usar sólo características CSS básicas que sean soportadas por el obsoleto Explorer 6 (recién Explorer 8 aplicó CSS 2.1 completo, 10 años!!!). -Olvidarse completamente de navegadores anteriores y limitados, diseñando sólo para navegadores modernos (Andy Clarke…) 27

¿qué debo hacer para usar HTML5 y CSS3 ya? Entonces, ¿qué debo hacer para usar HTML5 y CSS3 ya? 28

Cambiar la forma de pensar el diseño web. 29

Nuestro concepto de diseño web no puede seguir siendo el mismo que en diseño “gráfico”. 30

La web es <---flexible---> (múltiples dispositivos, múltiples navegadores) 31

La web es MUY flexible: (¿Para cuál resolución diseñar? Para TODAS!!) Y más!... 32

“...pero yo quiero que mis diseños se vean idénticos en todos los navegadores y en todos los dispositivos...” ¿!!!? 33

Algo es diseño si es funcional a una meta, Pensar el diseño web como creación de experiencias de usuario, y no como una decoración rígida, uniformizadora, ni como un lienzo artístico. Algo es diseño si es funcional a una meta, EL DISEÑO NO ES ARTE 34

“La” pregunta del diseño web debe ser: ¿puedo hacer las tareas que vine a hacer al sitio? (Con cualquier dispositivo, con cualquier navegador y versión) 35

Diseño adaptable = Responsive design Deberemos explicar a clientes y jefes que cada usuario “verá levemente distinto” cada sitio web ¡Porque es inevitable y no tiene nada de malo! Diseño adaptable = Responsive design 36

Resumiendo: (respuestas a “la” pregunta) Sí, se puede usar HTML5 y CSS3 hoy! Aplicando técnicas de compatibilidad: Mejora progresiva, Degradación elegante o Mejora regresiva. Debemos aceptar la flexibilidad de la web, y cambiar nuestras expectativas de diseño. 37

HTML5: Primer estándar “vivo” 38

Antes: W3C definía reglas, que luego los navegadores iban aplicando 39

Ahora: navegadores innovan, y W3C lo agrega al estándar Es lo lógico... 40

Conclusión: HTML5 es el estándar más consensuado de la historia Conclusión: HTML5 es el estándar más consensuado de la historia! Todos lo apoyan... 41

¿Objetivo de nuevas etiquetas? Usar etiquetas con significado Google debe entender cuál contenido es importante y cuál no lo es. 42

Estructuras nuevas Article: contenido fundamental, independiente Aside: contenido accesorio, no fundamental Nav: barra de navegación Section: una sección o bloque (ex DIV) Header: introducción / orientación sobre sección Footer: final de una sección Hgroup: grupo de encabezados Figure: contenido relacionado (imagen, video, audio, canvas, gráficos, tablas estadísticas, etc.) Figcaption: leyenda de un elemento Figure 43

Ejemplos: Antes: <div id=“wrapper”></div> <div id=“noticia”></div> <div id=“banners”></div> <div id=“header”></div> <div id=“footer”></div> <div id=“nav”></div> <div id=“foto”> <img src=“x” /> <p>Esta foto habla de...</p> </div> Ahora: <section></section> <article></article> <aside></aside> <header></header> <footer></footer> <nav></nav> <figure> <img src=“x” /> <figcaption><p>Esta foto habla de...</p></figcaption> </figure> 44

¿Aún más significado? Extensibilidad con Microdata y Microformatos “Google debe entender cuál contenido es importante y cuál no lo es...” 45

Secciones explícitas Article Aside Nav Section 46

1. Article Es el contenido importante de cada página Puede haber uno, o varios por página Ver ejemplo 47

2. Aside Es información secundaria, que podría no estar. Ej.: Barras laterales, banners. Ver ejemplo 48

3. Nav Una barra de navegación. Puede haber una, o varias por página Ver ejemplo 49

4. Section Una sección explícita. Puede haber una, o varias por página Ver ejemplo 50

4.a Section = “parte de...” Puede haber una o más sections dentro de un article: <article> <section>Datos del Autor</section> <section>Comentarios</section> </article> Ver ejemplo 51

4.b Section = “contenedor de...” Una section puede tener articles dentro (¡con sections dentro!): <section> <article>Noticia de hoy</article> <article>Noticia de ayer</article> </article> Ver ejemplo 52

Headers & Footers Pertenecen a secciones (article, aside, nav y section) además del body. Ver ejemplo 53

54

Figure No es solo para fotos (diagramas, SVG, MathML, listas de código) que puedan ser referenciados (apéndice, índice, etc.) <figure> <figcaption>Bla</figcaption> <img src="logo.jpg" /> </figure> Ver ejemplo 55

Compatibilizador para Explorer

Textos más semánticos Mark: resultados resaltados (en vez de span, em o strong) Time: Hora, Fecha, o ambas cosas Meter: Medidas dentro de una escala Progress: Medidas dinámicas, cambiantes 58

<Etiquetas> que cambiaron A puede envolver varias cosas (bloques) Address pertenece a una sección, no solo a la página entera B estilo “diferente”, pero no más importante ni negrita I cambio de entonación (en otro idioma, tecnicismos) Strong es algo importante, aunque no se vea distinto Cite ahora es para “título” de la obra citada, no para “autor” Hr cambio de tema entre párrafos (Ej.: viñeta entre estrofas) Small es la letra chica de los contratos, términos legales 59

¿Aún más significado? Extensibilidad con Microdata y Microformatos “Google debe entender cuál contenido es importante y cuál no lo es...” 60

Opiniones / revisiones Contactos Productos Empresas Recetas Eventos http://www.google.com/support/webmasters/bin/answer.py?hl=es&answer=146897 Datos personales Opiniones / revisiones Contactos Productos Empresas Recetas Eventos Video 61

<div class="vcard"> <img class="photo" src="http://www. sitio <div class="vcard"> <img class="photo" src="http://www.sitio.com/tim.jpg" /> <strong class="fn">Tim Berners-Lee</strong> <span class="title">Director</span> del <span class="org">W3C</span> <span class="adr"> <span class="street-address">C/Ada Byron, 39</span> <span class="locality">Asturias</span>, <span class="region">España</span> <span class="postal-code">33203</span> </span> </div> Ver ejemplo 62

¿Principal dificultad de los formularios? Validación! 63

Soluciones HTML5: Nuevos tipos de input y nuevos atributos auto-validables 64

13 nuevos type: search, tel, url, email, number, range, datetime, datetime-local, date, month, week, time, color 65

Search: <input type="search"> -Botón “x” para “limpiar” -No permite saltos de línea -Degrada en “text” 66

Tel: <input type="tel"> -Puede incluir espacios o guiones -Degrada en “text” -Por ahora, es solo semántica 67

URL: <input type="url"> Valida que sea una URL absoluta 68

Email: <input type="email"> Verifica que la casilla sea válida Email: <input type="email"> Verifica que la casilla sea válida. Puede llevar el atributo multiple y en ese caso acepta varias casillas separadas por comas. 69

Number: <input type="number" min="0" max="100" step="10" value="50"> Formato: -12345.678e+90 (puede ser negativo, usa punto para decimales, e para exponente, más signo y potencia) 70

Range: <input type="range" min="0" max="100" step="10" value="50"> Usar si no importa la precisión del número, sino la usabilidad. 71

Date: <input type="date"> Puede llevar min, max (rango permitido) y step (por default, de a 1 día) Formato: 2011-09-19 72

Datetime: <input type="datetime"> Fecha y hora en formato UTC: 2011-05-19T10:55:59.001-03:00 73

Month: <input type="month"> -Mismos atributos que Date (min, max, step) -Formato: 2011-05 -¿vencimiento de tarjeta de crédito? 74

Week: <input type="week"> Mismos atributos que Date (min, max, step) Formato: 2011-W17 75

Time: <input type="time" min="11:30" max="23:30" step="600"> Mismos atributos que date. Formato: 11:59 Formato con segundos (opcionales): 11:59:59 76

Color: <input type="color"> Opera 11+ 77

Atributos nuevos 78

Multiple <input type="file" multiple="true"> Se usa en inputs de tipo file o email 79

Autocomplete <input type="text" autocomplete=“on”> (por default) <input type="text" autocomplete=“off”> 80

Campos obligatorios <form> <input type="email" id="casilla" required> <input type="submit" value="Subscribirse"> </form> 81

Autofocus <input type="text" autofocus> (a un solo campo, o solo tomará el último) 82

Placeholder <input type="text" placeholder="Escriba su nombre"> (tener en cuenta que el placeholder se esconde si hay autofocus) 83

Pattern <label> Nro Pattern <label> Nro. de Tarjeta de Crédito: <input pattern="[0-9]{13,16}"> </label> 84

Datalist (auto-suggest) <input type="url" name="diario" list="sugerencias"> <datalist id="sugerencias"> <option label="La Nación" value="http://www.lanacion.com.ar"></option> <option label="Clarín" value="http://www.clarin.com"></option> <option label="Página 12" value="http://www.pagina12.com.ar"></option> <option label="Infobae" value="http://www.infobae.com"></option> </datalist> 85

No validar: <form novalidate> Para usar validación propia (con JavaScript) 86

Compatibilizar formularios para navegadores viejos https://github 87

Multimedia HTML5: Audio, video y animaciones 88

Audio <audio controls="controls">. <source src=“x Audio <audio controls="controls"> <source src=“x.ogg" type="audio/ogg" /> <source src=“x.mp3" type="audio/mpeg" /> Contenido alternativo. </audio> 89

Formatos soportados. mp3 - Chrome y Safari Formatos soportados .mp3 - Chrome y Safari .ogg - Firefox y Opera ¿Explorer? Fallback con Player .flv 90

Video <video controls="controls" preload="auto"> <source src= "x.mp4" type="video/mp4" /> <source src= "x.webm" type="video/webm" /> <source src= "x.ogg" type="video/ogg" /> Contenido alternativo. </video> 91

Formatos soportados. mp4 – Chrome 6, Safari 5, Explorer 9 Formatos soportados .mp4 – Chrome 6, Safari 5, Explorer 9 .ogg y WebM – Chrome, Firefox y Opera ¿Explorer viejo? Fallback con .flv 92

Valores de Preload preload="none" (no descarga nada) preload="metadata" (no baja el video, pero sí sus metadatos -tamaño, etc.-) preload="auto" (lo baja por adelantado) preload="" (igual a auto, lo baja) Si no es declarado, cada navegador decide, aunque especificación dice que debe aplicar “metadata”. 93

Poster poster="imagen_inicial.jpg“ Imagen que se ve antes de dar play 94

Video con fallback http://camendesign.com/code/video_for_everybody 95

Animaciones “a la HTML5” (sin Flash) 3 tecnologías: 1) Canvas (bitmap) 2) SVG (vectorial) -poco soporte- 3) CSS3 Animations 96

Ejemplos de Canvas http://agent8ball.com/ http://www.s5-style.com/ 97

Libros sobre Canvas 98

Asegurar soporte: <. --[if IE]> <script src="excanvas Asegurar soporte: <!--[if IE]> <script src="excanvas.js"></script> <![endif]--> http://excanvas.sourceforge.net 99

Referencias oficiales de HTML5: Versión aprobada (vieja): http://www Referencias oficiales de HTML5: Versión aprobada (vieja): http://www.w3.org/TR/html5/ Versión borrador “vivo”: http://dev.w3.org/html5/markup/Overview.html Versión del WHATWG: http://www.whatwg.org/html 100

Hacemos un break! Y seguimos con: Posibilidades de CSS3 101

Nuevas posibilidades estéticas Textos: Fuentes, columnas, wrap Nuevas posibilidades estéticas Textos: Fuentes, columnas, wrap. Colores: transparencia, degradé. Elementos decorativos: bordes, sombras de cajas y de textos, efectos 3D, fondos múltiples. 102

1. Tipografías con @font-face 103

@font-face{ font-family:Mifuente; src: fuente @font-face{ font-family:Mifuente; src: fuente.woff; } #titulos{ font-family: Mifuente, arial, helvetica, sans-serif; } 105

@font-face { font-family: 'Mega'; /. Nombre a usar. / src: url('mega @font-face { font-family: 'Mega'; /* Nombre a usar */ src: url('mega.eot'); /* Compat. c/IE 9 */ src: url('mega.eot?#iefix') format('embedded-opentype'), /* IE 6-8 */ url('mega.woff') format('woff'), /* resto */ url('mega.ttf') format('truetype'), /* Safari, Android, iOS */ url('mega.svg#MegalopolisExtraRegular') format('svg'); /* iOS versiones viejas */ } 106

Columnas column-count: Cuántas column-width: Ancho column-gap: Hueco column-rule: Rayita 107

.tres_columnas{ column-count: 3; column-width: 120px; column-gap: 24px; column-rule: 1px solid #999; }

2. Colores en CSS3  RGBa  HSL  HSLa  Degradés  Transparencias 109

Translucidez RGBa body{ background-color:rgb(100,20,40); / Translucidez RGBa body{ background-color:rgb(100,20,40); /* Fallback sólido */ background-color:rgba(100,20,40,0.5); } A diferencia de opacity, no se hereda! RGBa(0,0,0,0) es transparente total 110

¿Y Explorer. Comentarios Condicionales: < ¿Y Explorer? Comentarios Condicionales: <!--[if IE]> <link rel= “stylesheet” href= “hojaexplorer.css”> <![endif]--> 111

Dentro de hojaexplorer. css: Dentro de hojaexplorer.css: .translucido { background:transparent; filter:progid:DXImageTransform. Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050); /* mismo valor de inicio y fin / zoom: 1; } 112

Formato startColorstr AARRGGBB AA = Alpha, 00 transparente, FF sólido RR = Red GG = Green BB = Blue Conversor RGB a Hexadecimal: http://www.javascripter.net/faq/rgbtohex.htm 113

Tono, saturación, brillo: HSL body{ background-color: hsl(360,100%,20%); } Valor de Tono: 0 a 360 (0 rojo, 120 verde, 240 azul, 360 rojo) Conversor para fallback: http://serennu.com/colour/hsltorgb.php 114

Tono, saturación, brillo + Translucidez: HSLa body{ background-color: hsla(300,130%,65%,10%); } HSL con translucidez Alpha 115

Generador de Degradés http://gradients.glrzad.com 116

Bordes redondeados #algo { border-radius:10px; } 118

Border-image #algo{ border-image: url("borde.png") 12 repeat round; } 119

Ejemplo de border-image http://www. w3 120

Ejemplo de Box-shadow .sombra { box-shadow: 10px 10px 5px #999; } 121

Sombra en Explorer. sombra { zoom: 1; filter: progid:DXImageTransform Sombra en Explorer .sombra { zoom: 1; filter: progid:DXImageTransform.Microsoft.Shadow(color='#969696', Direction=135, Strength=3); } 123

Text-shadow .sombra { text-shadow: 10px 10px 5px #999; } 124

Media queries (consultas sobre el medio) Detectan características de un dispositivo, para aplicarle distintos estilos http://www.w3.org/TR/css3-mediaqueries 126

http://mediaqueri.es http://mediaqueri.es 127

Media “a la antigua” En el HTML: <link rel="stylesheet” media="screen" href=“pantalla.css"> <link rel="stylesheet” media="print" href=“impresora.css"> <link rel="stylesheet” media=“handheld" href=“algun-celular.css"> 128

Media dentro de CSS @media screen { h1 { font-size: 2em; } } 129

Características detectables width, height, device-width, device-height, orientation, aspect-ratio, device-aspect-ratio, color, color-index, monochrome, resolution, scan, grid 130

Condiciones (Queries): <link href=“celular Condiciones (Queries): <link href=“celular.css" rel="stylesheet" media="only screen and (min-width: 0px) and (max-width: 320px)” > <link href=“tableta.css" rel="stylesheet" media="only screen and (min-width: 321px) and (max-width: 768px)" > <link href=“monitor.css" rel="stylesheet" media="screen and (min-width: 801px)"> 131

Detectar orientación <link rel="stylesheet" media="all and (orientation:portrait)" href=“vertical.css"> <link rel="stylesheet" media="all and (orientation:landscape)"href=“horizontal.css"> 132

Detección de tamaño @media screen and (min-width: 400px) and (max-width: 2900px) { /* solo leerán esto en PCs */ } 133

iPhone, iPad y PC <link rel="stylesheet" media="all and (max-device-width: 480px)" href=“iphone.css"> <link rel="stylesheet" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)" href=“ipad.css"> <link rel="stylesheet" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape)" href=“ipad-horizontal.css"> <link rel="stylesheet" media="all and (min-device-width: 1025px)" href=“pc.css"> 134

Criterio antiguo (actual!): Sitio PC + media queries = Sitio móvil?????? 135

La ausencia de detección de Media Queries debe ser el primer filtro! 136

Mejor: Sitio Móvil + media queries = Sitio PC (Progressive enhancement) 137

Móvil primero: <link rel="stylesheet" media=“screen" href=“celulares.css"> <link rel="stylesheet" media=“screen and (min-device-width:1024px) and (max-width:989px)" href=“pc.css"> 138

Compatibilidad para navegadores viejos: http://code. google 139

TODOS los fallbacks: https://github 140

Transformaciones, transiciones y animaciones con CSS3 141

Transformación = “estática”, cambia valor de una propiedad Transición = “dinámica”, cambia entre dos estados Animación = “serie de” transiciones, con timing 142

Transformaciones 143

Funciones posibles de transform:. 1. scale. 2. rotate. 3. skew. 4 Funciones posibles de transform: 1. scale 2. rotate 3. skew 4. translate 5. matrix 144

1. Scale transform: scale(1. 5); /. Aumenta 50% ambos sentidos 1. Scale transform: scale(1.5); /* Aumenta 50% ambos sentidos */ transform:scale(1.5,0.5); /* Aumenta 50% horizontal y reduce 50% vertical */ 145

Escalar en Explorer <9 zoom: 1; / Escalar en Explorer <9 zoom: 1; /* Siempre al principio, para activar hasLayout */ /* Ahora sí, reducimos o ampliamos */ zoom: 1.5; /* Aumenta tamaño */ 146

2. Rotate transform:rotate(45deg); Positivo: sentido agujas del reloj Negativo: contra reloj 147

3. Skew transform: skew(5deg,-5deg); Por separado: skewX(grados) skewY(grados) 148

4. Translate transform: translate(30px,10px); Por separado: translateX(distancia) translateY(distancia) 149

Transiciones Cambio de valor de una propiedad en un tiempo 150

Ejemplo: a { color: white; background: red; } a:hover { color: yellow; background: blue; -webkit-transition: 1s; -moz-transition: 1s; -o-transition: 1s; transition: 1s; } 151

Propiedades por separado transition-property: Propiedad(es) CSS a ser animadas. transition-duration: En segundos. Por defecto el valor es 0. transition-timing-function: Define ease (por defecto), linear, ease-in, ease-out y ease-in-out. transition-delay: Pausa antes de iniciar animación. 152

Editor online de timing de transiciones: http://matthewlein Editor online de timing de transiciones: http://matthewlein.com/ceaser/ Comparación de timings: http://www.the-art-of-web.com/css/timing-function/ Valores de timing por defecto: http://www.w3.org/TR/css3-transitions/ 153

Animaciones solo con CSS. Referencia oficial del W3C: http://dev. w3 154

Pasos: 1. Defino keyframes (similar a “capa” en Flash) 2 Pasos: 1. Defino keyframes (similar a “capa” en Flash) 2. Relaciono con objeto y defino propiedades 155

1. Defino keyframes: @-webkit-keyframes nombre {. 0% { 1. Defino keyframes: @-webkit-keyframes nombre { 0% { transform:funcion(valor); } 20% { transform:funcion(valor); } 100% { transform:funcion(valor); } } 156

2. Relaciono con objeto y defino propiedades: #objeto { -webkit-animation-name: nombre; -webkit-animation-duration: 20s; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; } 157

Conversor agrega prefijos http://animationfillcode.com 158

Soporte navegadores y ejemplos http://robertnyman.com/css3/ 159

Sencha Animator (+/- Flash 3) http://www. sencha Sencha Animator (+/- Flash 3) http://www.sencha.com/products/animator/ Adobe Wallaby http://labs.adobe.com/downloads/wallaby.html Adobe Edge labs.adobe.com/technologies/edge/ 160

Estar pendientes de avances del W3C: http://www. w3 161

APIs de JavaScript (son algo para programadores, solo daremos un vistazo para saber qué posibilidades hay) 162

Objetivos: 1) No depender de librerías (JQuery y similares) para funcionalidades comunes 2) Nuevas funcionalidades 163

1. Geolocalización 2. Multimedia: Audio, Video, Canvas 3 1. Geolocalización 2. Multimedia: Audio, Video, Canvas 3. Trabajo offline con Local Storage, Web Storage, Bases de Datos locales, Application Cache. 4. File System, Historial, WebSockets, Drag and Drop, 5. Hilos (Threads): Web Workers 6. Móviles: DeviceMotion, Viewport, Gestures, Touch 164

Ver ejemplos: http://www.html5demos.com Usar técnicas de compatibilidad también para JavaScript: https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills 165

Conclusión: Usar HTML5 y CSS3 mediante técnicas de compatibilidad +Aplicar Diseño Adaptable (responsive design) 166

HTML5 & CSS3 Hernán Beati @hernan_beati hernan@saberweb.com.ar 167