SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
twitter.com/manz
> Algunas de las funciones que vas a ver,
son experimentales... ¡Debes activarlas!
> Elementos flexibles CSS
Flexbox
> Block CSS
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:block;
}
#falcon div {
width:75px;
height:50px;
margin:5px;
background:blue;
} CSS
HTML
> Flexbox CSS (hijos tamaño fijo)
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:flex;
}
#falcon div {
width:75px;
height:50px;
margin:5px;
background:blue;
} CSS
HTML
> Flexbox CSS (altura flexible)
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:flex;
}
#falcon div {
width:75px;
height:50px;
margin:5px;
background:blue;
} CSS
HTML
> Flexbox CSS (anchura flexible)
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:flex;
}
#falcon div {
width:100%;
margin:5px;
background:blue;
}
CSS
HTML
Puedo
cambiar
el ancho
del padre
y los
hijos se
adaptan
> Flexbox CSS (centrar eje primario)
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:flex;
justify-content:center;
}
#falcon div {
width:75px;
height:50px;
margin:5px;
background:blue;
} CSS
HTML
> Flexbox CSS (centrar eje secundario)
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
#falcon {
width:500px;
margin:6em auto;
min-height:100px;
background:#AAA;
display:flex;
justify-content:center;
align-items:center;
}
#falcon div {
width:75px;
height:50px;
margin:5px;
background:blue;
} CSS
HTML
> Star Wars CSS
<div id="falcon">
<div id="luke"></div>
<div id="leia"></div>
<div id="solo"></div>
<div id="chewy"></div>
</div>
div #luke {
background:linear-gradient(
#8b6e5a 25%, #f5e7e5 25%); }
div #leia {
background:linear-gradient(
#331f24 25%, #fff6e6 25%); }
div #solo {
background:linear-gradient(to left,
#190f17 25%, #f0dbd1 25%,75%,
#190f17 75%); }
div #chewy {
background:linear-gradient(-25deg,
#5e473c 50%, #f6f1f3 50%,55%,
#5e473c 55%); }
CSS
HTML
Flexbox CSS
> Cuadrículas CSS
Grid
> Grid de elementos específicos
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-template-columns:
50px 100px 150px 200px;
}
.grid div {
background:grey;
color:white;
}
CSS
HTML
50px 100px 150px 200px
> Grid de elementos específicos
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-template-columns:
50px 200px;
}
.grid div {
background:grey;
color:white;
}
CSS
HTML
50px 200px
fila 1
fila 2
> Grid de elementos específicos
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-template-columns: 100px;
grid-template-rows:
50px 100px 50px;
}
.grid div {
background:grey;
color:white;
}
CSS
HTML
50px
50px
auto
100px
> Grid de elementos cíclicos
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-template-columns:
repeat(2, 200px 50px);
}
.grid div {
background:grey;
color:white;
}
CSS
HTML
50px200px 50px200px
> Grid automáticos (con hueco)
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-template-columns:200px 50px;
grid-auto-rows: 50px;
grid-gap: 25px 10px;
}
.grid div {
background:grey;
color:white;
}
CSS
HTML
50px200px
25px
50px
50px
10px
auto
rows
> Grid por áreas
<div class="grid">
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
<div class="d">4</div>
</div>
.grid {
display:grid;
grid-auto-rows: 75px;
grid-template-areas: "head head"
"menu main"
"foot foot";
}
.a { grid-area:head; background:blue }
.b { grid-area:menu; background:red }
.c { grid-area:main; background:green }
.d { grid-area:foot; background:orange }
CSS
HTML
Grids CSS
> Battery API
> Battery API
navigator.getBattery().then(
function(battery) {
console.log(battery.level); // 0..1
console.log(battery.charging); // true / false
battery.onlevelchange = function() {
// ha cambiado el nivel de carga
}
battery.onchargingchange = function() {
// se ha conectado/desconectado el dispositivo
}
}
);
JS
> Battery API
Battery API
> Formas y máscaras CSS
Formas
> Formas CSS
<img id="cat"
src="http://i.imgsafe.org/5ef91780a2.png" alt="Gato">
<p>El ronroneo suele ser signo de satisfacción. Algunos gatos
lo hacen simplemente para tratar de calmarse a sí mismos.</p>
p {
width:400px;
font-size:22px;
padding:20px;
}
CSS
HTML
#cat {
width:400px;
float:left;
}
> Formas CSS
> Formas CSS
#cat {
shape-outside: polygon(125px 0, 160px 100px, 248px 250px,
125px 250px);
}
> Formas CSS
> Formas CSS
Formas CSS
> Máscaras CSS
<img id="cat"
src="http://i.imgsafe.org/5db73ca36b.jpg"
alt="Gato">
#cat {
border:5px solid green;
}
CSS
HTML
> Máscaras CSS
> Máscaras CSS
<img id="cat"
src="http://i.imgsafe.org/5db73ca36b.jpg"
alt="Gato">
#cat {
border:5px solid green;
clip-path: polygon(0 0, 100px 125px, 500px 125px, 0 600px);
}
CSS
HTML
> Máscaras CSS
#cat {
border:5px solid green;
clip-path: polygon(0 0, 100px 125px, 500px 125px, 0 600px);
}
CSS
> ellipse() > inset() > circle()
> Máscaras CSS
Máscaras CSS
HTTP/2HTTP/2
HTTP/0.9 HTTP/1 HTTP/1.1 HTTP/2
1991 1996 2006 2016
Ventajas de HTTP/2
- Una sola conexión TCP
- Eliminación de redundancia/latencia
- Compresión de cabeceras
- Compatible con HTTP/1.1
HTTP/2
Fonts
-> WOFF -> WOFF2
Open Sans
212KB 97,2KB 60,3KB
TTF:
WOFF:
WOFF2:
> Custom Properties CSS
Variable
s
> Variables CSS (Custom Prop)
<div id="box">A</div>
<div id="revbox">A</div>
#box, #revbox {
width:200px;
height:200px;
display:inline-flex;
flex-direction:column;
justify-content:center;
font-size:142px;
text-align:center;
}
CSS
HTML
> Variables CSS (Custom Prop)
A A
#box {
background:var(--fondo); // no hay variable
color:var(--texto); // no hay variable
}
#revbox {
--fondo: steelblue;
background:var(--texto); // no hay variable
color:var(--fondo); // steelblue
border:1px solid var(--fondo); // steelblue
}
CSS
> Variables CSS (Custom Prop)
A A
:root {
--fondo: red;
--texto: white;
}
#box {
background:var(--fondo); // red
color:var(--texto); // white
}
#revbox {
background:var(--texto); // white
color:var(--fondo); // red
border:1px solid var(--fondo); // red
}
CSS
> Variables CSS (Custom Prop)
A A
Variables CSS (Custom Prop)
> Web Animations API
var face = document.querySelector('#face');
anim = face.animate([
{ transform: 'translate(0, 0)', opacity: 1 },
{ transform: 'translate(20px, 5px)', opacity: .75 },
{ transform: 'translate(0, 0)', opacity: 1 }
], {
duration: 1000,
easing: 'ease',
iterations: 5,
direction: 'alternate',
});
anim.play();
JS
var face = document.querySelector('#face');
anim = face.animate([
{ transform: 'translate(0, 0)', opacity: 1 },
{ transform: 'translate(20px, 5px)', opacity: .75 },
{ transform: 'translate(0, 0)', opacity: 1 }
], {
duration: 1000,
easing: 'ease',
iterations: 5,
direction: 'alternate',
});
anim.play();
JS
anim.play();
anim.pause();
anim.cancel();
anim.finish();
anim.reverse();
anim.playbackRate++;
> Web Animations
Web Animation API
> Beacon API
Beacon
document.addEventListener('visibilitychange', function(){
if (document.visiblityState === 'hidden') {
var sessionData = generateSessionData();
navigator.sendBeacon('/collector', sessionData);
}
});
JS
Beacon API
Blend
modes
> Modos de fusión CSS
> Modos de fusión CSS
Blend modes CSS
> Web Audio API
Web Audio
Acid Defender
Web Audio API
> Acceder a inscripciones
> ¡Gracias!

