Flexbox – замечательная технология с одним существенным недостатком: ей почему-то никто не пользуется. Я попытаюсь сломать расхожие стериотипы о флексбоксах и поделюсь опытом их использования в реальном проекте. Будет несколько интересных примеров, рассказ об особенностях работы в разных браузерах, фолбэки для старых IE и особенности взаимодействия с другими CSS-свойствами.
24. Сжимаем
.item { flex-shrink: 1 } /* По умолчанию */
Item number one Item number two Item number three Item number four
.item:last-child { flex-shrink: 0 }
Item number oneItem number twIotem number threeItem number four
23
29. От забора и до обеда
Header
Представляется логичным, что интеграл от функции, обращающейся в бесконечность в изолированной
точке небезынтересно развивает косвенный интеграл от функции, имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного. Интересно отметить, что дивергенция векторного поля
трансформирует контрпример. Не доказано, что целое число монотонно. Если предположить, что a < b,
то минимум существенно ускоряет интеграл от функции комплексной переменной. Интеграл от
функции, имеющий конечный разрыв поддерживает лист Мёбиуса. Скачок функции вполне вероятен.
Бином Ньютона восстанавливает интеграл от функции, обращающейся в бесконечность вдоль линии.
Footer
28
30. Подход первый
<body>
<header>...</header>
<main>...</main>
<footer>...</footer>
</body>
01.
02.
03.
04.
05.
29
31. Подход первый
body {
min-height: 100vh;
display: flex;
flex-direction: column;
}
main { flex-grow: 1; }
01.
02.
03.
04.
05.
06.
30
32. Не тянется
Header
Представляется логичным, что интеграл от функции, обращающейся в бесконечность в изолированной
точке небезынтересно развивает косвенный интеграл от функции, имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного. Интересно отметить, что дивергенция векторного поля
трансформирует контрпример. Не доказано, что целое число монотонно.
Footer
31
34. Не тянется
body {
height: 100vh;
display: flex;
flex-direction: column;
}
main { flex-grow: 1; }
01.
02.
03.
04.
05.
06.
33
35. Когда текста много
Header
Представляется логичным, что интеграл от функции, обращающейся в бесконечность в изолированной
точке небезынтересно развивает косвенный интеграл от функции, имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного. Интересно отметить, что дивергенция векторного поля
трансформирует контрпример. Не доказано, что целое число монотонно. Если предположить, что a < b,
то минимум существенно ускоряет интеграл от функции комплексной переменной. Интеграл от
функции, имеющий конечный разрыв поддерживает лист Мёбиуса. Скачок функции вполне вероятен.
Бином Ньютона восстанавливает интеграл от функции, обращающейся в бесконечность вдоль линии.
Мнимая единица концентрирует тройной интеграл. В общем, интеграл от функции, обращающейся в
бесконечность в изолированной точке последовательно концентрирует эмпирический сходящийся ряд.
Итак, ясно, что интеграл по ориентированной области основан на тщательном анализе.
Представляется логичным, что интеграл от функции, обращающейся в бесконечность в изолированной
точке небезынтересно развивает косвенный интеграл от функции, имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного. Интересно отметить, что дивергенция векторного поля
Footer
трансформирует контрпример. Не доказано, что целое число монотонно. Если предположить, что a < b,
то минимум существенно ускоряет интеграл от функции комплексной переменной. Интеграл от
34
40. При чем тут flexbox?
<div class="overlay">
<div class="modal">...</div>
</div>
01.
02.
03.
39
41. При чем тут flexbox?
.overlay {
position: fixed;
padding: 50px 0;
}
.modal {
max-height: 100%;
overflow-y: auto;
}
01.
02.
03.
04.
05.
06.
07.
08.
40
42. При чем тут flexbox?
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
41
43. При чем тут flexbox?
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
Интересно отметить, что дивергенция
векторного поля трансформирует
контрпример. Не доказано, что целое число
монотонно. Если предположить, что a < b, то
минимум существенно ускоряет интеграл от
42
45. Добавляем иконку
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
Интересно отметить, что дивергенция
векторного поля трансформирует
контрпример. Не доказано, что целое число
монотонно. Если предположить, что a < b, то
минимум существенно ускоряет интеграл от
i
44
48. Добавляем флексбоксы
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
Интересно отметить, что дивергенция
векторного поля трансформирует
контрпример. Не доказано, что целое число
монотонно. Если предположить, что a < b, то
минимум существенно ускоряет интеграл от
i
47
51. Фоллбэк на таблицы
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
Интересно отметить, что дивергенция
векторного поля трансформирует
контрпример. Не доказано, что целое число
монотонно. Если предположить, что a < b, то
минимум существенно ускоряет интеграл от
функции комплексной переменной. Интеграл
i
50
52. Преимущества flexbox-решения
ОК
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
демонстрируя всю чушь вышесказанного.
Интересно отметить, что дивергенция
векторного поля трансформирует
контрпример. Не доказано, что целое число
монотонно. Если предположить, что a < b, то
i
51
53. Преимущества flexbox-решения
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
Представляется логичным, что интеграл от
функции, обращающейся в бесконечность в
изолированной точке небезынтересно
развивает косвенный интеграл от функции,
имеющий конечный разрыв, явно
i
52
71. Теперь на флексах
70
Вокзалы Аэроэкспресс ПетропавловскКамчатский
Служба поддержки
72. Теперь на флексах
71
Аэропорты Вокзалы Аэроэкспресс Такси Автобус ПетропавловскКамчатский
Служба поддержки
73. Список литературы
— A Complete Guide to Flexbox – Chris Coyer
— Solved by Flexbox – Philip Walton
— Dive into Flexbox – Greg Smith
— Flexbox isn't slow – Paul Irish
— Flexbox. Теперь понятно – Вадим Макеев
— Leveling Up With Flexbox – Zoe Gillenwater
72
74. О достоинствах
— Легко решает нетривиальные задачи
— Не хак
— Делает код лучше
73
75. Y U NO USE FLEXBOX?
— Нигде не поддерживается
— Много префиксов
— IE ≤ 9
— Производительность
— Новое и непонятное
74
76. FLEXBOX YEAH
— Нигде не поддерживается
— Много префиксов
— IE ≤ 9
— Производительность
— Новое и непонятное
75