Как наложить один div на другой div без использования position: absolute?

у меня есть два divs с двумя изображениями:

<div id="div1">    

     <div id="div2">
         <img src="img1" />
    </div> 

    <img src="img2" /> 

</div>

второй-немного меньше, чем первый. Как я могу поместить второе изображение, на первое изображение без использования

#div2{
    position: absolute;
}

мне нужно как результат, но без использования абсолютного свойства позиции;

основная проблема заключается в том, что в Родительском div есть много других элементов, а не только div2.

4 ответов


отрицательные поля

вы можете делать лоты с отрицательной маржей. Я создал пример С двумя изображениями без каких-либо divs.

<img src="http://www.lorempixel.com/300/300">
<img class="small" src="http://www.lorempixel.com/200/200">
And some text
<img class="small top" src="http://www.lorempixel.com/200/200">
<img src="http://www.lorempixel.com/300/300">
And some more text​

CSS:

img {
    display: block;
}
.small {
    margin: -202px 0 0 0;
    border: 1px solid #fff;
}
.small.top {
    position: relative;
    margin: 0 0 -202px 0;
}​

мой вопрос к вам, почему вы должны делать это без

#div2 {
    position: absolute;
}

Если проблема, с которой вы сталкиваетесь, заключается в том, что она абсолютна для страницы, а не div, убедитесь, что #div1 имеет следующее:

#div1 {
    position:relative;
}

вы могли бы гнездо div2 внутри div1:

<div id="div1">
    <img src="\img1.png" />

    <div id="div2">
        <img src="\img1.png" />
    </div>

</div>

это не хороший подход к использованию отрицательных полей. Особенно при шаблонах электронной почты gmail отклоняет отрицательную маржу и позиции. Так что другой способ

    <div class='wrapDiv'  style='width: 255px;'>
           <div class='divToComeUp' style='
                    float: left;
                    margin-top: 149px; width:100%;'>This text comes above the .innerDiv  
according to the amount of margin-top that you give</div>

           <div class='innerDiv' style='width:100%; height:600px'>
               Inner div Content
           </div>

    </div>