flexbox - верстка без float'ов by dmitry radyno

43
FLEXBOX ВЕРСТКА БЕЗ FLOAT’ОВ ДМИТРИЙ РАДЫНО

Upload: -

Post on 21-Apr-2017

5.679 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXBOXВЕРСТКА БЕЗ

FLOAT’ОВ

ДМИТРИЙ РАДЫНО

Page 2: Flexbox - верстка без float'ов by Dmitry Radyno

СУРОВАЯ РЕАЛЬНОСТЬ:•ТАБЛИЧНАЯ ВЕРСТКА•БЛОЧНАЯ ВЕРСТКА

Page 3: Flexbox - верстка без float'ов by Dmitry Radyno

ВЕРСТКА ТАБЛИЦАМИ+ ПРОСТАЯ ДЛЯ ПОНИМАНИЯ+ ТАБЛИЦА ХОРОШО МАСШТАБИРУЕТСЯ

- СЕМАНТИЧЕСКИ НЕВЕРНАЯ- ГРОМОЗДКИЙ КОД-ОТРИСОВКА ПОСЛЕ ПОЛНОЙ ЗАГРУЗКИ

Page 4: Flexbox - верстка без float'ов by Dmitry Radyno

ВЕРСТКА БЛОКАМИ+ СЕМАНТИЧЕСКИ ВЕРНАЯ+ ПОНЯТНЫЙ HTML КОД+ ОТРИСОВКА ПО МЕРЕ ЗАГРУЗКИ

- ТРУДНЕЕ В ПОНИМАНИИ- FLOAT – ОБТЕКАНИЕ ЭЛЕМЕНТА

Page 5: Flexbox - верстка без float'ов by Dmitry Radyno

FLOAT: LEFT; FLOAT: RIGHT;

Page 6: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXBOX - ЗАКОНОМЕРНОСТЬ!2008 - ОБСУЖДЕНИЕ ПРЕДЛОЖЕНИЯ “FLEXIBLE BOX MODEL”

2009 - ОПУБЛИКОВАН ЧЕРНОВИК (FLEXBOX 2009)

2011 – ОБНОВЛЕН СИНТАКСИС (FLEXBOX 2011)

2013 ГОД - СПЕЦИФИКАЦИЯ ПЕРЕХОДИТ В СТАТУС CANDIDATE RECOMMENDATION И ИЗВЕСТНА ПОД НАЗВАНИЕМ “FLEXBOX 2012”

Page 7: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXBOX – TURN ON!

.container { display: flex;}

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

Page 8: Flexbox - верстка без float'ов by Dmitry Radyno

FLEX DIRECTIONS

.container { flex-direction: row; /* row-reverse | column | column-reverse */}

Page 9: Flexbox - верстка без float'ов by Dmitry Radyno

ОСИ И НАПРАВЛЕНИЯ

FLEX-DIRECTION: ROW;

MAIN AXIS

CROSS

AXIS

MAIN

AXIS

CROSS AXIS

FLEX-DIRECTION: COLUMN;

Page 10: Flexbox - верстка без float'ов by Dmitry Radyno

ВЫРАВНИВАНИЕ

ALIGN

-ITEM

S

JUSTIFY-CONTENT

Page 11: Flexbox - верстка без float'ов by Dmitry Radyno

JUSTIFY-CONTENTFLEX-STARTFLEX-ENDCENTERSPACE-AROUNDSPACE-BETWEEN

Page 12: Flexbox - верстка без float'ов by Dmitry Radyno

ALIGN-ITEMS

FLEX-START

FLEX-END

CENTER

STRETCH

BASELINE

Page 13: Flexbox - верстка без float'ов by Dmitry Radyno

ALIGN: CENTER

.container { display: flex; justify-content: center; align-items: center;}

<div class="container"> <div class="item"> I'm align center<br> It's not a miracle! </div></div>

Page 14: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXIBLE SIZING

Page 15: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXIBLE SIZING

.item { flex-basis: 200px; flex-grow: 1; flex-shrink: 1;}

FLEX-BASIS – БАЗОВЫЙ РАЗМЕР

FLEX: <FLEX-GROW> <FLEX-SHRINK> <FLEX-BASIS>;

FLEX-GROW – ФАКТОР РАСШИРЯЕМОСТИFLEX-SHRINK – ФАКТОР СЖИМАЕМОСТИ

.item { flex: 1 1 200px;}

Page 16: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXIBLE SIZING: GROW

<div class="container"> <div class="item small">I'm 200px by default</div> <div class="item big">I'm 400px by default</div> <div class="item small">I'm 200px by default</div></div>

.container { display: flex; width: 1000px;}.item.small { flex: 1 1 200px;}.item.big { flex: 1 1 400px;}

1000 PX

200 + 67 PX

200 + 67 PX

400 + 66 PX

Page 17: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXIBLE SIZING: GROW

<div class="container"> <div class="item small">I'm 200px by default</div> <div class="item big">I'm 400px by default</div> <div class="item small">I'm 200px by default</div></div>

.container { display: flex; width: 1000px;}.item.small { flex: 1 1 200px;}.item.big { flex: 3 1 400px;}

1000 PX

200 + 40 PX

200 + 40 PX

400 + 120 PX

Page 18: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXIBLE SIZING: SHRINK

<div class="container"> <div class="item small">I'm 200px by default</div> <div class="item big">I'm 400px by default</div> <div class="item small">I'm 200px by default</div></div>

.container { display: flex; width: 700px;}.item.small { flex: 1 1 200px;}.item.big { flex: 1 1 400px;}

700 PX

200 - 25 PX

200 - 25 PX

400 - 50 PX

Page 19: Flexbox - верстка без float'ов by Dmitry Radyno

DESKTOP

Page 20: Flexbox - верстка без float'ов by Dmitry Radyno

TABLET

Page 21: Flexbox - верстка без float'ов by Dmitry Radyno

MOBILE

Page 22: Flexbox - верстка без float'ов by Dmitry Radyno

СТРУКТУРА СТРАНИЦЫ

Page 23: Flexbox - верстка без float'ов by Dmitry Radyno

МНОГОСТРОЧНОСТЬ: FLEX-WRAP

FLEX-WRAP: NOWRAP

FLEX-WRAP: WRAP

FLEX-WRAP: WRAP-REVERSE

Page 24: Flexbox - верстка без float'ов by Dmitry Radyno

FLEX-FLOW

.container { flex-direction: row; flex-wrap: wrap;}

FLEX-FLOW: <FLEX-DIRECTION> <FLEX-WRAP>;

. container { flex-flow: row wrap;}

.container { flex-direction: column; flex-wrap: nowrap;}

. container { flex-flow: column nowrap;}

Page 25: Flexbox - верстка без float'ов by Dmitry Radyno

ALIGN-CONTENTFLEX-START

SPACE-BETWEEN

FLEX-END

CENTER

FLEX-AROUND

STRETCH (DEFAULT)

Page 26: Flexbox - верстка без float'ов by Dmitry Radyno

ORDERING

Page 27: Flexbox - верстка без float'ов by Dmitry Radyno

ORDERINGNON-VISUAL MEDIA

Page 28: Flexbox - верстка без float'ов by Dmitry Radyno

ORDERING<div class="container"> <div class="item first">I'm the first</div> <div class="item second">I'm the second</div> <div class="item third">I'm the third</div></div>

.item.first { order: 2;}.item.second { order: 3;}.item.third { order: 1;}

Page 29: Flexbox - верстка без float'ов by Dmitry Radyno

FLEXBOX.container { display: flex; flex-flow: row wrap; justify-content: center; align-items: center; align-content: stretch;}.item { flex: 1 1 auto; order: 2;}

Page 30: Flexbox - верстка без float'ов by Dmitry Radyno

DEMORESPONSIVE ADAPTIVE LAYOUT БЕЗ СМС И РЕГИСТРАЦИИ! СКАЧАТЬ БЕСПЛАТНО! HTTP://CODEPEN.IO/RADYNO/PEN/FRXTA

FLEXBOX + CSS ANIMATION HTTP://CODEPEN.IO/RADYNO/PEN/AWGLP

Page 31: Flexbox - верстка без float'ов by Dmitry Radyno

BROWSER SUPPORT

Page 32: Flexbox - верстка без float'ов by Dmitry Radyno

CROSS-BROWSER LAYOUT.container { display: -webkit-flexbox; display: -ms-flexbox; display: flex;

-webkit-flex-flow: column nowrap; -ms-flex-flow: column nowrap; flex-flow: column nowrap;

justify-content: flex-end; -ms-flex-pack: end; flex-pack: end;

-ms-flex-line-pack: distribute; flex-line-pack: distribute; align-content: space-around;}

.item { -webkit-flex: 1 1 100px; -ms-flex: 1 1 100px; flex: 1 1 100px;

-ms-flex-order: -1; flex-order: -1; order: -1;

}

Page 33: Flexbox - верстка без float'ов by Dmitry Radyno

AUTOPREFIXER

Page 34: Flexbox - верстка без float'ов by Dmitry Radyno

POLYFILLS ЗДЕСЬ МОГ БЫ БЫТЬ ВАШ ПОЛИФИЛ!МЕСТО ДЛЯ ВАШЕГО ПОЛИФИЛА!ТЕЛ +37533 ХХХ-ХХ-ХХ

Page 35: Flexbox - верстка без float'ов by Dmitry Radyno

GENERATORS

Page 36: Flexbox - верстка без float'ов by Dmitry Radyno

GENERATORS

Page 37: Flexbox - верстка без float'ов by Dmitry Radyno

GENERATORS

Page 38: Flexbox - верстка без float'ов by Dmitry Radyno

GENERATORS

Page 39: Flexbox - верстка без float'ов by Dmitry Radyno

PERFORMANCE

Page 40: Flexbox - верстка без float'ов by Dmitry Radyno

PERFORMANCEDESKTOP

MOBILE

Page 41: Flexbox - верстка без float'ов by Dmitry Radyno

ВЫВОДЫ• УДОБНО• СТАНОВИТСЯ ПОПУЛЯРНЫМ• АДАПТИВНЫЙ ДИЗАЙН• АНИМИРУЕТСЯ• ALIGN-CONTENT / ALIGN-ITEMS• БАГИ ПРИСУТСТВУЮТ

Page 42: Flexbox - верстка без float'ов by Dmitry Radyno

ПОЛЕЗНЫЕ ССЫЛКИСТАТЬИ ПО FLEXBOXHTTP://HTML5.BY/BLOG/FLEXBOX/HTTP://CSS-TRICKS.COM/SNIPPETS/CSS/A-GUIDE-TO-FLEXBOX/

КРОССБРАУЗЕРНОЕ ИСПОЛЬЗОВАНИЕ FLEXBOXHTTP://CSS-TRICKS.COM/USING-FLEXBOX/HTTP://CANIUSE.COM/#FEAT=FLEXBOXHTTPS://GITHUB.COM/POSTCSS/AUTOPREFIXER

СПЕЦИФИКАЦИЯ FLEXBOX 2012HTTP://WWW.W3.ORG/TR/CSS3-FLEXBOX/

Page 43: Flexbox - верстка без float'ов by Dmitry Radyno

ВОПРОСЫ?

ДМИТРИЙ РАДЫНО: TWITTER: @RADYNO FACEBOOK: DMITRY.RADYNO EMAIL: [email protected]