Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как прижать элемент вправо

Короткий ответ

Во flex-строке margin-left: auto забирает всё свободное место слева от элемента и прижимает его вправо:

<nav style="display: flex; gap: 12px; padding: 8px; background: whitesmoke;">
  <a href="https://example.com">Home</a>
  <a href="https://example.com">Blog</a>
  <a href="https://example.com" style="margin-left: auto;">Log in</a>
</nav>

Всё, что стоит после такого элемента, тоже уезжает вправо — удобно для шапки с логотипом слева и кнопками справа.

Все элементы вправо

justify-content: flex-end сдвигает вправо всю группу:

<div style="display: flex; justify-content: flex-end; gap: 8px;">
  <button>Cancel</button><button>Save</button>
</div>

Блок без flexbox

Блоку с заданной шириной хватит margin-left: auto, а текст и строчные элементы выравнивает text-align: right:

<div style="width: 160px; margin-left: auto; padding: 8px; background: lavender;">Block on the right</div>
<p style="text-align: right;">Text on the right</p>

Частая ошибка

float: right для этого больше не нужен: он вынимает элемент из потока, соседний текст начинает его обтекать, а родитель может «схлопнуться». Для кнопок и меню берите flexbox.

Функции из этого ответа

  • margin — Внешний отступ элемента — расстояние до соседей.
  • justify-content — Распределяет элементы вдоль главной оси flex- или grid-контейнера.
  • text-align — Выравнивание текста и строчного содержимого внутри блока по горизонтали.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.