codefest 2013. — Макеев В. flexbox, теперь понятно

116

Upload: codefest

Post on 29-Nov-2014

1.330 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 2: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox

Page 3: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

68,51%

Page 4: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Первая система раскладки,которая не хак

Page 5: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

prozrachniy.gif

Page 6: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

<br clear=all>

Page 8: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 9: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox

Page 10: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox 09

Page 11: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox 09

Page 12: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox 11

Page 13: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox 12

Page 14: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox 12

Page 15: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Собственно

Page 16: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 17: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 18: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Оси

Page 19: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Привычный CSSE {

top:0; /* сверху */

bottom:0; /* снизу */

text-align:center; /* горизонтально */

vertical-align:middle; /* вертикально */

}

01.

02.

03.

04.

05.

06.

19

Page 20: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Главная

Page 21: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперечная

Page 22: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 23: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 24: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 25: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 26: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 27: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 28: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Пушкин.

Зимний вечер

Page 29: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Пушкин. Зимний вечер<div class="poem">

<div>буря мглою</div>

<div>небо кроет</div>

<div>вихри снежные</div>

<div>крутя</div>

</div>

01.

02.

03.

04.

05.

06.

29

Page 30: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Пушкин. Зимний вечер.poem {

overflow:hidden;

height:640px;

}

.poem div {

float:left;

}

01.

02.

03.

04.

05.

06.

07.

30

Page 31: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Пушкин. Зимний вечер.poem div:first-child {

background:#090;

}

.poem div:last-child {

background:#C00;

}

01.

02.

03.

04.

05.

06.

31

Page 32: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 33: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Включаем Flexbox.poem {

display:flex;

}

01.

02.

03.

33

Page 34: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 35: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Меняем направление по оси.poem {

display:flex;

flex-direction:row; /* по умолчанию */

flex-direction:row-reverse;

}

01.

02.

03.

04.

05.

35

Page 36: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглоюнебо кроетвихри снежныекрутя

Page 37: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поворачиваем саму ось.poem {

display:flex;

flex-direction:column;

}

01.

02.

03.

04.

37

Page 38: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою

небо кроет

вихри снежные

крутя

Page 39: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Меняем направление по оси.poem {

display:flex;

flex-direction:column-reverse;

}

01.

02.

03.

04.

39

Page 40: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою

небо кроет

вихри снежные

крутя

Page 41: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 42: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Што?

Page 43: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль

Page 44: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 45: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 46: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 47: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль направо.poem {

display:flex;

justify-content:flex-start; /* по умолчанию */

justify-content:flex-end;

}

01.

02.

03.

04.

05.

47

Page 48: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 49: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль посередине.poem {

display:flex;

justify-content:center;

}

01.

02.

03.

04.

49

Page 50: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 51: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль равномерно.poem {

display:flex;

justify-content:space-between;

}

01.

02.

03.

04.

51

Page 52: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 53: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль красиво.poem {

display:flex;

justify-content:space-around;

}

01.

02.

03.

04.

53

Page 54: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 55: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Перестановка

Page 56: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 57: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 58: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Меняем порядок.poem div:nth-child(2) {

order:1;

}

01.

02.

03.

58

Page 59: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою вихри снежные крутя небо кроет

Page 60: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Меняем порядок.poem div {

order:4;

}

01.

02.

03.

60

Page 61: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 62: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Меняем порядок.poem div:nth-child(1) { order:2 }

.poem div:nth-child(2) { order:1 }

.poem div:nth-child(3) { order:4 }

.poem div:nth-child(4) { order:3 }

01.

02.

03.

04.

62

Page 63: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

небо кроет буря мглою крутя вихри снежные

Page 64: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 65: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперёк

Page 66: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 67: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Даём высоту.poem div {

height:250px;

}

01.

02.

03.

67

Page 68: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 69: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперёк внизу.poem {

display:flex;

align-items:flex-start; /* по умолчанию */

align-items:flex-end;

}

01.

02.

03.

04.

05.

69

Page 70: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 71: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперёк посередине.poem {

display:flex;

align-items:center;

}

01.

02.

03.

04.

71

Page 72: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 73: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперёк индивидуально.poem div:nth-child(1) {

align-self:flex-start;

}

.poem div:nth-child(4) {

align-self:flex-end;

}

01.

02.

03.

04.

05.

06.

73

Page 74: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою

небо кроет вихри снежные

крутя

Page 75: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою

Page 76: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Центрирование.poem {

display:flex;

}

.poem div {

margin:auto;

}

01.

02.

03.

04.

05.

06.

76

Page 77: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Растягивание

Page 78: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя

Page 79: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

× × × ×

