Dengan berikut HTML
danCSS
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
</div>
Bagian dalam div
mengambil seluruh kepala wadah sesuai keinginan. Jika sekarang saya menambahkan yang lain, aliran, konten ke wadah seperti:
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur mollitia maxime facere quae cumque perferendis cum atque quia repellendus rerum eaque quod quibusdam incidunt blanditiis possimus temporibus reiciendis deserunt sequi eveniet necessitatibus
maiores quas assumenda voluptate qui odio laboriosam totam repudiandae? Doloremque dignissimos voluptatibus eveniet rem quasi minus ex cumque esse culpa cupiditate cum architecto! Facilis deleniti unde suscipit minima obcaecati vero ea soluta odio cupiditate
placeat vitae nesciunt quis alias dolorum nemo sint facere. Deleniti itaque incidunt eligendi qui nemo corporis ducimus beatae consequatur est iusto dolorum consequuntur vero debitis saepe voluptatem impedit sint ea numquam quia voluptate quidem.
</div>
Kemudian penampung menggulir sesuai keinginan, namun elemen yang benar-benar diposisikan tidak lagi tertambat ke bagian bawah penampung tetapi berhenti di bagian bawah penampung yang dapat dilihat. Pertanyaanku adalah; adakah cara agar elemen yang benar-benar diposisikan menjadi tinggi gulir lengkap penampungnya tanpa menggunakan JS
?
top: 0;
tidak berfungsi lagi.innerHeight
, itu akan sulit. Sayangnyaposition:fixed
tidak berfungsi di dalam kontainer karena di luar aliran sehingga 'solusi' ini juga tidak akan berhasil :(Jawaban:
Anda perlu membungkus teks dalam sebuah
div
elemen dan menyertakan elemen yang benar-benar diposisikan di dalamnya.Css:
Mengatur posisi div bagian dalam untuk
relative
membuat elemen posisi absolut di dalamnya mendasarkan posisi dan tingginya di atasnya daripada di.container
div, yang memiliki ketinggian tetap. Tanpa bagian dalam, yang diposisikan secara relatifdiv
,.full-height
div akan selalu menghitung dimensi dan posisinya berdasarkan.container
.Tampilkan cuplikan kode
http://jsfiddle.net/M5cTN/
sumber
fill-height
elemen jelas bergulir dengan konten, tidak OP ingin berlabuh? (Dengan mengubah latar belakang biru menjadi gambar latar belakang, Anda dapat melihat apa yang saya maksud ketika saya mengatakan bahwa itu tidak berlabuh jsfiddle.net/M5cTN/82 )position: fixed;
akan menyelesaikan masalah Anda. Sebagai contoh, tinjau penerapan saya atas hamparan area pesan tetap (diisi secara terprogram):Dan di HTML
Ketika
#data
menjadi lebih panjang#mess
dari layar, pertahankan posisinya di layar, sambil#data
menggulir di bawahnya.sumber
transform: translate3d(0,0,0);
pada orang tua akan menyebabkanposition: fixed
menjadi relatif terhadap orang tua. Sumber coderwall.com/p/2wzj-a/…Jadi gaiour benar, tetapi jika Anda mencari item dengan tinggi penuh yang tidak tergulir dengan konten, tetapi sebenarnya adalah tinggi wadah, berikut perbaikannya. Memiliki induk dengan tinggi yang menyebabkan luapan, wadah konten yang memiliki tinggi 100% dan
overflow: scroll
, dan saudara kandung kemudian dapat diposisikan sesuai dengan ukuran induk, bukan ukuran elemen gulir. Ini biola: http://jsfiddle.net/M5cTN/196/dan kode yang relevan:
html:
css:
sumber
Saya mengalami situasi ini dan membuat div tambahan tidak praktis. Saya akhirnya hanya mengatur
full-height
div keheight: 10000%; overflow: hidden;
Jelas bukan solusi terbersih, tetapi ini bekerja sangat cepat.
sumber