Contenu connexe

Tendances

Practica #4 equipo 4
Practica #4 equipo 4Practica #4 equipo 4
Practica #4 equipo 4
caradetorta0
 
jQuery & jQuery Mobile
jQuery & jQuery MobilejQuery & jQuery Mobile
jQuery & jQuery Mobile
Mohammad Raju
 
(WS14) Emanuel Blagonic - HTML5 u praksi
(WS14) Emanuel Blagonic - HTML5 u praksi(WS14) Emanuel Blagonic - HTML5 u praksi
(WS14) Emanuel Blagonic - HTML5 u praksi
Web::Strategija
 

Tendances (16)

CSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANETCSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANET
 
CSS 101
CSS 101CSS 101
CSS 101
 
Johny see book update
Johny see book updateJohny see book update
Johny see book update
 
Code blogtangcan
Code blogtangcanCode blogtangcan
Code blogtangcan
 
Why Sass?
Why Sass?Why Sass?
Why Sass?
 
Practica #4 equipo 4
Practica #4 equipo 4Practica #4 equipo 4
Practica #4 equipo 4
 
How to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
How to Turn Your Ugly Old CSS into a Clean Future-Ready BeautyHow to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
How to Turn Your Ugly Old CSS into a Clean Future-Ready Beauty
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
jQuery & jQuery Mobile
jQuery & jQuery MobilejQuery & jQuery Mobile
jQuery & jQuery Mobile
 