Page 80: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Растягивание.poem div {

flex-grow:1;

}

01.

02.

03.

80

Page 81: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

× × × ×

Page 82: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Растягивание.poem div {

flex-grow:1;

}

.poem div:nth-child(1) {

flex-grow:4;

}

01.

02.

03.

04.

05.

06.

82

Page 83: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

× × × ×

Page 84: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Сжатие.poem div {

width:25%;

}

.poem div:nth-child(1) {

flex-shrink:4;

}

01.

02.

03.

04.

05.

06.

84

Page 85: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

× × × ×

Page 86: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Запас.poem div {

flex-grow:1;

}

.poem div:nth-child(1) {

flex-basis:250px;

}

01.

02.

03.

04.

05.

06.

86

Page 87: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

× × × ×

Page 88: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Весь Пушкин

Page 89: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Многострочный

Flexbox

Page 90: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 91: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь она

Page 92: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Перенос.poem {

display:flex;

flex-wrap:nowrap; /* по умолчанию */

flex-wrap:wrap;

}

01.

02.

03.

04.

05.

92

Page 93: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 94: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Перенос наоборот.poem {

display:flex;

flex-wrap:wrap-reverse;

}

01.

02.

03.

04.

94

Page 95: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 96: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 97: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 98: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Порядок поперёк.poem {

display:flex;

align-content:stretch; /* по умолчанию */

align-content:center;

}

Только для многострочных блоков!

01.

02.

03.

04.

05.

98

Page 99: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 100: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 101: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 102: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

буря мглою небо кроет вихри снежные крутя то как зверь

она завоет то заплачет как дитя то по кровле обветшалой

вдруг соломой зашумит то как путник запоздалый

к нам в окошко застучит

Page 103: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Многострочный Flexboxв Firefox?

Page 104: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Фолбеки на старыйFlexbox

Page 105: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Включение FlexboxE {

display:-webkit-box;

display:-moz-box;

display:-ms-flexbox;

display:-webkit-flex;

display:flex;

}

01.

02.

03.

04.

05.

06.

07.

105

Page 106: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Растягивание блоковE {

-webkit-box-flex:1;

-moz-box-flex:1;

-ms-flex:1;

-webkit-flex:1;

flex:1;

}

01.

02.

03.

04.

05.

06.

07.

106

Page 107: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Прямая колонкаE { -webkit-box-orient:vertical;

-moz-box-orient:vertical;

-ms-flex-direction:column;

-webkit-flex-direction:column;

flex-direction:column; }

01.

02.

03.

04.

05.

107

Page 108: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Обратная колонкаE { -webkit-box-orient:vertical;

-webkit-box-direction:reverse;

-moz-box-orient:vertical;

-moz-box-direction:reverse;

-ms-flex-direction:column-reverse;

-webkit-flex-direction:column-reverse;

flex-direction:column-reverse; }

01.

02.

03.

04.

05.

06.

07.

108

Page 109: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Обратный рядE { -webkit-box-orient:horizontal;

-webkit-box-direction:reverse;

-moz-box-orient:horizontal;

-moz-box-direction:reverse;

-ms-flex-direction:row-reverse;

-webkit-flex-direction:row-reverse;

flex-direction:row-reverse; }

01.

02.

03.

04.

05.

06.

07.

109

Page 110: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Вдоль равномерноE {

-webkit-box-pack:justify;

-moz-box-pack:justify;

-ms-flex-pack:justify;

-webkit-justify-content:space-between;

justify-content:space-between;

}

01.

02.

03.

04.

05.

06.

07.

110

Page 111: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Поперёк посерединеE {

-webkit-box-align:center;

-moz-box-align:center;

-ms-flex-align:center;

-webkit-align-items:center;

}

01.

02.

03.

04.

05.

06.

111

Page 112: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

ПерестановкаE {

-webkit-box-ordinal-group:1;

-moz-box-ordinal-group:1;

-ms-flex-order:1;

-webkit-order:1;

order:1;

}

01.

02.

03.

04.

05.

06.

07.

112

Page 113: CodeFest 2013. — Макеев В. Flexbox, теперь понятно
Page 114: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Читать— Поддержка Flexbox в браузерах

— Таблица соответствия F09 и F11

— Таблица соответствия F09 и F11 для IE10

— CSS3 Flexplorer

— Использование Flexbox от Mozilla

— Руководство по Flexbox от Microsoft

114

Page 115: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

Flexbox, теперь понятноВадим Макеев, Opera Software

— @pepelsbey

— pepelsbey.net

[email protected]

Презентация: pepelsbey.net/pres/flexbox-gotcha

115

Page 116: CodeFest 2013. — Макеев В. Flexbox, теперь понятно

sokr.me/fbx