Download - CSS Layout: O ontem, o hoje e o depois

Transcript
Page 1: CSS Layout: O ontem, o hoje e o depois

css layoutO ONTEM, O HOJE E O DEPOIS

@LOOPINFINITO

Page 2: CSS Layout: O ontem, o hoje e o depois

@CAIO_GONDIM @ALMIRFILHO

Page 3: CSS Layout: O ontem, o hoje e o depois

GLOBO.COM

Page 4: CSS Layout: O ontem, o hoje e o depois

LOOPINFINITO.COM.BR

Page 5: CSS Layout: O ontem, o hoje e o depois

tabelas

box model

flexbox

1990

1995

1998

2012

? regions exclusions&

<pre>

grid?

Page 6: CSS Layout: O ontem, o hoje e o depois

flexbox 2034

2047regions exclusions&

grid 2012

Page 7: CSS Layout: O ontem, o hoje e o depois

tabelasO ONTEM

Page 8: CSS Layout: O ontem, o hoje e o depois

• 1990

html 1.0

• estrutura de documento

• layout com <pre>

Page 9: CSS Layout: O ontem, o hoje e o depois

primeiro site ever

Page 10: CSS Layout: O ontem, o hoje e o depois

• 1993

html 2.0

• <img>• padrao IETF

Page 11: CSS Layout: O ontem, o hoje e o depois

• 1995

html 3.0

• <table>

• nunca foi aprovado

• text flow ao redor de <img>

• elementos matematicos

Page 12: CSS Layout: O ontem, o hoje e o depois

• 1997

html 3.2

• <table border=’0’>

•nasce o web designer

Page 13: CSS Layout: O ontem, o hoje e o depois

html 3.2 spec

“HTML 3.2 includes a widely

deployed subset of the

specification given in RFC 1942

and can be used to markup

tabular material or for layout

purposes.”W3C HTML 3.2 specification – http://www.w3.org/TR/REC-html32

Page 14: CSS Layout: O ontem, o hoje e o depois

yahoo!

Page 15: CSS Layout: O ontem, o hoje e o depois

apple.com

Page 16: CSS Layout: O ontem, o hoje e o depois

bol.com.br

Page 17: CSS Layout: O ontem, o hoje e o depois

uol.com.br

Page 18: CSS Layout: O ontem, o hoje e o depois

cade.com.br

Page 19: CSS Layout: O ontem, o hoje e o depois

amazon.com

Page 20: CSS Layout: O ontem, o hoje e o depois

globo.com

Page 21: CSS Layout: O ontem, o hoje e o depois

• conteudo e layout misturados

problemas

• render nao incremental

• baixa acessibilidade

Page 22: CSS Layout: O ontem, o hoje e o depois

box modelO HOJE

Page 23: CSS Layout: O ontem, o hoje e o depois

• 1996 (com o HTML 3.2)

css 1

• separa estilo da marcacao

• reuso de estilos

• independente do conteudo (?)

Page 24: CSS Layout: O ontem, o hoje e o depois

css 1

• block-level elements

• margin, padding e border

• width e height

• display e float

Page 25: CSS Layout: O ontem, o hoje e o depois

• 1998 - 2011!

css 2.1

• position

• top, bottom, left e right

• min-height e max-height

• min-width e max-width

Page 26: CSS Layout: O ontem, o hoje e o depois

• 1999 - HOJE

css 3

• CSS basic user interface module level 3

• box-sizing: border-box

Page 27: CSS Layout: O ontem, o hoje e o depois

margin-top

margin-bottom

margin-left

margin-right

padding-top

padding-bottom

padding-left

padding-right

width x height

border-top-width

border-bottom-width

border-left-width

border-right-width

top

bottom

left

right

Page 28: CSS Layout: O ontem, o hoje e o depois

margin-top

margin-bottom

margin-left

margin-right

padding-top

padding-bottom

padding-left

padding-right

border-top-width

border-bottom-width

border-left-width

