Posisi absolut dan overflow disembunyikan

134

Kami memiliki dua DIV, satu tertanam di yang lain. Jika DIV luar tidak diposisikan absolut, maka DIV dalam, yang diposisikan absolut, tidak mematuhi limpahan tersembunyi dari DIV luar ( contoh ).

Apakah ada kemungkinan untuk membuat DIV bagian dalam mematuhi limpahan yang tersembunyi dari DIV bagian luar tanpa mengatur DIV bagian luar ke posisi absolut (penyebab yang akan memperbaiki tata letak lengkap kami)? Juga posisi relatif untuk DIV batin kita bukanlah pilihan karena kita perlu "tumbuh" dari tabel TD ( exmple ).

Apakah ada opsi lain?

Zardoz
sumber

Jawaban:

282

Membuat luar <div>untuk position: relativedan dalam <div>untuk position: absolute. Itu harus bekerja untuk Anda.

shankhan
sumber
5
Terima kasih untuk kalian berdua. Saya selalu berpikir posisi: relatif adalah default. Saya baru tahu bahwa statis adalah default. Saya menerima jawaban shankhans karena kedua jawaban itu sama dan shankhan membutuhkan beberapa poin lagi ;-)
Zardoz
7
Beberapa penjelasan dan / atau dokumentasi akan menjadi tambahan yang bagus.
showdev
25

Bagaimana position: relativedengan div luar? Dalam contoh yang menyembunyikan bagian dalam. Ini juga tidak akan memindahkannya dalam tata letaknya karena Anda tidak menentukan bagian atas atau kiri.

Tesserex
sumber
9

Elemen yang benar-benar diposisikan sebenarnya diposisikan mengenai relativeinduk, atau induk relatif terdekat yang ditemukan. Jadi elemen dengan overflow: hiddenharus berada di antara relativedan absoluteelemen yang diposisikan:

<div class="relative-parent">
  <div class="hiding-parent">
    <div class="child"></div>
  </div>
</div>

.relative-parent {
  position:relative;
}
.hiding-parent {
  overflow:hidden;
}
.child {
  position:absolute; 
}
Si7ius
sumber
-3

Anda hanya membuat divs seperti ini:

<div style="width:100px; height: 100px; border:1px solid; overflow:hidden; ">
    <br/>
    <div style="position:inherit; width: 200px; height:200px; background:yellow;">
        <br/>
        <div style="position:absolute; width: 500px; height:50px; background:Pink; z-index: 99;">
            <br/>
        </div>
    </div>
</div>

Saya harap kode ini akan membantu Anda :)

rochano
sumber