FlexBox 2022

Содержание

Слайд 2

Почему Flexbox?

Долгое время единственными надёжными инструментами CSS-верстки были такие способы как float

Почему Flexbox? Долгое время единственными надёжными инструментами CSS-верстки были такие способы как
(обтекание) и position (позиционирование).
С их помощью сложно или невозможно достичь следующих простых требований к макету:
Вертикального выравнивания блока внутри родителя.
Оформление всех детей контейнера так, чтобы они распределили между собой доступную ширину/высоту, независимо от того, сколько ширины/высоты доступно.
Сделать все колонки в макете одинаковой высоты, даже если наполнение в них различно.

Модель верстки Flexbox, создана, чтобы убрать недостатки при создании самых разных HTML-конструкций, в том числе адаптированных под разную ширину и высоту, и сделать верстку логичной и простой

Слайд 3

Flexbox

Flexbox предназначен для создания гибких макетов.
Flexbox определяет набор CSS свойств для контейнера

Flexbox Flexbox предназначен для создания гибких макетов. Flexbox определяет набор CSS свойств
(flex-контейнер) и его дочерних элементов (flex-блоков).

FlexBox состоит из Контейнера и его Дочерних элементов.

Слайд 4

Чтобы начать работать с технологией FlexBox необходимо родительскому контейнеру установить свойство:
Display:

Чтобы начать работать с технологией FlexBox необходимо родительскому контейнеру установить свойство: Display:
flex; или Display:flex-inline;
После этого данный родительский контейнер становится flex-контейнером, а все его непосредственные дочерние элементы – flex-элементами.

Слайд 5

Устройство flex-контейнера

Устройство flex-контейнера

Слайд 6

При изучении новой темы выполните практическое задание на использование верстки Flexbox.

Создайте папку

При изучении новой темы выполните практическое задание на использование верстки Flexbox. Создайте
с 2 файлами index.html и style.css. Подключите файл стилей style.css к файлу index.html

Задание

Слайд 7

Создайте блок-обертку (div class= “wrapper”) и в нем несколько блоков с произвольным

Создайте блок-обертку (div class= “wrapper”) и в нем несколько блоков с произвольным
текстом.
Чтобы быстро создать произвольный текст в блоках, наберите слово Lorem и нажмите Tab

Задание

Слайд 8

Чтобы видеть результат, добавьте в файл style.css границу и ширину для блоков

Задание

Чтобы видеть результат, добавьте в файл style.css границу и ширину для блоков Задание

Слайд 9

Чтобы начать использовать модель Flexbox, необходимо задать родительский flex-контейнер. В нашем примере

Чтобы начать использовать модель Flexbox, необходимо задать родительский flex-контейнер. В нашем примере
это будет div class= “wrapper”.

Flex-контейнер - div class= “wrapper”

Flex-элементы - div class= “item”

Задание

Слайд 10

В файле style.css установите у селектора .wrapper свойству display значение flex

В результате на

В файле style.css установите у селектора .wrapper свойству display значение flex В
сайте все блоки должны встать в одну линию.

Задание

Слайд 11

Flex-свойства для родительского контейнера

Flex-свойства для родительского контейнера

Слайд 12

1. Свойство Flex-direction

Свойство flex-direction указывает направление главной оси.

1. Свойство Flex-direction Свойство flex-direction указывает направление главной оси.

Слайд 13

1. Свойство Flex-direction

flex-direction: row; - элементы располагаются слева направо в строку (по умолчанию)
flex-direction: column;

1. Свойство Flex-direction flex-direction: row; - элементы располагаются слева направо в строку
- элементы располагаются сверху вниз в столбец
flex-direction: row-reverse; - элементы располагаются справа налево в строку
flex-direction: column-reverse; - элементы располагаются снизу вверх в столбец

Значения свойства flex-direction:

Слайд 14

2. Свойство Flex-wrap

Свойство flex-wrap дает возможность дочерним элементам при необходимости переходить на другую строку.

flex-wrap: nowrap;

2. Свойство Flex-wrap Свойство flex-wrap дает возможность дочерним элементам при необходимости переходить
- элементы не переносятся на новую строку (по умолчанию)
flex-wrap: wrap; - элементы переносятся на новую строку

Слайд 15

3. Выравнивание дочерних элементов вдоль главной оси (по умолчанию по горизонтали)

Значения

3. Выравнивание дочерних элементов вдоль главной оси (по умолчанию по горизонтали) Значения
свойства justify-content:
justify-content: flex-start; - от начала родительского контейнера (по умолчанию)
justify-content: center; - по центру контейнера
justify-content: flex-end; - с конца контейнера
justify-content: space-around; - элементы равномерно распределены по контейнеру с равным местом вокруг них
justify-content: space-between; - крайние элементы прижимаются к краям, остальные элементы равномерно распределены по контейнеру

Свойство  justify-content

Слайд 16

3. Выравнивание дочерних элементов вдоль главной оси (по умолчанию по горизонтали)

3. Выравнивание дочерних элементов вдоль главной оси (по умолчанию по горизонтали)

Слайд 17

4. Выравнивание дочерних элементов вдоль поперечной оси (по умолчанию по вертикали)