border-right-width

width x height

top

bottom

left

rightbox-sizing: border-box;

Page 29: CSS Layout: O ontem, o hoje e o depois

2002TABLELESS

Page 30: CSS Layout: O ontem, o hoje e o depois

tabelas paraDADOS TABULARES

Page 31: CSS Layout: O ontem, o hoje e o depois

tabelas paraDADOS TABULARES

box model paraLAYOUTS

Page 32: CSS Layout: O ontem, o hoje e o depois

TABLELESS.COM.BR

Page 33: CSS Layout: O ontem, o hoje e o depois

• alinhar verticalmente

problemas

Conteudo

.box {

display: table-cell;

vertical-align: middle;

}

Page 34: CSS Layout: O ontem, o hoje e o depois

• igualar altura de regioes

problemas

.container {

display: table-row;

}

.column {

display: table-cell;

}

Page 35: CSS Layout: O ontem, o hoje e o depois

tabletable-captiontable-celltable-columntable-column-grouptable-footer-grouptable-header-grouptable-rowtable-row-group

display

Page 36: CSS Layout: O ontem, o hoje e o depois

tabletable-captiontable-celltable-columntable-column-grouptable-footer-grouptable-header-grouptable-rowtable-row-group

<table>tabelas...<table>

<table><table><table><table><table><table><table><table><table><table><table><table><table>

<table><table><table><table><table><table><table><table><table><table><table><table><table><table><table>

<table><table><table><table><table><table><table><table><table><table><table><table><table><table><table>

<table><table><table><table><table><table><table><table><table><table><table><table><table><table><table>

<table> <table>

Page 37: CSS Layout: O ontem, o hoje e o depois

verdade seja dita

20132013

E AINDA NAO SUPERAMOS AS TABELAS

Page 38: CSS Layout: O ontem, o hoje e o depois

flexboxO DEPOIS

Page 39: CSS Layout: O ontem, o hoje e o depois

• otimizado para UI layout

• comportamento previsivel

• agnostico de direcao

flexbox

Page 40: CSS Layout: O ontem, o hoje e o depois

web site

header

content

ads

Page 41: CSS Layout: O ontem, o hoje e o depois

ads

content2

footer

Page 42: CSS Layout: O ontem, o hoje e o depois

web app

footer

header

side main

Page 43: CSS Layout: O ontem, o hoje e o depois

os x app store

Page 44: CSS Layout: O ontem, o hoje e o depois

versões

• 2009: display:box; box-{*}

• 2011: display:box; flex()

• 2012: display:flex; flex-{*}

Page 45: CSS Layout: O ontem, o hoje e o depois

vocabulário

flex-item

flex-item

main sizecr

oss

size

main axis

cros

s ax

is

flex-container

Page 46: CSS Layout: O ontem, o hoje e o depois

grow and shrink

.a .a .b

.container {

display: flex;

flex-direction: row;

}

.container

600px

Page 47: CSS Layout: O ontem, o hoje e o depois

flex-grow

.a .a .b

.a {

flex-basis: 113px;

flex-grow: 0;

flex-shrink: 1;

}

.b {

flex-basis: 333px;

flex-grow: 1;

flex-shrink: 0;

}

.container

600px

Page 48: CSS Layout: O ontem, o hoje e o depois

.a .a .b

.a {

flex-basis: 113px;

flex-grow: 0;

flex-shrink: 1;

}

.container

800px

.b {

flex-basis: 333px;

flex-grow: 1;

flex-shrink: 0;

}

flex-grow

Page 49: CSS Layout: O ontem, o hoje e o depois

flex-shrink

.a .a .b

.container

600px

.a {

flex-basis: 113px;

flex-grow: 0;

flex-shrink: 1;

}

.b {

flex-basis: 333px;

flex-grow: 1;

flex-shrink: 0;

}

Page 50: CSS Layout: O ontem, o hoje e o depois

.a .b

.container

500px

.a