Trabajo
TrabajoTrabajo
Trabajo
 
(WS14) Emanuel Blagonic - HTML5 u praksi
(WS14) Emanuel Blagonic - HTML5 u praksi(WS14) Emanuel Blagonic - HTML5 u praksi
(WS14) Emanuel Blagonic - HTML5 u praksi
 
APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !
 
Tjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSSTjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSS
 
Macdom html preprocesor
Macdom html preprocesorMacdom html preprocesor
Macdom html preprocesor
 
Concevoir un thème pour Wordpress
Concevoir un thème pour WordpressConcevoir un thème pour Wordpress
Concevoir un thème pour Wordpress
 
Front-end en WordPress
Front-end en WordPressFront-end en WordPress
Front-end en WordPress
 

En vedette

En vedette (7)

Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
 
El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016
 
Subtitular videos con Aegisub
Subtitular videos con AegisubSubtitular videos con Aegisub
Subtitular videos con Aegisub
 
Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)
 
Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)
 
En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3
 
Front-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentesFront-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentes
 

Plus de Román Hernández

Plus de Román Hernández (9)

Emezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesionalEmezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesional
 
FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en Android
 
Jornada Opendata: España webcam
Jornada Opendata: España webcamJornada Opendata: España webcam
Jornada Opendata: España webcam
 
Optimización del rendimiento web
Optimización del rendimiento webOptimización del rendimiento web
Optimización del rendimiento web
 
Ganar dinero con Android
Ganar dinero con AndroidGanar dinero con Android
Ganar dinero con Android
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Entendiendo android
Entendiendo androidEntendiendo android
Entendiendo android
 
Android conference
Android conferenceAndroid conference
Android conference
 
