Укладывать дивы друг на друга?
можно ли складывать несколько Дивов, таких как:
<div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
Так что все эти внутренние дивы имеют одинаковое положение X и Y? По умолчанию все они идут ниже друг друга, увеличивая позицию Y на высоту последнего предыдущего DIV.
У меня есть ощущение, что какой-то поплавок или дисплей или другой трюк может укусить?
EDIT: Родительский DIV имеет относительную позицию, поэтому использование абсолютной позиции, похоже, не работает.
7 ответов:
расположите внешний div, как вы хотите, а затем расположите внутренние divs, используя Абсолют. Они все будут складываться.
<style type="text/css"> .inner { position: absolute; } </style> <div class="outer"> <div class="inner">1</div> <div class="inner">2</div> <div class="inner">3</div> <div class="inner">4</div> </div>
чтобы добавить к ответу Дэйва:
div { position: relative; } div div { position: absolute; top: 0; left: 0; }
Если вы имеете в виду буквально положить один поверх другого, один сверху (те же позиции X, Y, но разные позиции Z), попробуйте использовать
z-index
атрибут CSS. Это должно работать (непроверенных)<div> <div style='z-index: 1'>1</div> <div style='z-index: 2'>2</div> <div style='z-index: 3'>3</div> <div style='z-index: 4'>4</div> </div>
Это должно показать 4 на вершине 3, 3 на вершине 2, и так далее. Чем выше Z-индекс, тем выше элемент расположен на оси z. Я надеюсь, что это помогло вам :)
я расположил ДИВС немного смещен, так что вы можете видеть его на работе.
HTML<div class="outer"> <div class="bot">BOT</div> <div class="top">TOP</div> </div>
CSS
.outer { position: relative; margin-top: 20px; } .top { position: absolute; margin-top: -10px; background-color: green; } .bot { position: absolute; background-color: yellow; }
Я знаю, что этот пост немного старый, но у меня была та же проблема, и я пытался исправить ее несколько часов. Наконец я нашел решение:
Если у нас есть 2 коробки расположены absolue
<div style='left: 100px; top: 100px; position: absolute; width: 200px; height: 200px;'></div> <div style='left: 100px; top: 100px; position: absolute; width: 200px; height: 200px;'></div>
мы ожидаем, что на экране будет одна коробка. Для этого мы должны установить margin-bottom равным-height, поэтому делаем так:
<div style='left: 100px; top: 100px; position: absolute; width: 200px; height: 200px; margin-bottom: -200px;'></div> <div style='left: 100px; top: 100px; position: absolute; width: 200px; height: 200px; margin-bottom: -200px;'></div>
отлично работает для меня.
У меня было то же самое требование, которое я попробовал ниже скрипки.
#container1 { background-color:red; position:absolute; left:0; top:0; height:230px; width:300px; z-index:2; } #container2 { background-color:blue; position:absolute; left:0; top:0; height:300px; width:300px; z-index:1; } #container { position : relative; height:350px; width:350px; background-color:yellow; }