.a {

flex-basis: 113px;

flex-grow: 0;

flex-shrink: 1;

}

.b {

flex-basis: 333px;

flex-grow: 1;

flex-shrink: 0;

}

flex-shrink

Page 51: CSS Layout: O ontem, o hoje e o depois

cálculo do espaço

.a .b

.container

800px

.c

.a {

flex: 1;

}

.b {

flex: 2;

}

.c {

flex: 1;

}

css

.container {

display: flex;

}

Page 52: CSS Layout: O ontem, o hoje e o depois

1

flex-direction: row;

2 3

Page 53: CSS Layout: O ontem, o hoje e o depois

1

flex-direction: column;

2

3

Page 54: CSS Layout: O ontem, o hoje e o depois

justify-content: flex-start;

1 2 3

Page 55: CSS Layout: O ontem, o hoje e o depois

justify-content: flex-end;

1 2 3

Page 56: CSS Layout: O ontem, o hoje e o depois

justify-content: center;

1 2 3

Page 57: CSS Layout: O ontem, o hoje e o depois

justify-content: space-between;

1 2 3

Page 58: CSS Layout: O ontem, o hoje e o depois

justify-content: space-around;

1 2 3

Page 59: CSS Layout: O ontem, o hoje e o depois

align-items: flex-start;

1 2 3

Page 60: CSS Layout: O ontem, o hoje e o depois

align-items: flex-end;

1 2 3

Page 61: CSS Layout: O ontem, o hoje e o depois

align-items: center;

1 2 3

Page 62: CSS Layout: O ontem, o hoje e o depois

align-items: stretch;

1 2 3

Page 63: CSS Layout: O ontem, o hoje e o depois

order: N;

1 2 3

Page 64: CSS Layout: O ontem, o hoje e o depois

order: N;

3 21

Page 65: CSS Layout: O ontem, o hoje e o depois

order: N;

3 21

Page 66: CSS Layout: O ontem, o hoje e o depois

mix com media queries

header

main

footer

aside1 aside2

Page 67: CSS Layout: O ontem, o hoje e o depois

header

main

footer

aside2

aside1

mix com media queries

Page 68: CSS Layout: O ontem, o hoje e o depois

centralizar elementos

.a

.container {

display: flex;

}

.container

.a {

margin: auto;

}

Page 69: CSS Layout: O ontem, o hoje e o depois

centralizar elementos

.a

.container

.container {

display: flex;

}

.a {

margin: auto;

}

Page 70: CSS Layout: O ontem, o hoje e o depois

web app flexible

Page 71: CSS Layout: O ontem, o hoje e o depois

web app flexible

Page 72: CSS Layout: O ontem, o hoje e o depois

regionsO DEPOIS

Page 73: CSS Layout: O ontem, o hoje e o depois

html

• separacao de conteudo e apresentacao

• HTML como template

• layouts de impressos

Page 74: CSS Layout: O ontem, o hoje e o depois

Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed

layout em colunas

Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac euismod semper, magna diam porttitor mauris, quis sollicitudin sapien justo in libero. Vestibulum mollis mauris enim. Morbi euismod magna ac lorem rutrum elementum. Donec viverra auctor lobortis. Pellentesque eu est a nulla placerat dignissim. Morbi a enim in magna semper bibendum.

Page 75: CSS Layout: O ontem, o hoje e o depois

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu.

layouts complexos

Page 76: CSS Layout: O ontem, o hoje e o depois

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim loremtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu.

layouts complexos

Page 77: CSS Layout: O ontem, o hoje e o depois

conceitos importantes

•named flows

•regions

Page 78: CSS Layout: O ontem, o hoje e o depois

html

<div class=”content”>

<p> ... </p>

</div>

<div class=”region region-1”></div>

<img src=”” />

<div class=”region region-2”></div>

<div class=”region region-3”></div>

<div class=”region region-4”></div>

Page 79: CSS Layout: O ontem, o hoje e o depois

html

<div class=”content”>

<p> ... </p>