Значения

4. Выравнивание дочерних элементов вдоль поперечной оси (по умолчанию по вертикали) Значения
свойства align-items:

Свойство align-items

align-items: center; - по центру
align-items: flex-start; - с начала
align-items: flex-end; - с конца
align-items: stretch; - на всю высоту (по умолчанию)
align-items: baseline; - по базовой линии

Слайд 18

4. Выравнивание дочерних элементов вдоль поперечной оси (по умолчанию по вертикали)

4. Выравнивание дочерних элементов вдоль поперечной оси (по умолчанию по вертикали)

Слайд 19

5. align-content - выравнивает и распределяет строки контейнера, когда есть свободное пространство

5. align-content - выравнивает и распределяет строки контейнера, когда есть свободное пространство
в поперечной оси.

Это свойство не приносит эффекта, когда есть только одна строка flex элементов

align-content: flex-start | flex-end | center | space-between | space-around | stretch;

Слайд 20

Для родителя (div class= “wrapper”) добавьте свойство justify-content.
Поэкспериментируйте с его значениями.

Задание

Для родителя (div class= “wrapper”) добавьте свойство justify-content. Поэкспериментируйте с его значениями. Задание

Слайд 21

Установите значение свойства justify-content, чтобы получить результат как на рисунке:

Чтобы изучать

Установите значение свойства justify-content, чтобы получить результат как на рисунке: Чтобы изучать
свойства flex дальше, добавьте произвольного текста в центральный блок.

Задание

Слайд 22

Для родителя добавьте свойство align-items.
Поэкспериментируйте с его значениями.

Установите значение свойства align-items,

Для родителя добавьте свойство align-items. Поэкспериментируйте с его значениями. Установите значение свойства
чтобы получить результат как на рисунке:

Задание

Слайд 23

Чтобы изучать свойства flex дальше, установите свойство flex-direction, так чтобы элементы встали

Чтобы изучать свойства flex дальше, установите свойство flex-direction, так чтобы элементы встали
в одну линию.

Добавьте в контейнер wrapper еще несколько блоков item и попробуйте различные значения свойства flex-wrap:

Задание

Слайд 24

Чтобы лучше видеть результат работы свойства flex-direction абзацы лучше пронумеровать.

Для родителя добавьте

Чтобы лучше видеть результат работы свойства flex-direction абзацы лучше пронумеровать. Для родителя
свойство
flex-direction, изменяя его значения.

Задание

Слайд 25

Flex-свойства для дочерних элементов

Flex-свойства для дочерних элементов

Слайд 26

1. Свойство Order

Определяет порядок, в котором будут располагаться дочерние элементы. Задается целым

1. Свойство Order Определяет порядок, в котором будут располагаться дочерние элементы. Задается
числом и по умолчанию равно 0.

Слайд 27

2. Свойство Flex-grow

Свойство flex-grow указывает, насколько отдельный элемент будет
больше соседних элементов (по умолчанию

2. Свойство Flex-grow Свойство flex-grow указывает, насколько отдельный элемент будет больше соседних
0).

Пример 1:
Если все flex-блоки внутри flex-контейнера имеют flex-grow:1, то они будут одинакового размера
Если один из них имеет flex-grow:2, то он будет в 2 раза больше, чем все остальные
Пример 2:
Если все flex-блоки внутри flex-контейнера имеют flex-grow:3, то они будут одинакового размера
Если один из них имеет flex-grow:12, то он будет в 4 раза больше, чем все остальные

Слайд 28

3. Свойство Flex-shrink

Определяет способность flex-элемента сокращаться в случае недостатка свободного места.
По

3. Свойство Flex-shrink Определяет способность flex-элемента сокращаться в случае недостатка свободного места.
умолчанию равен 1.

Принцип действия у данного свойства такой же, как у свойства flex-grow.

Слайд 29

4. Свойство Flex-basis

Базовый размер отдельного элемента, заменяет свойство width

5. Свойство Flex

Свойство flex

4. Свойство Flex-basis Базовый размер отдельного элемента, заменяет свойство width 5. Свойство
является сокращенным свойством для задания свойств flex-grow, flex-shrink и flex-basis

Рекомендуется использовать сокращенное свойство, вместо набора индивидуальных свойств.

flex: 0 1 auto; /*по умолчанию*/

Слайд 30

6. Свойство Align-self

Выравнивание отдельно взятого flex-блока по поперечной оси. Значения такие же

6. Свойство Align-self Выравнивание отдельно взятого flex-блока по поперечной оси. Значения такие же как у align-items.
как у align-items.

Слайд 31

7. margin: auto – выравнивание блока по вертикали и по горизонтали по

7. margin: auto – выравнивание блока по вертикали и по горизонтали по центру
центру

Слайд 32

Оставьте в контейнере только 3 блока, задав им разные классы.

Исправьте стили

Оставьте в контейнере только 3 блока, задав им разные классы. Исправьте стили Задание

Задание

Слайд 33

Добавьте для элементов контейнера различные значения свойства flex-grow .

2 пример

3 пример

1

Добавьте для элементов контейнера различные значения свойства flex-grow . 2 пример 3 пример 1 пример Задание
пример

Задание