SlideShare una empresa de Scribd logo
1 de 37
CSS: FLEXBOX &
GRID
¿QUIÉN SOY?
- Marcos de la Calle Samaniego
- Luce Innovative Technologies
- @marcosDLCS
¿QUÉ VAMOS A VER?
- CSS Flexible Box Layout Module Level 1
- CSS Grid Layout Module Level 1(Intro)
- Bonus (TBD)
LO PRIMERO ES LO
PRIMERO
http://caniuse.com/
FLEXBOX
aka
CSS Flexible Box Layout Module Level 1
¿POR QUÉ?
¿QUÉ ES
FLEXBOX?
- ‘Nuevo’ modo de layout para nuestras páginas web
- Ofrece la posibilidad al contenedor de alterar el orden
de sus elementos
- Permite gestionar el espacio libre y cómo los
elementos lo ocupan
- Es agnóstico a la dirección
- Uno de los mejores amigos de los diseños responsive
PERO…¿ES REALMENTE
NUEVO?
- NO
- La especificación ha ido evolucionando (mucho)
con el paso de los años
2016
¡¡2009!!
¿PUEDO USARLO?
- Sí (con cuidado)
ALGUNOS CONCEPTOS
BÁSICOS
ALGUNOS CONCEPTOS
BÁSICOS
PROPIEDADES PARA LOS
PADRES
(FLEX CONTAINER)
- display: define un contenedor flex
- flex-direction: define la dirección que tomarán los elementos
en el contenedor
- flex-wrap: distribuye elementos en líneas sucesivas
- flex-flow: ‘shorthand’ para las 2 anteriores
PROPIEDADES PARA LOS
PADRES
(FLEX CONTAINER)
- justify-content: define la manera de alinear elementos en el eje principal
- align-items: define la manera de alinear los elementos en el eje
perpendicular y la línea actual
- align-content: define la manera de alinear los elementos de todo el
contenedor en el eje perpendicular
DEMO
PROPIEDADES PARA LOS
HIJOS
(FLEX ITEMS)
- flex-grow: define la proporción en la que los elementos pueden
crecer de haber espacio suficiente
- flex-shrink: define la proporción en la que los elementos pueden
decrecer cuando no hay espacio suficiente
- flex-basis: define el tamaño por defecto del elemento antes de la
distribución del espacio disponible
- flex: ‘shorthand’ para todo lo anterior
PROPIEDADES PARA LOS
HIJOS
(FLEX ITEMS)
- order: controla el orden en el que los elementos se
muestran por pantalla (¡cuidado! accesibilidad)
- align-self: define la alineación de un elemento en concreto
en el eje perpendicular al principal
DEMO
¿PREGUNTAS?
GRID LAYOUT
aka
CSS Grid Layout Module Level 1
¿POR QUÉ NOS ENSEÑAS COSAS
RARAS?
https://www.youtube.com/watch?v=M4ckNS3bu6k
¿QUÉ ES GRID
LAYOUT?
- Nuevo modo de layout para nuestras páginas web
- Bidireccional
- La evolución natural de las tablas, float, inline-block,
etc
- Se puede llevar bien con flexbox
- El mejor amigo del diseño responsive
- Sustituto (en el futuro) de FW CSS específicos (o no)
¿DESDE CUÁNDO EXISTE LA
ESPECIFICACIÓN?
- Primera CR en Septiembre de 2016
- Última revisión de Febrero de 2017
- Inicio de la especificación en 2012
2012
2016 - 2017
¿PUEDO USARLO?
- No
- En serio, NO
- Puedes usarlo para aprender y conocer sus posibilidades
ALGUNOS CONCEPTOS
BÁSICOS
ALGUNOS CONCEPTOS
BÁSICOS
Grid container
Grid item
Grid area
Grid cell Grid line
Grid track
SUENA BIEN…¿POR QUÉ SE TE VE TAN
PREOCUPADO?
display: grid | inline-grid | subgrid
grid-column-start
grid-column-end
grid-row-start
grid-row-end
span
repeat()
fr
grid-template-columns
grid-template-rows
grid-auto-columns
grid-auto-rows
grid-template-areas
grid-template
grid-column-gap
grid-row-gap
grid-gap
justify-items
align-items
justify-content
align-content
grid-auto-flow
grid
grid-column-start
grid-column-end
grid-row-start
grid-row-end
grid-column
grid-row
grid-area
justify-self
align-self
PROPIEDADES BÁSICAS PARA MONTAR
UN GRID
- display: define el elemento como un contenedor
grid (grid | inline-grid | subgrid)
PROPIEDADES BÁSICAS PARA MONTAR
UN GRID
- grid-template-columns / grid-template-rows: define el
número de filas o columnas y su tamaño
PROPIEDADES BÁSICAS PARA MONTAR
UN GRID
- grid-column-gap / grid-row-gap: define el tamaño de línea
que separa los elementos del grid
- grid-gap: ‘shorthand’ para las dos anteriores
PROPIEDADES BÁSICAS PARA MONTAR
UN GRID
- grid-column-start / grid-column-end / grid-row-start / grid-row-
end: determina la posición inicial y final que toma un ítem en relación
a las líneas del grid
- grid-row / grid-column: ‘shorthand’ para cada una de las parejas de
propiedades anteriores
DEMO
¿PREGUNTAS?
En el W3C y en CSSTricks viene todo muy bien explicadito
ENLACES
- W3C CR: https://www.w3.org/TR/css-flexbox-1/
- CSS Tricks: https://css-tricks.com/snippets/css/a-guide-to-
flexbox/
- Egghead: https://egghead.io/courses/flexbox-fundamentals
- CodePen: https://codepen.io/marcosDLCS/pen/mRKwvq
- CodePen: https://codepen.io/marcosDLCS/pen/apKLrM
Flexbox
ENLACES
- W3C CR: https://www.w3.org/TR/css-grid-1/
- CSS Tricks: https://css-tricks.com/snippets/css/complete-guide-grid/
- Google Developers:
https://developers.google.com/web/updates/2017/01/css-grid
- Codemotion 2016: https://www.youtube.com/watch?v=gUqYlBOUz8M
- CodePen: https://codepen.io/marcosDLCS/pen/vgoQoK
- CodePen: https://codepen.io/marcosDLCS/pen/pRMQMZ
Grid
ENLACES
- GitHub repo: https://github.com/marcosDLCS/css-flexbox-
grid-course
GRACIAS