</div>

<div class=”region region-1”></div>

<img src=”” />

<div class=”region region-2”></div>

<div class=”region region-3”></div>

<div class=”region region-4”></div>

Page 80: CSS Layout: O ontem, o hoje e o depois

css

.content {

flow-into: lorem-ipsum;

}

.region {

flow-from: lorem-ipsum;

}

Page 81: CSS Layout: O ontem, o hoje e o depois

css

.content {

flow-into: lorem-ipsum;

}

.region {

flow-from: lorem-ipsum;

}

Page 82: CSS Layout: O ontem, o hoje e o depois

@region

.region-3::region(p) {

color: #BADA55;

}

.region-4::region(p) {

color: red;

}

Page 83: CSS Layout: O ontem, o hoje e o depois

regions

Page 84: CSS Layout: O ontem, o hoje e o depois

regions

Page 85: CSS Layout: O ontem, o hoje e o depois

layouts complexos

Page 86: CSS Layout: O ontem, o hoje e o depois

exclusionsO DEPOIS

Page 87: CSS Layout: O ontem, o hoje e o depois

a tirania do retângulo

ELEMENTOS DE BLOCO SAO QUADRADOS

Page 88: CSS Layout: O ontem, o hoje e o depois

a tirania do retângulo

border-radius?

Page 89: CSS Layout: O ontem, o hoje e o depois

a tirania do retângulo

border-radius?

• molda apenas estilo

• nao molda conteudo

Page 90: CSS Layout: O ontem, o hoje e o depois

a tirania do retângulo

Sed at ast molestie augue tad sitep amet leo consequat siuop posuere. Vestibulum ante ipsum tade primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum bdolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac amet euism Sed Sed ast molestie augue sitep amet leo consequat siuop posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus temo eleifend ut et magna. Lorem ipsum dolor sito amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies actased tempor dui sagittis. In at sectum condimentum facilisis porta. Sed nec diam eu et magna. Lorem ipsum dolor sito amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies actased

Page 91: CSS Layout: O ontem, o hoje e o depois

shapes!

shape-insideshape-outside

Page 92: CSS Layout: O ontem, o hoje e o depois

shape-inside

