css layout: o ontem, o hoje e o depois

146
css layout O ONTEM, O HOJE E O DEPOIS @ LOOPINFINITO

Upload: caio-gondim

Post on 27-Jun-2015

137 views

Category:

Software


4 download

DESCRIPTION

Partindo do ontem com layouts em tabelas e passando pelo hoje com o box model, iremos explorar as limitações dessas abordagens para entender o que as novas técnicas do depois – flexbox, grids, regions e exclusions – vêm a solucionar.

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

tabelasO ONTEM

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

• 1990

html 1.0

• estrutura de documento

• layout com <pre>

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

bells and whistles

“Storage of ASCII text, and

display on 24x80 screens, is in the

short term sufficient, and

essential. Addition of graphics

would be an optional extra with

very much less penetration for

the moment.”Tim Berners-Lee

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

primeiro site ever

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

• 1993

html 2.0

• <img>• padrao IETF

Page 10: 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 11: CSS Layout: O ontem, o hoje e o depois

• 1997

html 3.2

• <table border=’0’>

•nasce o web designer

Page 12: 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 13: CSS Layout: O ontem, o hoje e o depois

yahoo!

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

apple.com

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

bol.com.br

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

uol.com.br

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

cade.com.br

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

amazon.com

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

globo.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

codigo

<!-- ** M A I N T A B L E ** --><A NAME="topofpage"><TABLE WIDTH=598 BORDER=0 CELLPADDING=0 CELLSPACING=0><!-- ROW 1 --> <TR VALIGN="TOP"><!-- ** M A R G I N M E N U ** --> <TD WIDTH=128 ROWSPAN=3 VALIGN="TOP"> <IMG SRC="/web/19961022105458im_/http://www4.apple.com/home/elements/spacer2.gif" WIDTH=128 HEIGHT=1 ALT=""><BR> <!-- SERVER SIDE IMAGE MAP --> <A HREF="/web/19961022105458/http://www5.apple.com/cgi/imagemap/mapserve.acgi$home/newsidebar.map"> <IMG SRC="/web/19961022105458im_/http://www4.apple.com/home/elements/sidebar.gif" WIDTH=125 HEIGHT=262 BORDER=0 ALT="Navigation Graphic - See Below" ISMAP USEMAP="#newsidebar"></A> <BR></TD> <!-- CLIENT SIDE IMAGE MAP --> <MAP NAME="newsidebar"> <AREA SHAPE="rect" COORDS="37,38,84,57" HREF="/web/19961022105458/http://www.apple.com/main/find.html"> <AREA SHAPE="rect" COORDS="0,69,128,93" HREF="/web/19961022105458/http://www2.apple.com/documents/productsupport.html"> <AREA SHAPE="rect" COORDS="0,97,128,121" HREF="/web/19961022105458/http://www.info.apple.com/"> <AREA SHAPE="rect" COORDS="0,125,128,149" HREF="/web/19961022105458/http://www2.apple.com/documents/techres.html"> <AREA SHAPE="rect" COORDS="0,153,128,177" HREF="/web/19961022105458/http://devworld.apple.com/"> <AREA SHAPE="rect" COORDS="0,181,128,205" HREF="/web/19961022105458/http://www2.apple.com/documents/groups.html"> <AREA SHAPE="rect" COORDS="0,209,128,233" HREF="/web/19961022105458/http://www2.apple.com/documents/resources.html"> <AREA SHAPE="rect" COORDS="0,237,128,261" HREF="/web/19961022105458/http://www2.apple.com/documents/about.html"> </MAP>

<!-- ** G U T T E R ** --> <TD WIDTH=7 ROWSPAN=6> <IMG SRC="/web/19961022105458im_/http://www4.apple.com/home/elements/spacer.gif" ALT="" WIDTH=7 HEIGHT=1></TD> <!-- ** T I T L E B A N N E R ** --> <TD WIDTH=463 ALIGN="CENTER" COLSPAN=2> <IMG SRC="/web/19961022105458im_/http://www4.apple.com/home/banner_102296.gif" WIDTH=463 HEIGHT=90 ALT="Welcome to Apple"></TD> </TR>

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

