Какие знаешь способы сдвинуть блок внутри другого блока вправо

Ответ

Есть несколько способов сдвинуть блок внутри родительского блока вправо:

  1. margin-left: auto
.child {
  margin-left: auto;
}
  1. Flexbox
.parent {
  display: flex;
}
.child {
  margin-left: auto;
}
  1. Grid
.parent {
  display: grid;
  grid-template-columns: 1fr auto;
}
  1. Absolute positioning
.parent {
  position: relative;
}
.child {
  position: absolute;
  right: 0;
}
  1. Float (устаревший способ)
.child {
  float: right;
}

Лучшие современные варианты - flexbox и grid. Margin-left: auto также работает, но менее гибкий. Absolute positioning вырывает элемент из потока.

Ответ 18+ 🔞

Слушай, ну вот реально, сколько можно один и тот же вопрос про сдвиг блока вправо задавать? Да их, блядь, как грязи, способов-то! Прям овердохуища вариантов, но половина из них — говно полное, которое только в старых проектах воняет.

Ну ладно, раз уж приперлись, разжую. Смотри, вот тебе пять штук, но живые из них только первые три, остальное — для археологов.

1. margin-left: auto Ну, самый простой, тупой как валенок, но иногда работает. Как будто говоришь блоку: «Слушай, свободное место слева — всё твоё, забивай!». Но это если у родителя место есть и всё правильно сложилось.

.child {
  margin-left: auto; /* Ну, вроде как, плыви нахуй вправо */
}

2. Flexbox (нормальный способ) Вот это уже серьёзно. Родителю говоришь display: flex, и всё, детишки уже в твоей власти. А потом этому конкретному ребёнку — тот же margin-left: auto. И он, хитрая жопа, оттолкнётся от всех и прилипнет к правому краю. Красота.

.parent {
  display: flex; /* Включаем режим бога */
}
.child {
  margin-left: auto; /* А ты, сука, иди нахуй в конец */
}

3. Grid (ещё более мощный способ) Тут вообще магия. Создаёшь колонки в родителе: одну — на всё оставшееся место (1fr), вторую — под размер контента (auto). И просто кидаешь свой блок во вторую колонку. Он там и окажется, справа, весь такой довольный.

.parent {
  display: grid;
  grid-template-columns: 1fr auto; /* Первая колонка — жрёт всё, вторая — под себя */
}
/* Ребёнок сам встанет куда надо, если он один. Или ему grid-column: 2; скажи */

4. Absolute positioning (способ для отчаянных) Это уже из разряда «волнение ебать». Вырываешь ребёнка из общего потока документа, вешаешь родителю position: relative, а чаду — position: absolute; right: 0;. Он прибьётся к правому краю родителя, но все остальные элементы про него забудут, как про старого мудака. Опасная хуйня, может всё разъебать.

.parent {
  position: relative; /* Чтобы ребёнок не сбежал к телу документа */
}
.child {
  position: absolute;
  right: 0; /* Иди нахуй к правому краю */
}

5. Float (способ для дедов, которые в 2012 году застряли) float: right;. Серьёзно? В 2024-то году? Это ж надо было вспомнить. Работало когда-то для обтекания текстом картинок. Сейчас от него одни проблемы: выпадение из потока, надо очистки ставить. В общем, да похуй на этот способ. Забудь как страшный сон.

.child {
  float: right; /* Плыви, старый пень, в прошлое */
}

Короче, итог: Берёшь Flexbox или Grid — и не ебешь себе мозг. margin-left: auto — для простых случаев. absolute — только если точно знаешь, что делаешь. А float... Э, сабака сука, выбрось это из головы, пока она не взорвалась. Всё, вопрос закрыт.