.circulo {// shape-inside: circle(cx, cy, radius); shape-inside: circle(50%, 50%, 50%);}

Sed ast molestie augue sitep

amet leo consequat siuop posuere. Vestibulum ante ipsum primis in faucibus orci luctus et

ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus

luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum

facilisis porta. Sed nec diam eu diam mattis viverra. Nulla

fringilla, orci ac amet euism Sed

Page 93: CSS Layout: O ontem, o hoje e o depois

shape-inside

A Sed

molestie augue sit amet leo

consequat as due to a posuere. Vestibulum ante ipsum primis in

faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel

ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet,

consectetur adipiscing elit. Vivamus luctus urna

sed urna ultricies ac am

.estrela {

shape-inside: polygon(0px 150px, ...);

}

Page 94: CSS Layout: O ontem, o hoje e o depois

shapes com regions

A Sed molestie augue sit

amet leo consequat as due to a posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices

posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum

dolor sit amet, soc at consectetur adipisg elit. Vivamus luctus urna sed urna ultricies

ser am

Sed ast molestie augue sitep

amet leo consequat siuop posuere. Vestibulum ante ipsum primis in faucibus orci luctus et

ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus

luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum

facilisis porta. Sed nec diam eu diam mattis viverra. Nulla

fringilla, orci ac amet euism Sed

Page 95: CSS Layout: O ontem, o hoje e o depois

shape-outside

Sed ast molestie augue sitep amet leo consequat siuop posuere.

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In

condimentum facilisis porta. Sed nec diam eu diam mattis viverra.

nulla fringilla, orci ac amet euism sed orci ac amet euism

<div class="circulo"></div>

<p>Lorem ipsum dolor sit amet...</p>

Page 96: CSS Layout: O ontem, o hoje e o depois

shape-outside

Sed ast molestie augue sitep amet leo consequat siuop posuere.

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In

condimentum facilisis porta. Sed nec diam eu diam mattis viverra.

nulla fringilla, orci ac amet euism sed orci ac amet euism

.circulo { float: left; shape-outside: circle(50px, 50%, 50%);}

Page 97: CSS Layout: O ontem, o hoje e o depois

layouts complexos

Page 98: CSS Layout: O ontem, o hoje e o depois

layouts complexos

Page 99: CSS Layout: O ontem, o hoje e o depois

layouts complexos

Page 100: CSS Layout: O ontem, o hoje e o depois

gridO DEPOIS

Page 101: CSS Layout: O ontem, o hoje e o depois

• 2012 (W3C draft)

css grid layout

• divide o espaco em regioes

Page 102: CSS Layout: O ontem, o hoje e o depois

assim como tabelas...

LINHAS ECOLUNAS

Page 103: CSS Layout: O ontem, o hoje e o depois

diferente de tabelas...

ESTRUTURALMENTE INDEPENDENTE

Page 104: CSS Layout: O ontem, o hoje e o depois

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

LOOPLorem ipsum

Dolor sit amet

Consectetur adipisicing

Sed do eiusmod

bla bla

footer

Page 105: CSS Layout: O ontem, o hoje e o depois

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

LOOPLorem ipsum

Dolor sit amet

Consectetur adipisicing

Sed do eiusmod

bla bla

footer

flexivelfixo

Page 106: CSS Layout: O ontem, o hoje e o depois

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod kracta caio gondim lorem tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

LOOPLorem ipsum

Dolor sit amet

Consectetur adipisicing

Sed do eiusmod

bla bla

footer

flexivel

fixo

Page 107: CSS Layout: O ontem, o hoje e o depois
Page 108: CSS Layout: O ontem, o hoje e o depois
Page 109: CSS Layout: O ontem, o hoje e o depois

semposition ?esqueca!

resize?esqueca!

Page 110: CSS Layout: O ontem, o hoje e o depois

mão na massa...

DEFININDOUM GRID

Page 111: CSS Layout: O ontem, o hoje e o depois

html

<div class="container"></div>

Page 112: CSS Layout: O ontem, o hoje e o depois

css

display: grid;

Page 113: CSS Layout: O ontem, o hoje e o depois

css

grid-template-columns: auto auto;

1 2

display: grid;

Page 114: CSS Layout: O ontem, o hoje e o depois

css

grid-template-rows: auto auto auto;

1 2

3 4

5 6

grid-template-columns: auto auto;

display: grid;

Page 115: CSS Layout: O ontem, o hoje e o depois

css

1 2

3 4

5 6

grid-template-columns: auto auto;

AREA DA TELA

Page 116: CSS Layout: O ontem, o hoje e o depois

css

1 2

3 4

5 6

grid-template-columns: auto 1fr;

Page 117: CSS Layout: O ontem, o hoje e o depois

css

1 2

3 4

5 6

grid-template-columns: 1fr 1fr;

Page 118: CSS Layout: O ontem, o hoje e o depois

css

1 2

3 4

5 6

grid-template-columns: 2fr 1fr;

Page 119: CSS Layout: O ontem, o hoje e o depois

css

content

grid-template-columns:

auto minmax(min-content, 1fr);

1 2

3 4

5 6

Page 120: CSS Layout: O ontem, o hoje e o depois

css

content1

3 4

5 6

RESIZE

grid-template-columns:

auto minmax(min-content, 1fr);

Page 121: CSS Layout: O ontem, o hoje e o depois

css

content1

3 4

5 6

RESIZEMAIS

grid-template-columns:

auto minmax(min-content, 1fr);

Page 122: CSS Layout: O ontem, o hoje e o depois

minmax()

minmax(800px, 1fr);

minmax(2fr, 3fr);

minmax(50%, 100%);

minmax(10em, 80%);

minmax(min-content, 1fr);

minmax(70%, max-content);

minmax(calc(70% + 80px + 9em), 1fr);

minmax(min-content, max-content) = auto

Page 123: CSS Layout: O ontem, o hoje e o depois

mão na massa...

ASSOCIANDOCONTEUDO

Page 124: CSS Layout: O ontem, o hoje e o depois

<div class="container">

html

1 2

3 4

5 6

</div>

Page 125: CSS Layout: O ontem, o hoje e o depois

html

<div class="reg5">c5</div>

<div class="reg1">c1</div>

<div class="reg2">c2</div>

<div class="reg3">c3</div>

<div class="reg4">c4</div>

• sem blocos para linha/coluna

<div class="reg6">c6</div>

1 2

3 4

5 6

<div class="container">

</div>

Page 126: CSS Layout: O ontem, o hoje e o depois

html

• a ordem nao importa

1 2

3 4

5 6

<div class="container">

</div>

<div class="reg5">c5</div>

<div class="reg1">c1</div>

<div class="reg2">c2</div>

<div class="reg3">c3</div>

<div class="reg4">c4</div>

<div class="reg6">c6</div>

Page 127: CSS Layout: O ontem, o hoje e o depois

css

2

3 4

5 6

.reg1 {

grid-column: 1;

grid-row: 1;

}

c1

Page 128: CSS Layout: O ontem, o hoje e o depois

css

2

3

5 6

.reg1 {

grid-column: 1;

grid-row: 1;

}

c1 .reg4 {

grid-column: 2;

grid-row: 2;

}

c4

Page 129: CSS Layout: O ontem, o hoje e o depois

css

2

5 6

.reg1 {

grid-column: 1;

grid-row: 1;

}

c1 .reg4 {

grid-column: 2;

grid-row: 2;

}

c4

.reg3 {

grid-column: 1;

grid-row: 2;

}

c3

Page 130: CSS Layout: O ontem, o hoje e o depois

css

2

5 6

.reg1 {

grid-column: 1;

grid-row: 1;

}

c1 .reg4 {

grid-column: 2;

grid-row: 2;

}

c4

.reg3, .reg6 {

grid-column: 1;

grid-row: 2;

}

c3

c6

Page 131: CSS Layout: O ontem, o hoje e o depois

e não é só isso...

•Subgrids

•Span de conteudo

•Alinhamento

Page 132: CSS Layout: O ontem, o hoje e o depois

TEMPLATES

Page 133: CSS Layout: O ontem, o hoje e o depois

grid-template

header

aside content

footer

.container { display: grid; grid-template-areas: "header header" "aside content" "footer footer";}

Page 134: CSS Layout: O ontem, o hoje e o depois

grid-template

.container { display: grid; grid-template-areas: "header header" "aside content" "footer footer";}

.reg1 { grid-area: header }

.reg2 { grid-area: aside }

.reg3 { grid-area: content }

.reg4 { grid-area: content }

.reg5 { grid-area: content }

.reg6 { grid-area: footer }

Page 135: CSS Layout: O ontem, o hoje e o depois

templates responsivos

header

menu content aside

footer

Page 136: CSS Layout: O ontem, o hoje e o depois

templates responsivos

header

menu

content

footeraside

Page 137: CSS Layout: O ontem, o hoje e o depois

templates responsivos

@media (orientation: landscape){ .container { grid-template-areas: "header header header" "menu content aside" "footer footer footer"; }}@media (orientation: portrait){ .container { grid-template-areas: "header header" "menu menu" "content content" "aside footer"; }}

Page 138: CSS Layout: O ontem, o hoje e o depois

tabelas

box model

flexbox

regions exclusions

1990

1995

1998

2012

? &

<pre>

grid?

Page 139: CSS Layout: O ontem, o hoje e o depois

?

Page 140: CSS Layout: O ontem, o hoje e o depois

obrigado!@LOOPINFINITO

LOOPINFINITO.COM.BR