Проверяет понимание того, как переопределить выравнивание одного flex-элемента, не затрагивая остальные, что важно для точной вёрстки интерфейсов.
Flexbox выравнивает элементы по двум осям: главной (main axis) и поперечной (cross axis). Свойство align-items на контейнере задаёт выравнивание всех дочерних элементов по поперечной оси. Но иногда нужно, чтобы один элемент выравнивался иначе, чем остальные. Для этого у самого элемента есть свойство align-self, которое переопределяет align-items родителя только для этого элемента.
Оно принимает те же значения, что и align-items: flex-start, flex-end, center, baseline, stretch. Значение auto (по умолчанию) означает наследование от родителя.
.container {
display: flex;
align-items: center; /* все по центру */
height: 200px;
}
.item-special {
align-self: flex-end; /* только этот — вниз */
}
Если задать элементу margin: auto по нужной оси, он «съест» всё свободное пространство и прижмётся к противоположной стороне. Это работает и по главной оси, где align-self не действует.
.container {
display: flex;
}
.item-right {
margin-left: auto; /* прижмёт элемент вправо */
}
Итог: для выравнивания одного элемента по поперечной оси используйте align-self, а для смещения по главной оси или отталкивания к краю — margin: auto. Эти приёмы позволяют точечно управлять раскладкой, не меняя поведение всего контейнера.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию