SlideShare a Scribd company logo
1 of 66
CSS Flexible Box Layout — будущее?
Настоящее!
Роман Бубнов
2
Две колонки
3
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
float
4
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
.col-1,
.col-2 {
float:left;
}
float
5
<table>
<tr>
<td class="col-1">
Колонка 1
</td>
<td class="col-2">
Колонка 2
</td>
</tr>
</table>
table
6
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
inline-block
7
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
.col-1,
.col-2 {
display:inline-block;
}
inline-block
8
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
position
9
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
.col-1 {
position:absolute;
left:0;
}
position
10
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
.col-1 {
position:absolute;
left:0;
}
.col-2 {
position:absolute;
right:0;
}
position
11
Как?
flexbox
12
CSS Flexible Box Layout
13
Firefox
[ 18 + ]
Opera
[ 12.1 + ]
IE
[ 10 + ]
Chrome
[ 4 + ]
Safari
[ 3.1 + ]
Поддержка браузерами
14
Firefox
[ 18 + ]
Opera
[ 12.1 + ]
IE
[ 10 + ]
Chrome
[ 4 + ]
Safari
[ 3.1 + ]
2009 ✔ ✘ ✘ ✔ ✔
Поддержка браузерами
15
Firefox
[ 18 + ]
Opera
[ 12.1 + ]
IE
[ 10 + ]
Chrome
[ 4 + ]
Safari
[ 3.1 + ]
2009 ✔ ✘ ✘ ✔ ✔
2012 ✘ ✘ ✔ ✘ ✘
Поддержка браузерами
16
Firefox
[ 18 + ]
Opera
[ 12.1 + ]
IE
[ 10 + ]
Chrome
[ 4 + ]
Safari
[ 3.1 + ]
2009 ✔ ✘ ✘ ✔ ✔
2012 ✘ ✘ ✔ ✘ ✘
2012 + ✘ ✔ ✘ ✔ ✘
Поддержка браузерами
17
• Sass —sass-lang.com
• LESS —lesscss.org
• Stylus —learnboost.github.com/stylus
• …
CSS-препроцессор
18
19
20
21
22
23
24
25
26
27
justify-content
28
justify-content
29
justify-content
30
justify-content
31
justify-content
32
justify-content
33
justify-content + flex-direction
34
35
36
37
38
39
align-items
40
align-items
41
align-items
42
align-items
43
align-items
44
align-items
45
46
47
48
order
49
<div class="flex">
<div class="el-1">1</div>
<div class="el-2">2</div>
</div>
order
50
<div class="flex">
<div class="el-1">1</div>
<div class="el-2">2</div>
</div>
order
51
<div class="flex">
<div class="el-1">1</div>
<div class="el-2">2</div>
</div>
<style>
.flex { display:flex; }
.el-1 { order:2; }
.el-2 { order:1; }
</style>
order
52
<div class="flex">
<div class="el-1">1</div>
<div class="el-2">2</div>
</div>
<style>
.flex { display:flex; }
.el-1 { order:2; }
.el-2 { order:1; }
</style>
order
53
54
55
56
57
Так как же?
flexbox
58
<div class="flex">
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
</div>
flexbox
59
<div class="flex">
<div class="col-1">
Колонка 1
</div>
<div class="col-2">
Колонка 2
</div>
</div>
.flex {
display:flex;
}
flexbox
60
Что дальше?
61
69.79%
62
• mail.ru/tv
Что дальше?
63
• mail.ru/tv
• bit.ly/flexplorer
Что дальше?
64
• mail.ru/tv
• bit.ly/flexplorer
• Ссылка на гитхаб с миксином
Что дальше?
65
• mail.ru/tv
• bit.ly/flexplorer
• Ссылка на гитхаб с миксином
• bit.ly/spec-2009
• bit.ly/spec-2012
• bit.ly/spec-last
Что дальше?
66
Разработчик клиентской части
Главной страницы Mail.Ru
r.bubnov@corp.mail.ru
Роман Бубнов

More Related Content

Viewers also liked (13)

Santiago sierra
Santiago sierraSantiago sierra
Santiago sierra
 
Thesis5minute
Thesis5minuteThesis5minute
Thesis5minute
 
Vishvas resume template-5
Vishvas resume template-5Vishvas resume template-5
Vishvas resume template-5
 
When to Trade Up
When to Trade UpWhen to Trade Up
When to Trade Up
 
Harmonization of vocabularies for water data
Harmonization of vocabularies for water dataHarmonization of vocabularies for water data
Harmonization of vocabularies for water data
 
Buenos aires 9692
Buenos aires 9692Buenos aires 9692
Buenos aires 9692
 
CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...
CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...
CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...
 
Go Global in Real Estate!
Go Global in Real Estate!Go Global in Real Estate!
Go Global in Real Estate!
 
Multilateral Newsletter January 2015 edition
Multilateral Newsletter January 2015 editionMultilateral Newsletter January 2015 edition
Multilateral Newsletter January 2015 edition
 
J O B S I
J  O  B  S  IJ  O  B  S  I
J O B S I
 
Read the latest edition of the CII North America Newsletter here
Read the latest edition of the CII North America Newsletter hereRead the latest edition of the CII North America Newsletter here
Read the latest edition of the CII North America Newsletter here
 
Agile estimating and planning
Agile estimating and planningAgile estimating and planning
Agile estimating and planning
 
Phuong phap giai nhanh chuong dien xoay chieu
Phuong phap giai nhanh chuong dien xoay chieuPhuong phap giai nhanh chuong dien xoay chieu
Phuong phap giai nhanh chuong dien xoay chieu
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

CSS Flexible Box Layout — будущее? Настоящее! / Роман Бубнов (Mail.Ru)