Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desarrolla aplicaciones web flexibles con Flexbox

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Desarrolla aplicaciones web flexibles con Flexbox

Descubre la nueva especificación CSS con la que posicionar los elementos de tu web de forma rápida y sencilla.

Avatar for Imanol Terán

Imanol Terán

February 22, 2016
Tweet

More Decks by Imanol Terán

Other Decks in Programming

Transcript

  1. widdiapps.com @widdiapps [email protected] ๏ Web ๏ iOS ๏ E-Commerce ๏

    Publicaciones Digitales ๏ Formación ¿QUIÉN SOY?
  2. PROGRAMA ๏ Introducción ๏ Tablas / Modelo de cajas /

    Rejillas / Flexbox ๏ Propiedades y compatibilidad con navegadores ๏ Ejemplos y casos de uso ๏ Referencias y documentación ๏ Frameworks que utilizan Flexbox ๏ Ejercicios Prácticos
  3. Table ๏ Surgió en 1995 con la especificación HTML 3.0

    ๏ Se “hizo fuerte” con la versión HTML 3.2 ๏ El “tag” <table> creado para crear layouts, además de mostrar datos en tablas
  4. Table - Características ๏ <table border=0> ๏ <body bottomMargin=0 leftMargin=0>

    ๏ <td valign=top> ๏ <table cellspacing=10 cellpadding=10> ๏ <td colspan=3 rowspan=1>
  5. Table - Problemas ๏ Estilo, contenido y marcado juntos ๏

    Accesibilidad ๏ Código poco legible
  6. Box Model ๏ Surgió en 1996 con CSS 1 y

    HTML 3.2 ๏ Empezamos a hablar del concepto CSS: separar estilo y marcado ๏ Aparecen elementos de bloque: <div>, <h1>, <p>…
  7. Box Model - Evolución I ๏ width, height ๏ display,

    float ๏ margin, padding y border
  8. Box Model - Evolución II ๏ position ๏ top, bottom,

    left, right ๏ max-width, min-width, max-height, min-height
  9. Box Model - Fin de las tablas ๏ <table> :

    para mostrar datos en tablas ๏ box model : layouts con CSS
  10. Box Model - Problemas ๏ Alinear objetos en vertical ๏

    Posicionar unas cajas junto a otras (float, inline o inline-block) ๏ Clearfix, clear:both ๏ Altura automática de las cajas ๏ …y unos cuantos más
  11. Grid Systems ๏ Comienzan en 2007 con Blueprint ๏ Nacen

    para solucionar problemas de layout y crear sistema de columnas estándar ๏ 12, 16 o 24 columnas ๏ Abstracción del modelo de cajas ๏ Éxito en 2009, con 960.gs
  12. Después de GRID 1 2 3 <div class=“container clearfix”> <div

    class=“span-8”>1</div> <div class=“span-8”>2</div> <div class=“span-8 last”>3</div> </div>
  13. Tipos de Grid ๏ Columna ๏ Fluída / Fija ๏

    Semántica / No-semántica ๏ Responsive ๏ … y más
  14. Flexbox ๏ 19 años sin especificación CSS concreta para trabajar

    con layout ๏ W3C empieza con ello en 2009 ๏ Ha habido varias sintaxis durante el proceso
  15. Flexbox - Estado actual ๏ Soporte a navegadores está mejorando

    ๏ Muchos frameworks lo están incluyendo
  16. Flexbox Consiste, principalmente, en proporcionar al contenedor la habilidad para

    cambiar la anchura y altura de los elementos que contiene, con el fin de rellenar de la forma más eficiente posible el espacio en blanco y prevenir los desbordes
  17. ¿Qué podemos controlar con Flexbox? ๏ Orientación de los elementos

    ๏ Espacio entre elementos ๏ Orden entre elementos
  18. Propiedades Flexbox ๏ display ๏ flex-direction ๏ flex-wrap ๏ flex-flow

    ๏ justify-content ๏ align-items ๏ align-content ๏ order ๏ flex-grow ๏ flex-shrink ๏ flex-basis ๏ align-self Contenedor Items
  19. Available space = (container size - flex-basis siblings total) Grow

    unit = (Available space / Sum Grow siblings total) Flex item size = (Flex basis + (Grow Unit * num)) Calcular espacio disponible http://chriswrightdesign.com/experiments/flexbox-adventures/
  20. ๏ stretch (default) ๏ flex-start ๏ flex-end ๏ center ๏

    space-between ๏ space-around align-content
  21. flex .item { flex: 0 1 auto; /* default */

    } flex-grow + flex-shrink + flex-basis
  22. Layouts de ejemplo ๏ Ejemplo 1: http://codepen.io/_Billy_Brown/full/ACamb/ ๏ Ejemplo 2:

    http://codepen.io/dudleystorey/full/umrnE/ ๏ Ejemplo 3: http://codepen.io/HugoGiraudel/pen/qIAwr ๏ Ejemplo 4: http://codepen.io/HugoGiraudel/pen/pkwqH ๏ Ejemplo 5: http://callmenick.com/_development/flexbox-examples/index.html