Saya memiliki 3 level div
:
- (Hijau di bawah) Level teratas
div
denganoverflow: hidden
. Ini karena saya ingin beberapa konten (tidak ditampilkan di sini) di dalam kotak itu untuk dipotong jika melebihi ukuran kotak. - (Merah di bawah) Di dalam ini, saya miliki
div
denganposition: relative
. Satu-satunya penggunaan untuk ini adalah untuk level selanjutnya. - (Dengan warna biru di bawah) Akhirnya
div
saya mengambil dari aliran denganposition: absolute
tetapi saya ingin posisi relatif ke merahdiv
(tidak ke halaman).
Saya ingin memiliki kotak biru dikeluarkan dari aliran dan berkembang di luar kotak hijau, tetapi diposisikan relatif terhadap kotak merah seperti pada:
Namun, dengan kode di bawah ini, saya dapat:
Dan menghapus position: relative
pada kotak merah, sekarang kotak biru diizinkan keluar dari kotak hijau, tetapi tidak diposisikan lagi relatif terhadap kotak merah:
Apakah ada cara untuk:
- Simpan
overflow: hidden
di kotak hijau. - Sudahkah kotak biru membentang di luar kotak hijau dan diposisikan relatif terhadap kotak merah?
Sumber lengkap:
#d1 {
overflow: hidden;
background: #efe;
padding: 5px;
width: 125px;
}
#d2 {
position: relative;
background: #fee;
padding: 2px;
width: 100px;
height: 100px;
}
#d3 {
position: absolute;
top: 10px;
background: #eef;
padding: 2px;
width: 75px;
height: 150px;
}
<br/><br/><br/>
<div id="d1" >
<div id="d2" >
<div id="d3"></div>
</div>
</div>
css
overflow
css-position
avernet
sumber
sumber
position: fixed
akan mengabaikanoverflow:hidden
elemen yang mengandung.Jawaban:
Trik yang berhasil adalah memposisikan kotak # 2 dengan
position: absolute
alih - alihposition: relative
. Kami biasanya meletakkanposition: relative
pada kotak luar (di sini kotak # 2) ketika kami ingin kotak dalam (di sini kotak # 3) denganposition: absolute
harus diposisikan relatif terhadap kotak luar. Tapi ingat: untuk kotak # 3 diposisikan relatif ke kotak # 2, kotak # 2 hanya perlu diposisikan. Dengan perubahan ini, kita mendapatkan:Dan di sini adalah kode lengkap dengan perubahan ini:
sumber
position: static
dan itu bekerja lebih baik untuk sayaposition: static
pada kotak # 2 bukanposition: absolute
.absolute
tidak klip tetapirelative
lakukan?Tidak ada solusi ajaib untuk menampilkan sesuatu di luar wadah tersembunyi yang meluap.
Efek serupa dapat dicapai dengan memiliki div posisi absolut yang cocok dengan ukuran induknya dengan menempatkannya di dalam wadah relatif Anda saat ini (div yang tidak ingin Anda klip harus berada di luar div ini):
Ingatlah bahwa jika Anda hanya perlu klip konten pada sumbu x (yang tampaknya menjadi kasus Anda, karena Anda hanya mengatur lebar div itu), Anda dapat menggunakan
overflow-x: hidden
.sumber
Saya tidak benar-benar melihat cara untuk melakukan apa adanya. Saya pikir Anda mungkin perlu menghapus
overflow:hidden
dari div # 1 dan menambahkan div lain dalam div # 1 (yaitu sebagai saudara kandung untuk div # 2) untuk memegang 'konten' Anda yang tidak ditentukan dan menambahkannya sebagaioverflow:hidden
gantinya. Saya tidak berpikir bahwa overflow bisa (atau seharusnya bisa) ditunggangi.sumber
Jika ada konten lain yang tidak ditampilkan di luar-div (kotak hijau), mengapa tidak ada konten yang dibungkus di dalam div lain, sebut saja
"content"
. Letakkan overflow disembunyikan di dalam-div baru ini, tetapi tetap melimpah terlihat di kotak hijau.Satu-satunya hal yang perlu Anda lakukan adalah Anda harus dipusingkan untuk memastikan bahwa div konten tidak mengganggu posisi kotak merah, tetapi sepertinya Anda harus dapat memperbaikinya dengan sedikit sakit kepala.
sumber