Gestión web con éxito
Gestión web con éxitoGestión web con éxito
Gestión web con éxito
 

Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)

  • 1.
  • 3.
  • 4.
  • 5. > Algunas de las funciones que vas a ver, son experimentales... ¡Debes activarlas!
  • 6. > Elementos flexibles CSS Flexbox
  • 7. > Block CSS <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:block; } #falcon div { width:75px; height:50px; margin:5px; background:blue; } CSS HTML
  • 8. > Flexbox CSS (hijos tamaño fijo) <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:flex; } #falcon div { width:75px; height:50px; margin:5px; background:blue; } CSS HTML
  • 9. > Flexbox CSS (altura flexible) <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:flex; } #falcon div { width:75px; height:50px; margin:5px; background:blue; } CSS HTML
  • 10. > Flexbox CSS (anchura flexible) <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:flex; } #falcon div { width:100%; margin:5px; background:blue; } CSS HTML Puedo cambiar el ancho del padre y los hijos se adaptan
  • 11. > Flexbox CSS (centrar eje primario) <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:flex; justify-content:center; } #falcon div { width:75px; height:50px; margin:5px; background:blue; } CSS HTML
  • 12. > Flexbox CSS (centrar eje secundario) <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> #falcon { width:500px; margin:6em auto; min-height:100px; background:#AAA; display:flex; justify-content:center; align-items:center; } #falcon div { width:75px; height:50px; margin:5px; background:blue; } CSS HTML
  • 13. > Star Wars CSS <div id="falcon"> <div id="luke"></div> <div id="leia"></div> <div id="solo"></div> <div id="chewy"></div> </div> div #luke { background:linear-gradient( #8b6e5a 25%, #f5e7e5 25%); } div #leia { background:linear-gradient( #331f24 25%, #fff6e6 25%); } div #solo { background:linear-gradient(to left, #190f17 25%, #f0dbd1 25%,75%, #190f17 75%); } div #chewy { background:linear-gradient(-25deg, #5e473c 50%, #f6f1f3 50%,55%, #5e473c 55%); } CSS HTML
  • 16. > Grid de elementos específicos <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-template-columns: 50px 100px 150px 200px; } .grid div { background:grey; color:white; } CSS HTML 50px 100px 150px 200px
  • 17. > Grid de elementos específicos <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-template-columns: 50px 200px; } .grid div { background:grey; color:white; } CSS HTML 50px 200px fila 1 fila 2
  • 18. > Grid de elementos específicos <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-template-columns: 100px; grid-template-rows: 50px 100px 50px; } .grid div { background:grey; color:white; } CSS HTML 50px 50px auto 100px
  • 19. > Grid de elementos cíclicos <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-template-columns: repeat(2, 200px 50px); } .grid div { background:grey; color:white; } CSS HTML 50px200px 50px200px
  • 20. > Grid automáticos (con hueco) <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-template-columns:200px 50px; grid-auto-rows: 50px; grid-gap: 25px 10px; } .grid div { background:grey; color:white; } CSS HTML 50px200px 25px 50px 50px 10px auto rows
  • 21. > Grid por áreas <div class="grid"> <div class="a">1</div> <div class="b">2</div> <div class="c">3</div> <div class="d">4</div> </div> .grid { display:grid; grid-auto-rows: 75px; grid-template-areas: "head head" "menu main" "foot foot"; } .a { grid-area:head; background:blue } .b { grid-area:menu; background:red } .c { grid-area:main; background:green } .d { grid-area:foot; background:orange } CSS HTML
  • 24. > Battery API navigator.getBattery().then( function(battery) { console.log(battery.level); // 0..1 console.log(battery.charging); // true / false battery.onlevelchange = function() { // ha cambiado el nivel de carga } battery.onchargingchange = function() { // se ha conectado/desconectado el dispositivo } } ); JS
  • 27. > Formas y máscaras CSS Formas
  • 28. > Formas CSS <img id="cat" src="http://i.imgsafe.org/5ef91780a2.png" alt="Gato"> <p>El ronroneo suele ser signo de satisfacción. Algunos gatos lo hacen simplemente para tratar de calmarse a sí mismos.</p> p { width:400px; font-size:22px; padding:20px; } CSS HTML #cat { width:400px; float:left; }
  • 30. > Formas CSS #cat { shape-outside: polygon(125px 0, 160px 100px, 248px 250px, 125px 250px); }
  • 34. > Máscaras CSS <img id="cat" src="http://i.imgsafe.org/5db73ca36b.jpg" alt="Gato"> #cat { border:5px solid green; } CSS HTML
  • 36. > Máscaras CSS <img id="cat" src="http://i.imgsafe.org/5db73ca36b.jpg" alt="Gato"> #cat { border:5px solid green; clip-path: polygon(0 0, 100px 125px, 500px 125px, 0 600px); } CSS HTML
  • 37. > Máscaras CSS #cat { border:5px solid green; clip-path: polygon(0 0, 100px 125px, 500px 125px, 0 600px); } CSS
  • 38. > ellipse() > inset() > circle()
  • 41. HTTP/2HTTP/2 HTTP/0.9 HTTP/1 HTTP/1.1 HTTP/2 1991 1996 2006 2016
  • 42. Ventajas de HTTP/2 - Una sola conexión TCP - Eliminación de redundancia/latencia - Compresión de cabeceras - Compatible con HTTP/1.1
  • 43.
  • 48. > Custom Properties CSS Variable s
  • 49. > Variables CSS (Custom Prop) <div id="box">A</div> <div id="revbox">A</div> #box, #revbox { width:200px; height:200px; display:inline-flex; flex-direction:column; justify-content:center; font-size:142px; text-align:center; } CSS HTML
  • 50. > Variables CSS (Custom Prop) A A
  • 51. #box { background:var(--fondo); // no hay variable color:var(--texto); // no hay variable } #revbox { --fondo: steelblue; background:var(--texto); // no hay variable color:var(--fondo); // steelblue border:1px solid var(--fondo); // steelblue } CSS
  • 52. > Variables CSS (Custom Prop) A A
  • 53. :root { --fondo: red; --texto: white; } #box { background:var(--fondo); // red color:var(--texto); // white } #revbox { background:var(--texto); // white color:var(--fondo); // red border:1px solid var(--fondo); // red } CSS
  • 54. > Variables CSS (Custom Prop) A A
  • 57. var face = document.querySelector('#face'); anim = face.animate([ { transform: 'translate(0, 0)', opacity: 1 }, { transform: 'translate(20px, 5px)', opacity: .75 }, { transform: 'translate(0, 0)', opacity: 1 } ], { duration: 1000, easing: 'ease', iterations: 5, direction: 'alternate', }); anim.play(); JS
  • 58. var face = document.querySelector('#face'); anim = face.animate([ { transform: 'translate(0, 0)', opacity: 1 }, { transform: 'translate(20px, 5px)', opacity: .75 }, { transform: 'translate(0, 0)', opacity: 1 } ], { duration: 1000, easing: 'ease', iterations: 5, direction: 'alternate', }); anim.play(); JS anim.play(); anim.pause(); anim.cancel(); anim.finish(); anim.reverse(); anim.playbackRate++;
  • 62. document.addEventListener('visibilitychange', function(){ if (document.visiblityState === 'hidden') { var sessionData = generateSessionData(); navigator.sendBeacon('/collector', sessionData); } }); JS
  • 64. Blend modes > Modos de fusión CSS
  • 65. > Modos de fusión CSS
  • 67. > Web Audio API Web Audio
  • 70. > Acceder a inscripciones
  • 71.
  • 72.