Más contenido relacionado

Destacado

Пингвины из калининграда
Пингвины из калининградаПингвины из калининграда
Пингвины из калининградаAndrew Yashenko
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1itc73
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baрешение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baISsoft
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)Zoe Gillenwater
 
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouFL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouAdam Soucie
 
6. таблицы и другие теги html
6. таблицы и другие теги html6. таблицы и другие теги html
6. таблицы и другие теги htmlSergei Dubrov
 
Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Zoe Gillenwater
 
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Yandex
 
Таблицы Html
Таблицы HtmlТаблицы Html
Таблицы HtmlVasya Petrov
 
WordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolWordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolAmit Kumar Singh
 
Css part2
Css part2Css part2
Css part2ISsoft
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеISsoft
 
Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)Zoe Gillenwater
 
CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)Zoe Gillenwater
 
17. основы css (cascading style sheets)
17. основы css (cascading style sheets)17. основы css (cascading style sheets)
17. основы css (cascading style sheets)Sergei Dubrov
 

Destacado (17)

Пингвины из калининграда
Пингвины из калининградаПингвины из калининграда
Пингвины из калининграда
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1
 
How Joomla Works
How Joomla WorksHow Joomla Works
How Joomla Works
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baрешение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте ba
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
 
Php Security
Php SecurityPhp Security
Php Security
 
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouFL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
 
6. таблицы и другие теги html
6. таблицы и другие теги html6. таблицы и другие теги html
6. таблицы и другие теги html
 
Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)
 
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
 
Таблицы Html
Таблицы HtmlТаблицы Html
Таблицы Html
 
WordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolWordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping Tool
 
Css part2
Css part2Css part2
Css part2
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
 
Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)
 
CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)
 
17. основы css (cascading style sheets)
17. основы css (cascading style sheets)17. основы css (cascading style sheets)
17. основы css (cascading style sheets)
 

Similar a CSS: Flexbox & Grid

Front-end Basics for Developers
Front-end Basics for DevelopersFront-end Basics for Developers
Front-end Basics for DevelopersNadal Soler
 
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)gdgsantacruz
 
Definición de Alcance Desire 2
Definición de Alcance Desire 2Definición de Alcance Desire 2
Definición de Alcance Desire 2Forem Galicia
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Hernan Beati
 
¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...Biko
 
Front end basics - Responsive Web Design
Front end basics - Responsive Web DesignFront end basics - Responsive Web Design
Front end basics - Responsive Web DesignNadal Soler
 
