Как вынуть элемент из flow, так чтобы остальные элементы не сдвинулись?

Есть три дива: A, B, C. При рендеринге по-умолчанию — position: static — каждый из них располагается под другим.

Задача: вынуть «B» из дефолтоного течения (flow) через присвоение ему position: fixed или absolute. При этом нижний див «С» не должен сдвинуться наверх, на место вынутого «B». Возможно ли реализовать последнее средствами чистого CSS?

Знаю про приём клонирования элемента, но хотелось бы избежать такого использования Яваскрипта.
  • Вопрос задан
  • 3394 просмотра
Пригласить эксперта
Ответы на вопрос 6
UZER2006
@UZER2006
Если вы всё-таки вынимаете его из потока – другие это не смогут не заметить.
Если же вам только нужно поменять положение элемента – можно воспользоваться position:relative, но тогда расчёт положения будет вестись относительно изначального положения, а не начала координат.
Ответ написан
fear86
@fear86
Developer
Ну вариантов только 2

1 — Подставить на js заглушку враппер той же высоты (или врапер предопределить заранее и просто устанавливать ему height относительно div)
2 — Зная высоту блока заранее, отодвинуть соседа через Margin/Padding

Если второй вариант невозможен то лично я за JS, лучше он чем Cатана в css и html ))
Ответ написан
Ugputu
@Ugputu
php, js, my/mssql, sqlite, html, css, it-consult
Сделайте для C margin-top на высоту вынутого блока. Если высота известна заранее. Если нет, то никак (на чистом CSS).
Ответ написан
@Sayonji
В каком смысле вы хотите выкинуть элемент из течения, если разметка не должна этого заметить?
А если речь только о трех дивах, то получится разве что зная высоту среднего дива (понятно) или выкинув третий див тоже (опять же понятно).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
15 авг. 2020, в 01:45
95000 руб./за проект
14 авг. 2020, в 22:47
15000 руб./за проект
14 авг. 2020, в 22:40
15000 руб./за проект