• conteudo e layout misturados

problemas

• render nao incremental

• baixa acessibilidade

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

box modelO HOJE

Page 24: 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 25: 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 26: 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 27: 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 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

width x height

border-top-width

border-bottom-width

border-left-width

border-right-width

top

bottom

left

right

Page 29: 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 30: CSS Layout: O ontem, o hoje e o depois

2002TABLELESS

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

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

• alinhar verticalmente

problemas

Conteudo

}

?.box {

vertical-align: middle;

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

• alinhar verticalmente

problemas

Conteudo

.box {

vertical-align: middle;

}

display: table-cell;

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

• igualar altura de regioes

problemas

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 ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

<aside>

.box {

height: 200px;

}

aside, .box {

height: 100%;

float: left;

}

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

• igualar altura de regioes

problemas

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 ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

<aside>

.box {

height: 200px;

}

aside, .right {

height: 100%;

float: left;

}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ofelquys lotomania ipsumtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur.

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

• igualar altura de regioes

problemas

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 ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

<aside> .box {

height: 200px;

}

aside, .right {

height: 100%;

float: left;

}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ofelquys lotomania ipsumtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur.

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

• igualar altura de regioes

problemas

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 ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<aside>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ofelquys lotomania ipsumtempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur.

.box {

height: 200px;

display: table-row;

}

aside, .right {

height: 100%;

float: left;

display: table-cell;

}

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

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

tabelas...

Page 40: 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 41: CSS Layout: O ontem, o hoje e o depois

verdade seja dita

20132013

O GOOGLE JA FEZ ATE UM MEDIDOR DE KI

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

verdade seja dita

20132013

E AINDA NAO SUPERAMOS AS TABELAS

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

gridO DEPOIS

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

• 2012 (draft W3C)

css grid layout

• divide o espaco em regioes

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

assim como tabelas...

LINHAS ECOLUNAS

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

diferente de tabelas...

ESTRUTURALMENTE INDEPENDENTE

Page 47: 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 48: 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 49: 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 50: CSS Layout: O ontem, o hoje e o depois
Page 51: CSS Layout: O ontem, o hoje e o depois
Page 52: CSS Layout: O ontem, o hoje e o depois

semposition ?esqueca!

resize?esqueca!

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

mão na massa...

DEFININDOUM GRID

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

html

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

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

css

display: grid;

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

css

grid-definition-columns: auto auto;

1 2

display: grid;

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

css

grid-definition-rows: auto auto auto;

1 2

3 4

5 6

grid-definition-columns: auto auto;

display: grid;

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

css

1 2

3 4

5 6

grid-definition-columns: auto auto;

AREA DA TELA

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

css

1 2

3 4

5 6

grid-definition-columns: auto 1fr;

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

css

1 2

3 4

5 6

grid-definition-columns: 1fr 1fr;

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

css

1 2

3 4

5 6

grid-definition-columns: 2fr 1fr;

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

css

content

grid-definition-columns:

auto minmax(min-content, 1fr);

1 2

3 4

5 6

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

css

content1

3 4

5 6

RESIZE

grid-definition-columns:

auto minmax(min-content, 1fr);

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

css

content1

3 4

5 6

RESIZEMAIS

grid-definition-columns:

auto minmax(min-content, 1fr);

Page 65: 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 66: CSS Layout: O ontem, o hoje e o depois

mão na massa...

ASSOCIANDOCONTEUDO

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

<div class="container">

html

1 2

3 4

5 6

</div>

Page 68: 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 69: 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 70: CSS Layout: O ontem, o hoje e o depois

css

2

3 4

5 6

.reg1 {

grid-column: 1;

grid-row: 1;

}

c1

Page 71: 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 72: 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 73: 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 74: CSS Layout: O ontem, o hoje e o depois

mão na massa...

TEMPLATES

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

grid-template

header

aside content

footer

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

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

grid-template

.container { display: grid; grid-template: "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 77: CSS Layout: O ontem, o hoje e o depois

templates responsivos

header

menu content aside

footer

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

templates responsivos

header

menu

content

footeraside

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

templates responsivos

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

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

flexboxO DEPOIS

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

• otimizado para UI layout

• comportamento previsivel

• agnostico de direcao

flexbox

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

web site

header

content

ads

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

ads

content2

footer

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

web app

footer

header

side main

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

os x app store

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

versões

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

• 2011: display:box; flex()

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

Page 87: 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 88: CSS Layout: O ontem, o hoje e o depois

grow and shrink

.a .a .b

.container {

display: flex;

flex-direction: row;

}

.container

600px

Page 89: 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 90: 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 91: 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 92: 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 93: 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 94: 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 95: 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 96: 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 97: CSS Layout: O ontem, o hoje e o depois

cálculo do espaço

.a .b

.container

800px

.c

1 + 2 + 1 = 4

800 / 4 = 200

.a = 1 * 200

.b = 2 * 200

.c = 1 * 200

unidade

proporção200px 400px 200px

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

1

flex-direction: row;

2 3

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

1

flex-direction: column;

2

3

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

justify-content: flex-start;

1 2 3

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

justify-content: flex-end;

1 2 3

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

justify-content: center;

1 2 3

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

justify-content: space-between;

1 2 3

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

justify-content: space-around;

1 2 3

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

align-items: flex-start;

1 2 3

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

align-items: flex-end;

1 2 3

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

align-items: center;

1 2 3

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

align-items: stretch;

1 2 3

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

order: N;

1 2 3

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

order: N;

3 21

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

order: N;

3 21

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

mix com media queries

header

main

footer

aside1 aside2

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

header

main

footer

aside2

aside1

mix com media queries

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

não é só isso

• respeita media-queries

• respeita max-width, min-width, ...

• inline ou em block

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

centralizar elementos

.a

.container {

display: flex;

}

.container

.a {

margin: auto;

}

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

centralizar elementos

.a

.container

.container {

display: flex;

}

.a {

margin: auto;

}

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

web app flexible

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

web app flexible

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

regionsO DEPOIS

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

html

• separacao de conteudo e apresentacao

• HTML como template

• layouts de impressos

Page 121: 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 122: 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 123: 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 124: CSS Layout: O ontem, o hoje e o depois

conceitos importantes

•named flows

•regions

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

html

<div class=”content”> ... </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 126: CSS Layout: O ontem, o hoje e o depois

html

<div class=”content”> ... </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 127: CSS Layout: O ontem, o hoje e o depois

css

.content {

flow-into: lorem-ipsum;

}

.region {

flow-from: lorem-ipsum;

}

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

css

.content {

flow-into: lorem-ipsum;

}

.region {

flow-from: lorem-ipsum;

}

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

@region

@region .region-3 {

p {

color: #BADA55;

}

}

@region .region-4 {

p {

color: red;

}

}

Page 130: 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 131: CSS Layout: O ontem, o hoje e o depois

regions

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

regions

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

layouts complexos

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

exclusionsO DEPOIS

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

a tirania do retângulo

ELEMENTOS DE BLOCO SAO QUADRADOS

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

a tirania do retângulo

border-radius?

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

a tirania do retângulo

border-radius?

• molda apenas estilo

• nao molda conteudo

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

shapes!

shape-insideshape-outside

Page 139: 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 140: 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 141: 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 142: CSS Layout: O ontem, o hoje e o depois

shape-outside

p {// shape-outside: circle(cx, cy, radius); shape-outside: circle(-50px, 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 orci ac amet euism

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

shape-outside

.circulo {// shape-outside: circle(cx, cy, radius); shape-outside: circle(-100px, 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 orci ac amet euism

-100px

50%

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

layouts complexos

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

layouts complexos

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

obrigado!@LOOPINFINITO

LOOPINFINITO.COM.BR