06_Nuevas reglas.pptx
06_Nuevas reglas.pptx06_Nuevas reglas.pptx
06_Nuevas reglas.pptxyendrao
 
Bootstrap-Desarrollo-Web-Responsive.pdf
Bootstrap-Desarrollo-Web-Responsive.pdfBootstrap-Desarrollo-Web-Responsive.pdf
Bootstrap-Desarrollo-Web-Responsive.pdfFrankMartinezHurtado
 
Responsive en Drupal
Responsive en DrupalResponsive en Drupal
Responsive en DrupalAlberto Rojas
 
Taller diseño-web
Taller diseño-webTaller diseño-web
Taller diseño-webClara Lopez
 

Similar a CSS: Flexbox & Grid (17)

Front-end Basics for Developers
Front-end Basics for DevelopersFront-end Basics for Developers
Front-end Basics for Developers
 
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)
Keep calm and write CSS with Flexbox - Luz Maria Maida Claure (WTM - GDG - CBBA)
 
Webtraining Zone - Grid CSS
Webtraining Zone - Grid CSSWebtraining Zone - Grid CSS
Webtraining Zone - Grid CSS
 
Curso Grid CSS
Curso Grid CSSCurso Grid CSS
Curso Grid CSS
 
Definición de Alcance Desire 2
Definición de Alcance Desire 2Definición de Alcance Desire 2
Definición de Alcance Desire 2
 
Gutenberg sin miedo
Gutenberg sin miedoGutenberg sin miedo
Gutenberg sin miedo
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011
 
¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...
 
Front end basics - Responsive Web Design
Front end basics - Responsive Web DesignFront end basics - Responsive Web Design
Front end basics - Responsive Web Design
 
Cosmos DB
Cosmos DBCosmos DB
Cosmos DB
 
06_Nuevas reglas.pptx
06_Nuevas reglas.pptx06_Nuevas reglas.pptx
06_Nuevas reglas.pptx
 
Manual css-hojas-estilo
Manual css-hojas-estiloManual css-hojas-estilo
Manual css-hojas-estilo
 
Bootstrap-Desarrollo-Web-Responsive.pdf
Bootstrap-Desarrollo-Web-Responsive.pdfBootstrap-Desarrollo-Web-Responsive.pdf
Bootstrap-Desarrollo-Web-Responsive.pdf
 
Responsive en Drupal
Responsive en DrupalResponsive en Drupal
Responsive en Drupal
 
Taller diseño-web
Taller diseño-webTaller diseño-web
Taller diseño-web
 
Css
CssCss
Css
 
Css
CssCss
Css
 

