Я знаю, position: absoluteчто вытолкнет элемент из потока, и он перестанет взаимодействовать со своими соседями.
Какие еще есть способы добиться этого?
Я знаю, position: absoluteчто вытолкнет элемент из потока, и он перестанет взаимодействовать со своими соседями.
Какие еще есть способы добиться этого?
Ответы:
Никто?
Я имею в виду, кроме полного удаления его из макета display: none, я почти уверен, что это так.
Вы сталкиваетесь с конкретной ситуацией, position: absoluteрешение которой не является жизнеспособным?
position: absoluteвызывает перерисовку при прокрутке, что плохо для производительности на мобильных устройствах
display: noneполностью удаляет элемент не только из потока.
Другой вариант - установить height: 0; overflow: visible;элемент, хотя на самом деле он не будет находиться вне потока и, следовательно, может нарушить сжатие поля .
::beforeс абсолютным позиционированием для имитации фона.
Есть display: none, но я думаю, что это может быть немного больше, чем вы ищете.
display: noneпоявляются в бессмысленном месте (вверху экрана, закрывая вкладки). Кажется, что неотображаемые элементы действительно беспозиционны, по крайней мере, в этом браузере.
position: fixed;также "вытолкнет" элемент из потока, как вы говорите. :)
position: absoluteдолжно сопровождаться позицией. напримерtop: 1rem; left: 1rem
position: fixedтем не менее, поместит элемент там, где он обычно появится в соответствии с потоком документов, но не позволит ему перемещаться после этого. Он также эффективно устанавливает высоту на 0 пикселей (по отношению к dom), чтобы следующий элемент перемещался над ним.
Это может быть довольно круто, потому что вы можете установить position: fixed; z-index: 1(или любой другой z-index, который вам нужен) так, чтобы он «появлялся» над следующим элементом.
Это особенно полезно для заголовков с фиксированной позицией, которые остаются вверху, например, при прокрутке.
Плавающий его реорганизует поток, но позиция: абсолютный - единственный способ полностью удалить его из потока документа.
Я знаю, что этому вопросу несколько лет, но я думаю, что вы пытаетесь сделать так, чтобы большой элемент, например изображение, не мешал высоте div?
Я просто столкнулся с чем-то похожим, где я хотел, чтобы изображение переполняло div, но я хотел, чтобы оно было в конце строки текста, поэтому я не знал, где оно окажется.
Решение, которое я придумал, заключалось в том, чтобы поместить высоту margin-bottom: -element, поэтому, если изображение имеет высоту 20 пикселей,
margin-bottom: -20px;
vertical-align: top;
например.
Таким образом, он перемещался по внешней стороне div и оставался рядом с последним словом в строке.