HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Выравнивание элементов по поперечной оси - одна из главнейших болей всех верстальщиков. Сколько различных способов поставить элемент по центру поперечной оси - даже и не счесть. У всех способов есть свои преимущества и недостатки, но главное одно - никакой из них не является универсальным.</p>
1 <p>Выравнивание элементов по поперечной оси - одна из главнейших болей всех верстальщиков. Сколько различных способов поставить элемент по центру поперечной оси - даже и не счесть. У всех способов есть свои преимущества и недостатки, но главное одно - никакой из них не является универсальным.</p>
2 <p>Приход Flex помог решить и эту проблему всего одним простым свойством. Это действительно отлично, потому что теперь нам не важны внешние факторы: знание размеров внешнего или внутреннего блока; количество строк текста; возможность его переноса; поддержка браузером. Все это, кроме поддержки браузеров (я надеюсь, вы не разрабатываете под IE7), можно не учитывать, используя простое правило align-items.</p>
2 <p>Приход Flex помог решить и эту проблему всего одним простым свойством. Это действительно отлично, потому что теперь нам не важны внешние факторы: знание размеров внешнего или внутреннего блока; количество строк текста; возможность его переноса; поддержка браузером. Все это, кроме поддержки браузеров (я надеюсь, вы не разрабатываете под IE7), можно не учитывать, используя простое правило align-items.</p>
3 <p>Для демонстрации работы правила возьмем<em>CodePen</em>и добавим туда три блока с разным размером шрифта:</p>
3 <p>Для демонстрации работы правила возьмем<em>CodePen</em>и добавим туда три блока с разным размером шрифта:</p>
4 <p><a>https://codepen.io/hexlet/pen/ZEEzJqX</a></p>
4 <p><a>https://codepen.io/hexlet/pen/ZEEzJqX</a></p>
5 <h2>align-items: stretch</h2>
5 <h2>align-items: stretch</h2>
6 <p>Значение применяется по умолчанию к дочерним элементам внутри флекс-контейнера. Оно говорит, что высоту необходимо выставить автоматически в зависимости от высоты Flex-контейнера.</p>
6 <p>Значение применяется по умолчанию к дочерним элементам внутри флекс-контейнера. Оно говорит, что высоту необходимо выставить автоматически в зависимости от высоты Flex-контейнера.</p>
7 <p>Ранее для достижения такого эффекта приходилось использовать JS. Блоки автоматически выставят высоту только при условии отсутствия другого значения высоты у блока в CSS.</p>
7 <p>Ранее для достижения такого эффекта приходилось использовать JS. Блоки автоматически выставят высоту только при условии отсутствия другого значения высоты у блока в CSS.</p>
8 <p>Если один из блоков имеет свое значение высоты, то все зависит от этого значения:</p>
8 <p>Если один из блоков имеет свое значение высоты, то все зависит от этого значения:</p>
9 <ul><li>Если оно меньше высоты самого высокого блока, то ничего не произойдет, кроме изменения высоты одного блока</li>
9 <ul><li>Если оно меньше высоты самого высокого блока, то ничего не произойдет, кроме изменения высоты одного блока</li>
10 <li>Если значение больше, чем высота самого высокого блока, то все блоки автоматически пересчитают свою высоту, так как увеличится высота контейнера</li>
10 <li>Если значение больше, чем высота самого высокого блока, то все блоки автоматически пересчитают свою высоту, так как увеличится высота контейнера</li>
11 </ul><p>При использовании любых других значений высота элементов выставляется только такой, какая необходима блоку исходя из контента, свойств padding и border. Меняется только расположение элементов.</p>
11 </ul><p>При использовании любых других значений высота элементов выставляется только такой, какая необходима блоку исходя из контента, свойств padding и border. Меняется только расположение элементов.</p>
12 <h2>align-items: flex-start</h2>
12 <h2>align-items: flex-start</h2>
13 <p>Элементы располагаются с начала флекс-контейнера по поперечной оси.</p>
13 <p>Элементы располагаются с начала флекс-контейнера по поперечной оси.</p>
14 <p><a>https://codepen.io/hexlet/pen/yLLBzMj</a></p>
14 <p><a>https://codepen.io/hexlet/pen/yLLBzMj</a></p>
15 <h2>align-items: center</h2>
15 <h2>align-items: center</h2>
16 <p>Элементы внутри флекс-контейнера располагаются по центру поперечной оси.</p>
16 <p>Элементы внутри флекс-контейнера располагаются по центру поперечной оси.</p>
17 <p><a>https://codepen.io/hexlet/pen/XWWreRy</a></p>
17 <p><a>https://codepen.io/hexlet/pen/XWWreRy</a></p>
18 <h2>align-items: flex-end</h2>
18 <h2>align-items: flex-end</h2>
19 <p>Элементы внутри флекс-контейнера располагаются от конца поперечной оси</p>
19 <p>Элементы внутри флекс-контейнера располагаются от конца поперечной оси</p>
20 <p><a>https://codepen.io/hexlet/pen/GRRKMvj</a></p>
20 <p><a>https://codepen.io/hexlet/pen/GRRKMvj</a></p>
21 <h2>align-items: baseline</h2>
21 <h2>align-items: baseline</h2>
22 <p>Если вы не знакомы со строением шрифтов, то сначала может показаться непонятным, по какой базовой линии идет выравнивание. Базовая линия шрифта - воображаемая прямая линия, которая проводится по нижнему краю букв без учета выносных элементов. Лучше всего это иллюстрирует следующая картинка:</p>
22 <p>Если вы не знакомы со строением шрифтов, то сначала может показаться непонятным, по какой базовой линии идет выравнивание. Базовая линия шрифта - воображаемая прямая линия, которая проводится по нижнему краю букв без учета выносных элементов. Лучше всего это иллюстрирует следующая картинка:</p>
23 <p>Красным цветом выделена базовая линия шрифта. Именно по ней и будет производиться выравнивание. Браузер найдет элемент с самым большим размером шрифта и выровняет все элементы по его базовой линии. Причем другие блоки также будут выровнены по базовым линиям текста внутри них.</p>
23 <p>Красным цветом выделена базовая линия шрифта. Именно по ней и будет производиться выравнивание. Браузер найдет элемент с самым большим размером шрифта и выровняет все элементы по его базовой линии. Причем другие блоки также будут выровнены по базовым линиям текста внутри них.</p>
24 <p><a>https://codepen.io/hexlet/pen/YzzKrry</a></p>
24 <p><a>https://codepen.io/hexlet/pen/YzzKrry</a></p>
25 <h3>Самостоятельное задание</h3>
25 <h3>Самостоятельное задание</h3>
26 <p>Создайте несколько блоков с текстами внутри флекс-контейнера. Выставьте выравнивание по базовой линии и попробуйте изменять длину текста, а также размер шрифта внутри блоков. Почувствуйте базовую линию шрифта и данное выравнивание.</p>
26 <p>Создайте несколько блоков с текстами внутри флекс-контейнера. Выставьте выравнивание по базовой линии и попробуйте изменять длину текста, а также размер шрифта внутри блоков. Почувствуйте базовую линию шрифта и данное выравнивание.</p>
27 <h3>Документация</h3>
27 <h3>Документация</h3>
28 <ul><li><a>align-items</a></li>
28 <ul><li><a>align-items</a></li>
29 </ul>
29 </ul>