SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
@carlosazaustre
+CarlosAzaustre
Curso de HTML5Curso de HTML5
Curso de HTML5 @carlosazaustre
Sobre Mi
Carlos Azaustre
Ingeniero en Telemática
CTO y Cofundador en Chefly
Formador Web / Blogger
Mentor en NodeSchool Madrid
Autor de
Desarrollo web ágil con Angular.js
Me puedes leer en
https://carlosazaustre.es
Curso de HTML5 @carlosazaustre
Temario
1. HTML5 Etiquetas y Semántica
2. CSS3, Normalize y Selectores
3. Bootstrap
4. Responsive & Retina Design
5. Introducción a JavaScript
6. Acceso al DOM con JS
7. Un vistazo a Chrome DevTools
8. Uso de jQuery (DOM, Eventos)
9. AJAX
10. Animaciones y Efectos con JS y CSS
Curso de HTML5 @carlosazaustre
Agenda
10h - 14h
Presentación
Parte I
Preguntas
14h - 15h
Pausa para comer
15h - 19h
Parte II
Preguntas
9h - 14h
Parte III
Preguntas
14h - 15h
Pausa para comer
15h - 19h
Parte IV
Preguntas
Día 7 Día 8
Curso de HTML5 @carlosazaustre
¿Qué es HTML5?
El nuevo estándar de HTML para marcado de sitios web y
un conjunto de tecnologías para el desarrollo web actual
(CSS3 para estilos y diseño, JavaScript para interacción
con el servidor)
Curso de HTML5 @carlosazaustre
¿Qué es HTML5?
http://animateyourhtml5.appspot.com/pres/index.html
Curso de HTML5 @carlosazaustre
¿Qué es HTML5?
.move {
position: absolute;
-webkit-animation: anim ease-in-out 3s infinite alternate;
-moz-animation: anim ease-in-out 3s infinite alternate;
-ms-animation: anim ease-in-out 3s infinite alternate;
-o-animation: anim ease-in-out 3s infinite alternate;
animation: anim ease-in-out 3s infinite alternate;
}
@-webkit-keyframes anim
{
from { left: 0px; -webkit-transform: scale(1.0) rotate(0deg) }
50% { left: 250px; -webkit-transform: scale(0.8) rotate(10deg) }
to { left: 500px; -webkit-transform: scale(1.2) rotate(-20deg) }
}
Curso de HTML5 @carlosazaustre
Etiquetas y Semántica
<header>
<nav>
<footer>
<main>
Curso de HTML5 @carlosazaustre
Etiquetas y Semántica
<main>
<article>
<aside>
<header>
<section>
<section>
Curso de HTML5 @carlosazaustre
Etiquetas y Semántica
<figure>
<img>
<figCaption>
Curso de HTML5 @carlosazaustre
Etiquetas y Semántica
<nav>
<li>
<ul>
<li>
<li>
Curso de HTML5 @carlosazaustre
CSS
Lenguaje de estilos para otorgar diseño a nuestra web.
Tamaños, Fuentes, Márgenes, Colores, etc...
Curso de HTML5 @carlosazaustre
Selectores
Elementos
body { margin-top: 50px; }
ID
#menu { background-color: #eaeaea; }
Clase
.navbar { display: inline-block; }
Atributo
input[type=”text”] { padding: 1em; }
Curso de HTML5 @carlosazaustre
PseudoSelectores
Estados
a:hover { color: orange; }
a:visited { color: purple; }
Elementos
p:first-child { margin-top: 10px; }
.item::before { padding: 1em; }
.item::after { padding: 2em; }
Curso de HTML5 @carlosazaustre
Normalize.css
Cada navegador impone unos estilos por defecto.
Para unificar estos estilos antes de trabajar en el CSS, es
conveniente resetearlos
Normalize.css los unifica en todos los navegadores
Curso de HTML5 @carlosazaustre
Responsive Design
Curso de HTML5 @carlosazaustre
Retina Design
x4
width: 2px;
height: 2px;
width: 2px;
height: 2px;
Curso de HTML5 @carlosazaustre
Icon Fonts
fontawesome.io
icomoon.io
Curso de HTML5 @carlosazaustre
Bootstrap - Sistema de Grilla
getbootstrap.com
Curso de HTML5 @carlosazaustre
Bootstrap - Sistema de Grilla
<div class=”container”>
<div class=”row”>
<div class=”col-md-4”> Primera columna </div>
<div class=”col-md-4”> Segunda columna </div>
<div class=”col-md-4”> Tercera columna </div>
</row>
</div>
Móvil Tablet Desktop (> 992px) Desktop (> 1200px)
.col-xs- .col-sm- col-md- col-lg-
Curso de HTML5 @carlosazaustre
JavaScript
Lenguaje de programación de la web (Front-end).
Interpretado, Tipado débil, Herencia prototipal
Permite la interacción con el servidor, llamadas AJAX y
diversos efectos
Curso de HTML5 @carlosazaustre
JavaScript
var cadena = “Hola Mundo”;
var numero = 8
var unArray = [‘hola’, 1, true];
var persona = {
pelo: “Castaño”,
piernas: 2,
};
if(condicion) {
...
}
else {
...
}
for(var i=0; i<5; i++) {
...
}
for(indice in array){
...
}
Declaración de variables
Objetos
Condicionales y
bucles
Curso de HTML5 @carlosazaustre
JavaScript
function miFuncion () {
...
};
var miFuncion = function() {
};
function suma (num1, num2) {
return num1 + num2;
};
suma(2,3);
// 5
Declaración de Funciones
Funciones con parámetros
Curso de HTML5 @carlosazaustre
Acceso al DOM
DOM
Document Object Model
<html>
<head> <body>
<header>
<h1> <p> <span>
<title> <link> <section>
Curso de HTML5 @carlosazaustre
Acceso al DOM
document.getElementById(“myDiv”);
var parrafos = document.getElementsByTagName("p");
function clickHandler() { … }
var anchor = document.getElementById(“anchorID”);
if(anchor.addEventListener) {
anchor.addEventListener(“click”, clickHandler,
true);
}
else if(anchor.attachEvent) {
anchor.attachEvent(“onclick”, function() {
return clickHandler.apply(
anchor,
[window.event]
);
});
}
Acceso a un elemento con id o por nombre de elemento
Manejo de Eventos
Curso de HTML5 @carlosazaustre
Acceso al DOM
// Crear nodo de tipo Element
var parrafo = document.createElement("p");
// Crear nodo de tipo Text
var contenido = document.createTextNode("Hola Mundo!");
// Añadir el nodo Text como hijo del nodo Element
parrafo.appendChild(contenido);
// Añadir el nodo Element como hijo de la pagina
document.body.appendChild(parrafo);
Creación dinámicamente de elementos
Curso de HTML5 @carlosazaustre
Chrome Dev Tools
Visor de elementos
Curso de HTML5 @carlosazaustre
Chrome Dev Tools
Información de Red
Curso de HTML5 @carlosazaustre
Chrome Dev Tools
Código Fuente
Curso de HTML5 @carlosazaustre
Chrome Dev Tools
Recursos
Curso de HTML5 @carlosazaustre
Chrome Dev Tools
Consola de Desarrollador
Curso de HTML5 @carlosazaustre
jQuery
Librería escrita en JavaScript que nos facilita el acceso al
DOM, llamadas AJAX y manejo de eventos.
Curso de HTML5 @carlosazaustre
jQuery
Comparación JS <-> jQuery
document.getElementById(“myDiv”); $(“#myDiv”);
function clickHandler() { … }
var anchor = document.getElementById
(“anchorID”);
if(anchor.addEventListener) {
anchor.addEventListener(“click”,
clickHandler, true);
}
else if(anchor.attachEvent) {
anchor.attachEvent(“onclick”,
function() {
return clickHandler.apply(
anchor,
[window.event]
);
});
}
function clickHandler() { … }
$(“#anchorID”).on(“click”,
clickHandler);
Curso de HTML5 @carlosazaustre
jQuery
Asynchronous JavaScript And XML (o JSON)
Permite llamadas al servidor para recibir o enviar datos, sin
recargar la página
Curso de HTML5 @carlosazaustre
jQuery
Ejemplos
Curso de HTML5 @carlosazaustre
jQuery
Ejemplos
Curso de HTML5 @carlosazaustre
jQuery
Petición AJAX en JS
var xhr;
// IE7+, Firefox, Chrome, Opera, Safari
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
// IE6, IE5
else {
xhr = new ActiveXObject(“Microsoft.XMLHTTP”);
}
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
document.getElementById(“myDiv”).innerHTML = xhr.
responseText;
}
xhr.open(“GET”, “http://example.com/recurso”, true);
xhr.send();
}
Curso de HTML5 @carlosazaustre
jQuery
Petición AJAX con jQuery
$.ajax({
type: “GET”,
url: “http://example.com/recurso”,
context: document.body
}).done(function(data) {
$(“#myDiv”).html(data);
});
o también
$.getJSON({“http://example.com/recurso”,
function(data) {
$(“#myDiv”).html(data);
});
Curso de HTML5 @carlosazaustre
HTML5 APIs
Uso de geoLocation
navigator
.geolocation
.getCurrentPosition(getCoords, errorFound);
function errorFound(err) {
alert(“Ocurrió un error: “ +err);
}
function getCoords(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
alert(“Tu posición es: “ + lat + “;” + lon);
}
Curso de HTML5 @carlosazaustre
HTML5 APIs
Uso de localStorage
var elemento = “hola mundo”;
localStorage.setItem(“clave”, elemento);
console.log(localStorage.getItem(“clave”));
// hola mundo
var obj = {
“titulo”: “desarrollo web”,
“nivel”: “básico”,
“plataforma”: “Platzi”
};
var objString = JSON.stringify
(obj);
localStorage[‘curso’] =
objString;
var elem = localStorage.curso;
var elemParsed = JSON.parse
(elem);
console.log(elemParsed);
//
{“titulo”: “desarrollo web”,
“nivel”: “básico”,
“plataforma”: “Platzi”}
Curso de HTML5 @carlosazaustre
Animaciones CSS
-webkit-animation: nombreAnimacion ease-in-out 3s infinite alternate;
@-webkit-keyframes nombreAnimacion {
from: { posicion, transformacion }
50%: { posicion, transformacion }
to: { posicion: transformacion }
}
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
.scene {
perspective: 1000px;
}
.objeto {
transform-style: preserve-3d;
-webkit-animation: nombreAnimacion linear infinite 14s;
}
@-webkit-keyframes nombreAnimacion {
from { transform:...; }
to { transform: …; }
}
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D
translateX,Y,Z, rotateX,Y,Z
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D
-webkit-transform-style: flat;
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D
-webkit-transform-style: preserve-3d;
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D
Curso de HTML5 @carlosazaustre
Animaciones 3D CSS
Transformaciones geométricas en 3D

Contenu connexe

Tendances (20)

6.angular js
6.angular js6.angular js
6.angular js
 
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
 
Despegar Tech Talk - AngularJS
Despegar Tech Talk - AngularJSDespegar Tech Talk - AngularJS
Despegar Tech Talk - AngularJS
 
Por qué AngularJS
Por qué AngularJSPor qué AngularJS
Por qué AngularJS
 
Introducción a Angular JS
Introducción a Angular JSIntroducción a Angular JS
Introducción a Angular JS
 
Angular js
Angular jsAngular js
Angular js
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJS
 
Angular js
Angular jsAngular js
Angular js
 
Angularjs
AngularjsAngularjs
Angularjs
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
JavaScript desde Cero
JavaScript desde CeroJavaScript desde Cero
JavaScript desde Cero
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Hola RoR
Hola RoRHola RoR
Hola RoR
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders Valencia
 
Angular.js
Angular.jsAngular.js
Angular.js
 
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
 
Lenguaje JavaScript parte 1
Lenguaje JavaScript parte 1Lenguaje JavaScript parte 1
Lenguaje JavaScript parte 1
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 
Introducción a AngularJS
Introducción a AngularJSIntroducción a AngularJS
Introducción a AngularJS
 
7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el dia7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el dia
 

En vedette

Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest
 
El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...OpenExpoES
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaOpenExpoES
 
Navegadores
NavegadoresNavegadores
NavegadoresAna19se
 
Encuesta ''escuchas la radio?''
Encuesta ''escuchas la radio?''Encuesta ''escuchas la radio?''
Encuesta ''escuchas la radio?''Melissa Garcia
 
Logos, banners y fondos para sitios web
Logos, banners y fondos para sitios webLogos, banners y fondos para sitios web
Logos, banners y fondos para sitios webmireyacabreram
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la ActualidadLaurence HR
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02SoftArt2014
 
SEM - Search Engine Marketing / Mercadeo en búscadores
SEM - Search Engine Marketing / Mercadeo en búscadoresSEM - Search Engine Marketing / Mercadeo en búscadores
SEM - Search Engine Marketing / Mercadeo en búscadoresFrancisco Berrizbeitia
 
Html 5 Guia Didactica
Html 5 Guia DidacticaHtml 5 Guia Didactica
Html 5 Guia DidacticaSoftArt2014
 
Slideshare uso educativo
Slideshare uso educativoSlideshare uso educativo
Slideshare uso educativoBrenda260185
 
Crear banners en linea
Crear banners en lineaCrear banners en linea
Crear banners en lineainsutecvirtual
 
Tips Desarrollar y Gestionar Banners HTML5
Tips Desarrollar y Gestionar Banners HTML5Tips Desarrollar y Gestionar Banners HTML5
Tips Desarrollar y Gestionar Banners HTML5Diego Moya
 
Html5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasHtml5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasCarlos Toxtli
 
(VAN) Valor Actual Neto (El Salvador)
(VAN) Valor Actual Neto (El Salvador)(VAN) Valor Actual Neto (El Salvador)
(VAN) Valor Actual Neto (El Salvador)RebelBangarang
 

En vedette (20)

Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online
 
Depuradores Guía rapida de uso
Depuradores Guía rapida de usoDepuradores Guía rapida de uso
Depuradores Guía rapida de uso
 
El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfecta
 
Navegadores
NavegadoresNavegadores
Navegadores
 
Encuesta ''escuchas la radio?''
Encuesta ''escuchas la radio?''Encuesta ''escuchas la radio?''
Encuesta ''escuchas la radio?''
 
Logos, banners y fondos para sitios web
Logos, banners y fondos para sitios webLogos, banners y fondos para sitios web
Logos, banners y fondos para sitios web
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02
 
Flash ejercicio
Flash ejercicioFlash ejercicio
Flash ejercicio
 
Bocetos web
Bocetos webBocetos web
Bocetos web
 
SEM - Search Engine Marketing / Mercadeo en búscadores
SEM - Search Engine Marketing / Mercadeo en búscadoresSEM - Search Engine Marketing / Mercadeo en búscadores
SEM - Search Engine Marketing / Mercadeo en búscadores
 
Html 5 Guia Didactica
Html 5 Guia DidacticaHtml 5 Guia Didactica
Html 5 Guia Didactica
 
Slideshare uso educativo
Slideshare uso educativoSlideshare uso educativo
Slideshare uso educativo
 
Crear banners en linea
Crear banners en lineaCrear banners en linea
Crear banners en linea
 
Webmaster
WebmasterWebmaster
Webmaster
 
Problemas de mep
Problemas de mepProblemas de mep
Problemas de mep
 
Tips Desarrollar y Gestionar Banners HTML5
Tips Desarrollar y Gestionar Banners HTML5Tips Desarrollar y Gestionar Banners HTML5
Tips Desarrollar y Gestionar Banners HTML5
 
Html5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasHtml5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritas
 
(VAN) Valor Actual Neto (El Salvador)
(VAN) Valor Actual Neto (El Salvador)(VAN) Valor Actual Neto (El Salvador)
(VAN) Valor Actual Neto (El Salvador)
 

Similaire à Curso HTML5 de Carlos Azaustre (20)

Seminario jquery, html5 y wicket
Seminario jquery, html5 y wicketSeminario jquery, html5 y wicket
Seminario jquery, html5 y wicket
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
myprofly
myproflymyprofly
myprofly
 
Screen scraping
Screen scrapingScreen scraping
Screen scraping
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
Ajax
AjaxAjax
Ajax
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008
 
Ajax
AjaxAjax
Ajax
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
En 20 minutos ... jQuery
En 20 minutos ... jQueryEn 20 minutos ... jQuery
En 20 minutos ... jQuery
 
Phonegap
PhonegapPhonegap
Phonegap
 
(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
HTML5
HTML5HTML5
HTML5
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 

Plus de Carlos Azaustre

Introducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseIntroducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseCarlos Azaustre
 
Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Carlos Azaustre
 
Your First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseYour First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseCarlos Azaustre
 
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsPixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsCarlos Azaustre
 
Prototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversPrototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversCarlos Azaustre
 
Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Carlos Azaustre
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonCarlos Azaustre
 
Taller de Seo y Facebook Ads
Taller de Seo y Facebook AdsTaller de Seo y Facebook Ads
Taller de Seo y Facebook AdsCarlos Azaustre
 
Curso de Responsive Design
Curso de Responsive DesignCurso de Responsive Design
Curso de Responsive DesignCarlos Azaustre
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCCarlos Azaustre
 
#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScriptCarlos Azaustre
 
Chefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolChefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolCarlos Azaustre
 
Nuestra experiencia emprendedora
Nuestra experiencia emprendedoraNuestra experiencia emprendedora
Nuestra experiencia emprendedoraCarlos Azaustre
 

Plus de Carlos Azaustre (14)

Introducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseIntroducción al JAMStack - JS Ourense
Introducción al JAMStack - JS Ourense
 
Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos
 
Your First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseYour First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + Firebase
 
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsPixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
 
Prototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversPrototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGivers
 
Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un Hackathon
 
Taller de Seo y Facebook Ads
Taller de Seo y Facebook AdsTaller de Seo y Facebook Ads
Taller de Seo y Facebook Ads
 
Curso de Responsive Design
Curso de Responsive DesignCurso de Responsive Design
Curso de Responsive Design
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCC
 
Chefly Keynote at ETSII
Chefly Keynote at ETSIIChefly Keynote at ETSII
Chefly Keynote at ETSII
 
#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript
 
Chefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolChefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup School
 
Nuestra experiencia emprendedora
Nuestra experiencia emprendedoraNuestra experiencia emprendedora
Nuestra experiencia emprendedora
 

Curso HTML5 de Carlos Azaustre

  • 2. Curso de HTML5 @carlosazaustre Sobre Mi Carlos Azaustre Ingeniero en Telemática CTO y Cofundador en Chefly Formador Web / Blogger Mentor en NodeSchool Madrid Autor de Desarrollo web ágil con Angular.js Me puedes leer en https://carlosazaustre.es
  • 3. Curso de HTML5 @carlosazaustre Temario 1. HTML5 Etiquetas y Semántica 2. CSS3, Normalize y Selectores 3. Bootstrap 4. Responsive & Retina Design 5. Introducción a JavaScript 6. Acceso al DOM con JS 7. Un vistazo a Chrome DevTools 8. Uso de jQuery (DOM, Eventos) 9. AJAX 10. Animaciones y Efectos con JS y CSS
  • 4. Curso de HTML5 @carlosazaustre Agenda 10h - 14h Presentación Parte I Preguntas 14h - 15h Pausa para comer 15h - 19h Parte II Preguntas 9h - 14h Parte III Preguntas 14h - 15h Pausa para comer 15h - 19h Parte IV Preguntas Día 7 Día 8
  • 5. Curso de HTML5 @carlosazaustre ¿Qué es HTML5? El nuevo estándar de HTML para marcado de sitios web y un conjunto de tecnologías para el desarrollo web actual (CSS3 para estilos y diseño, JavaScript para interacción con el servidor)
  • 6. Curso de HTML5 @carlosazaustre ¿Qué es HTML5? http://animateyourhtml5.appspot.com/pres/index.html
  • 7. Curso de HTML5 @carlosazaustre ¿Qué es HTML5? .move { position: absolute; -webkit-animation: anim ease-in-out 3s infinite alternate; -moz-animation: anim ease-in-out 3s infinite alternate; -ms-animation: anim ease-in-out 3s infinite alternate; -o-animation: anim ease-in-out 3s infinite alternate; animation: anim ease-in-out 3s infinite alternate; } @-webkit-keyframes anim { from { left: 0px; -webkit-transform: scale(1.0) rotate(0deg) } 50% { left: 250px; -webkit-transform: scale(0.8) rotate(10deg) } to { left: 500px; -webkit-transform: scale(1.2) rotate(-20deg) } }
  • 8. Curso de HTML5 @carlosazaustre Etiquetas y Semántica <header> <nav> <footer> <main>
  • 9. Curso de HTML5 @carlosazaustre Etiquetas y Semántica <main> <article> <aside> <header> <section> <section>
  • 10. Curso de HTML5 @carlosazaustre Etiquetas y Semántica <figure> <img> <figCaption>
  • 11. Curso de HTML5 @carlosazaustre Etiquetas y Semántica <nav> <li> <ul> <li> <li>
  • 12. Curso de HTML5 @carlosazaustre CSS Lenguaje de estilos para otorgar diseño a nuestra web. Tamaños, Fuentes, Márgenes, Colores, etc...
  • 13. Curso de HTML5 @carlosazaustre Selectores Elementos body { margin-top: 50px; } ID #menu { background-color: #eaeaea; } Clase .navbar { display: inline-block; } Atributo input[type=”text”] { padding: 1em; }
  • 14. Curso de HTML5 @carlosazaustre PseudoSelectores Estados a:hover { color: orange; } a:visited { color: purple; } Elementos p:first-child { margin-top: 10px; } .item::before { padding: 1em; } .item::after { padding: 2em; }
  • 15. Curso de HTML5 @carlosazaustre Normalize.css Cada navegador impone unos estilos por defecto. Para unificar estos estilos antes de trabajar en el CSS, es conveniente resetearlos Normalize.css los unifica en todos los navegadores
  • 16. Curso de HTML5 @carlosazaustre Responsive Design
  • 17. Curso de HTML5 @carlosazaustre Retina Design x4 width: 2px; height: 2px; width: 2px; height: 2px;
  • 18. Curso de HTML5 @carlosazaustre Icon Fonts fontawesome.io icomoon.io
  • 19. Curso de HTML5 @carlosazaustre Bootstrap - Sistema de Grilla getbootstrap.com
  • 20. Curso de HTML5 @carlosazaustre Bootstrap - Sistema de Grilla <div class=”container”> <div class=”row”> <div class=”col-md-4”> Primera columna </div> <div class=”col-md-4”> Segunda columna </div> <div class=”col-md-4”> Tercera columna </div> </row> </div> Móvil Tablet Desktop (> 992px) Desktop (> 1200px) .col-xs- .col-sm- col-md- col-lg-
  • 21. Curso de HTML5 @carlosazaustre JavaScript Lenguaje de programación de la web (Front-end). Interpretado, Tipado débil, Herencia prototipal Permite la interacción con el servidor, llamadas AJAX y diversos efectos
  • 22. Curso de HTML5 @carlosazaustre JavaScript var cadena = “Hola Mundo”; var numero = 8 var unArray = [‘hola’, 1, true]; var persona = { pelo: “Castaño”, piernas: 2, }; if(condicion) { ... } else { ... } for(var i=0; i<5; i++) { ... } for(indice in array){ ... } Declaración de variables Objetos Condicionales y bucles
  • 23. Curso de HTML5 @carlosazaustre JavaScript function miFuncion () { ... }; var miFuncion = function() { }; function suma (num1, num2) { return num1 + num2; }; suma(2,3); // 5 Declaración de Funciones Funciones con parámetros
  • 24. Curso de HTML5 @carlosazaustre Acceso al DOM DOM Document Object Model <html> <head> <body> <header> <h1> <p> <span> <title> <link> <section>
  • 25. Curso de HTML5 @carlosazaustre Acceso al DOM document.getElementById(“myDiv”); var parrafos = document.getElementsByTagName("p"); function clickHandler() { … } var anchor = document.getElementById(“anchorID”); if(anchor.addEventListener) { anchor.addEventListener(“click”, clickHandler, true); } else if(anchor.attachEvent) { anchor.attachEvent(“onclick”, function() { return clickHandler.apply( anchor, [window.event] ); }); } Acceso a un elemento con id o por nombre de elemento Manejo de Eventos
  • 26. Curso de HTML5 @carlosazaustre Acceso al DOM // Crear nodo de tipo Element var parrafo = document.createElement("p"); // Crear nodo de tipo Text var contenido = document.createTextNode("Hola Mundo!"); // Añadir el nodo Text como hijo del nodo Element parrafo.appendChild(contenido); // Añadir el nodo Element como hijo de la pagina document.body.appendChild(parrafo); Creación dinámicamente de elementos
  • 27. Curso de HTML5 @carlosazaustre Chrome Dev Tools Visor de elementos
  • 28. Curso de HTML5 @carlosazaustre Chrome Dev Tools Información de Red
  • 29. Curso de HTML5 @carlosazaustre Chrome Dev Tools Código Fuente
  • 30. Curso de HTML5 @carlosazaustre Chrome Dev Tools Recursos
  • 31. Curso de HTML5 @carlosazaustre Chrome Dev Tools Consola de Desarrollador
  • 32. Curso de HTML5 @carlosazaustre jQuery Librería escrita en JavaScript que nos facilita el acceso al DOM, llamadas AJAX y manejo de eventos.
  • 33. Curso de HTML5 @carlosazaustre jQuery Comparación JS <-> jQuery document.getElementById(“myDiv”); $(“#myDiv”); function clickHandler() { … } var anchor = document.getElementById (“anchorID”); if(anchor.addEventListener) { anchor.addEventListener(“click”, clickHandler, true); } else if(anchor.attachEvent) { anchor.attachEvent(“onclick”, function() { return clickHandler.apply( anchor, [window.event] ); }); } function clickHandler() { … } $(“#anchorID”).on(“click”, clickHandler);
  • 34. Curso de HTML5 @carlosazaustre jQuery Asynchronous JavaScript And XML (o JSON) Permite llamadas al servidor para recibir o enviar datos, sin recargar la página
  • 35. Curso de HTML5 @carlosazaustre jQuery Ejemplos
  • 36. Curso de HTML5 @carlosazaustre jQuery Ejemplos
  • 37. Curso de HTML5 @carlosazaustre jQuery Petición AJAX en JS var xhr; // IE7+, Firefox, Chrome, Opera, Safari if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } // IE6, IE5 else { xhr = new ActiveXObject(“Microsoft.XMLHTTP”); } xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { document.getElementById(“myDiv”).innerHTML = xhr. responseText; } xhr.open(“GET”, “http://example.com/recurso”, true); xhr.send(); }
  • 38. Curso de HTML5 @carlosazaustre jQuery Petición AJAX con jQuery $.ajax({ type: “GET”, url: “http://example.com/recurso”, context: document.body }).done(function(data) { $(“#myDiv”).html(data); }); o también $.getJSON({“http://example.com/recurso”, function(data) { $(“#myDiv”).html(data); });
  • 39. Curso de HTML5 @carlosazaustre HTML5 APIs Uso de geoLocation navigator .geolocation .getCurrentPosition(getCoords, errorFound); function errorFound(err) { alert(“Ocurrió un error: “ +err); } function getCoords(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; alert(“Tu posición es: “ + lat + “;” + lon); }
  • 40. Curso de HTML5 @carlosazaustre HTML5 APIs Uso de localStorage var elemento = “hola mundo”; localStorage.setItem(“clave”, elemento); console.log(localStorage.getItem(“clave”)); // hola mundo var obj = { “titulo”: “desarrollo web”, “nivel”: “básico”, “plataforma”: “Platzi” }; var objString = JSON.stringify (obj); localStorage[‘curso’] = objString; var elem = localStorage.curso; var elemParsed = JSON.parse (elem); console.log(elemParsed); // {“titulo”: “desarrollo web”, “nivel”: “básico”, “plataforma”: “Platzi”}
  • 41. Curso de HTML5 @carlosazaustre Animaciones CSS -webkit-animation: nombreAnimacion ease-in-out 3s infinite alternate; @-webkit-keyframes nombreAnimacion { from: { posicion, transformacion } 50%: { posicion, transformacion } to: { posicion: transformacion } }
  • 42. Curso de HTML5 @carlosazaustre Animaciones 3D CSS .scene { perspective: 1000px; } .objeto { transform-style: preserve-3d; -webkit-animation: nombreAnimacion linear infinite 14s; } @-webkit-keyframes nombreAnimacion { from { transform:...; } to { transform: …; } }
  • 43. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D translateX,Y,Z, rotateX,Y,Z
  • 44. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D -webkit-transform-style: flat;
  • 45. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D -webkit-transform-style: preserve-3d;
  • 46. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D
  • 47. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D
  • 48. Curso de HTML5 @carlosazaustre Animaciones 3D CSS Transformaciones geométricas en 3D