Подтвердить что ты не робот

Перекрытие элементов в CSS

Как сделать два элемента перекрывающимися в CSS, например.

<div>Content 1</div>
<div>Content 2</div>

Я хотел бы, чтобы два содержимого (они могут быть чем угодно) перекрывались, поэтому отображается Content 2, начиная с того же верхнего левого угла, что и Content 1, и они кажутся перекрывающимися. Содержание 1 должно начинаться в нормальном потоке документа, а не в некоторой фиксированной позиции на экране.

Возможно ли это?

Спасибо,

AJ

4b9b3361

Ответ 1

Самый простой способ - использовать position:absolute для обоих элементов. Вы можете абсолютно позиционировать относительно страницы, или можете абсолютно позиционировать относительно div контейнера, установив контейнер div в position:relative

<div id="container" style="position:relative;">
    <div id="div1" style="position:absolute; top:0; left:0;"></div>
    <div id="div2" style="position:absolute; top:0; left:0;"></div>
</div>

Ответ 2

Я думаю, вы могли бы уйти с использованием относительного позиционирования, а затем установить верхнее/левое позиционирование второго DIV, пока не найдете его в нужном месте.

Ответ 3

Вы можете использовать относительное позиционирование для перекрытия ваших элементов. Однако пространство, которое они обычно занимают, по-прежнему будет зарезервировано для элемента:

<div style="background-color:#f00;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>
<div style="background-color:#0f0;width:200px;height:100px;position:relative;top:-50px;left:50px;">
    RELATIVE POSITIONED
</div>
<div style="background-color:#00f;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>

В приведенном выше примере будет существовать блок пробелов между двумя элементами "ПО УМОЛЧАНИЮ ПОЗИЦИИ". Это вызвано тем, что элемент RELATIVE POSITIONED по-прежнему имеет зарезервированное пространство.

Если вы используете абсолютное позиционирование, ваши элементы не будут иметь зарезервированного пространства, поэтому ваш элемент будет фактически перекрываться, не нарушая ваш документ:

<div style="background-color:#f00;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>
<div style="background-color:#0f0;width:200px;height:100px;position:absolute;top:50px;left:50px;">
    ABSOLUTE POSITIONED
</div>
<div style="background-color:#00f;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>

Наконец, вы можете контролировать, какие элементы находятся поверх других, используя z-index:

<div style="z-index:10;background-color:#f00;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>
<div style="z-index:5;background-color:#0f0;width:200px;height:100px;position:absolute;top:50px;left:50px;">
    ABSOLUTE POSITIONED
</div>
<div style="z-index:0;background-color:#00f;width:200px;height:100px;">
    DEFAULT POSITIONED
</div>

Ответ 4

Вы можете попробовать использовать свойство transform: translate, передав соответствующие значения в скобках с помощью элемента inspect в Google Chrome.

Вы должны установить свойство translate таким образом, чтобы оба <div> перекрывали друг друга, тогда вы можете использовать JavaScript, чтобы показать и скрыть оба <div> в соответствии с вашими требованиями