CSS: Flexbox & Grid

  • 2. ¿QUIÉN SOY? - Marcos de la Calle Samaniego - Luce Innovative Technologies - @marcosDLCS
  • 3. ¿QUÉ VAMOS A VER? - CSS Flexible Box Layout Module Level 1 - CSS Grid Layout Module Level 1(Intro) - Bonus (TBD)
  • 4. LO PRIMERO ES LO PRIMERO http://caniuse.com/
  • 5.
  • 6. FLEXBOX aka CSS Flexible Box Layout Module Level 1
  • 8. ¿QUÉ ES FLEXBOX? - ‘Nuevo’ modo de layout para nuestras páginas web - Ofrece la posibilidad al contenedor de alterar el orden de sus elementos - Permite gestionar el espacio libre y cómo los elementos lo ocupan - Es agnóstico a la dirección - Uno de los mejores amigos de los diseños responsive
  • 9. PERO…¿ES REALMENTE NUEVO? - NO - La especificación ha ido evolucionando (mucho) con el paso de los años 2016 ¡¡2009!!
  • 10. ¿PUEDO USARLO? - Sí (con cuidado)
  • 13. PROPIEDADES PARA LOS PADRES (FLEX CONTAINER) - display: define un contenedor flex - flex-direction: define la dirección que tomarán los elementos en el contenedor - flex-wrap: distribuye elementos en líneas sucesivas - flex-flow: ‘shorthand’ para las 2 anteriores
  • 14. PROPIEDADES PARA LOS PADRES (FLEX CONTAINER) - justify-content: define la manera de alinear elementos en el eje principal - align-items: define la manera de alinear los elementos en el eje perpendicular y la línea actual - align-content: define la manera de alinear los elementos de todo el contenedor en el eje perpendicular
  • 15. DEMO
  • 16. PROPIEDADES PARA LOS HIJOS (FLEX ITEMS) - flex-grow: define la proporción en la que los elementos pueden crecer de haber espacio suficiente - flex-shrink: define la proporción en la que los elementos pueden decrecer cuando no hay espacio suficiente - flex-basis: define el tamaño por defecto del elemento antes de la distribución del espacio disponible - flex: ‘shorthand’ para todo lo anterior
  • 17. PROPIEDADES PARA LOS HIJOS (FLEX ITEMS) - order: controla el orden en el que los elementos se muestran por pantalla (¡cuidado! accesibilidad) - align-self: define la alineación de un elemento en concreto en el eje perpendicular al principal
  • 18. DEMO
  • 20. GRID LAYOUT aka CSS Grid Layout Module Level 1
  • 21. ¿POR QUÉ NOS ENSEÑAS COSAS RARAS? https://www.youtube.com/watch?v=M4ckNS3bu6k
  • 22. ¿QUÉ ES GRID LAYOUT? - Nuevo modo de layout para nuestras páginas web - Bidireccional - La evolución natural de las tablas, float, inline-block, etc - Se puede llevar bien con flexbox - El mejor amigo del diseño responsive - Sustituto (en el futuro) de FW CSS específicos (o no)
  • 23. ¿DESDE CUÁNDO EXISTE LA ESPECIFICACIÓN? - Primera CR en Septiembre de 2016 - Última revisión de Febrero de 2017 - Inicio de la especificación en 2012 2012 2016 - 2017
  • 24. ¿PUEDO USARLO? - No - En serio, NO - Puedes usarlo para aprender y conocer sus posibilidades
  • 26. ALGUNOS CONCEPTOS BÁSICOS Grid container Grid item Grid area Grid cell Grid line Grid track
  • 27. SUENA BIEN…¿POR QUÉ SE TE VE TAN PREOCUPADO? display: grid | inline-grid | subgrid grid-column-start grid-column-end grid-row-start grid-row-end span repeat() fr grid-template-columns grid-template-rows grid-auto-columns grid-auto-rows grid-template-areas grid-template grid-column-gap grid-row-gap grid-gap justify-items align-items justify-content align-content grid-auto-flow grid grid-column-start grid-column-end grid-row-start grid-row-end grid-column grid-row grid-area justify-self align-self
  • 28. PROPIEDADES BÁSICAS PARA MONTAR UN GRID - display: define el elemento como un contenedor grid (grid | inline-grid | subgrid)
  • 29. PROPIEDADES BÁSICAS PARA MONTAR UN GRID - grid-template-columns / grid-template-rows: define el número de filas o columnas y su tamaño
  • 30. PROPIEDADES BÁSICAS PARA MONTAR UN GRID - grid-column-gap / grid-row-gap: define el tamaño de línea que separa los elementos del grid - grid-gap: ‘shorthand’ para las dos anteriores
  • 31. PROPIEDADES BÁSICAS PARA MONTAR UN GRID - grid-column-start / grid-column-end / grid-row-start / grid-row- end: determina la posición inicial y final que toma un ítem en relación a las líneas del grid - grid-row / grid-column: ‘shorthand’ para cada una de las parejas de propiedades anteriores
  • 32. DEMO
  • 33. ¿PREGUNTAS? En el W3C y en CSSTricks viene todo muy bien explicadito
  • 34. ENLACES - W3C CR: https://www.w3.org/TR/css-flexbox-1/ - CSS Tricks: https://css-tricks.com/snippets/css/a-guide-to- flexbox/ - Egghead: https://egghead.io/courses/flexbox-fundamentals - CodePen: https://codepen.io/marcosDLCS/pen/mRKwvq - CodePen: https://codepen.io/marcosDLCS/pen/apKLrM Flexbox
  • 35. ENLACES - W3C CR: https://www.w3.org/TR/css-grid-1/ - CSS Tricks: https://css-tricks.com/snippets/css/complete-guide-grid/ - Google Developers: https://developers.google.com/web/updates/2017/01/css-grid - Codemotion 2016: https://www.youtube.com/watch?v=gUqYlBOUz8M - CodePen: https://codepen.io/marcosDLCS/pen/vgoQoK - CodePen: https://codepen.io/marcosDLCS/pen/pRMQMZ Grid
  • 36. ENLACES - GitHub repo: https://github.com/marcosDLCS/css-flexbox- grid-course