Saya mencari solusi CSS / Javascript untuk masalah pengguliran halaman HTML saya.
Saya memiliki tiga div yang berisi div, header dan div pembungkus,
Saya membutuhkan scrollbar vertikal di div pembungkus, tinggi harus otomatis atau 100% berdasarkan konten.
Header harus diperbaiki, dan saya tidak ingin scrollbar keseluruhan jadi saya berikan overflow:hidden
di tag body,
Saya membutuhkan scrollbar vertikal di div pembungkus saya. Bagaimana cara memperbaikinya?
HTML
<div id="container">
<div class="header"></div>
<div class="wrapper">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus porta tortor sed metus. Nam pretium. Sed tempor. Integer ullamcorper, odio quis porttitor sagittis, nisl erat tincidunt massa, eu eleifend eros nibh sollicitudin est. Nulla dignissim. Mauris sollicitudin, arcu id sagittis placerat, tellus mauris egestas felis, eget interdum mi nibh vel lorem. Aliquam egestas hendrerit massa. Suspendisse sed nunc et lacus feugiat hendrerit. Nam cursus euismod augue. Aenean vehicula nisl eu quam luctus adipiscing. Nunc consequat justo pretium orci. Mauris hendrerit fermentum massa. Aenean consectetuer est ut arcu. Aliquam nisl massa, blandit at, accumsan sed, porta vel, metus. Duis fringilla quam ut eros.</p>
<!-- Lots more paragraphs-->
</div>
</div>
CSS
body{ margin:0; padding:0; overflow:hidden; height:100%}
#container { width:1000px; margin:0 auto;}
.header { width:1000px; height:30px; background-color:#dadada;}
.wrapper{ width:1000px; overflow:scroll; position:relative;}
Silakan lihat JS Fiddle ini
dislpay: fixed
... Saya tidak yakin apa yang Anda coba lakukan.Solusinya adalah menambahkan
height:100%;
ke semua elemen induk.wrapper-div
juga. Begitu:sumber
Jika Anda menambahkan tinggi di
.wrapper
kelas maka gulungan Anda berfungsi, tanpaheight
scroll tidak berfungsi.Coba http://jsfiddle.net/ZcrFr/3/ ini
CSS:
sumber
height:100%
Anda tidak memberikan ketinggian div. Jadi secara otomatis akan meregang ketika lebih banyak konten ditambahkan. Berikan ketinggian tetap dan bilah gulir akan muncul.
sumber
Jika Anda menyetel tinggi statis untuk header, Anda dapat menggunakannya dalam penghitungan ukuran pembungkus Anda.
http://jsfiddle.net/ske5Lqyv/5/
Menggunakan kode contoh Anda, Anda dapat menambahkan CSS ini:
Atau, Anda dapat menggunakan flexbox untuk pendekatan yang lebih dinamis http://jsfiddle.net/19zbs7je/3/
Dan jika Anda ingin menjadi lebih menarik, lihat tanggapan saya untuk pertanyaan ini https://stackoverflow.com/a/52416148/1513083
sumber
Saya mengedit: Fiddle
Memberikan tag html tinggi 100% adalah solusinya. Saya juga menghapus div kontainer. Anda tidak membutuhkannya saat tata letak Anda tetap seperti ini.
sumber
Saya ingin mengomentari @Ionica Bizau, tetapi reputasi saya tidak cukup.
Untuk menjawab pertanyaan Anda tentang kode javascript:
Yang perlu Anda lakukan adalah mendapatkan tinggi elemen induk (dikurangi elemen apa pun yang memakan ruang) dan menerapkannya ke elemen anak.
Jendela catatan dapat diganti dengan ".container" jika jendela itu tidak memiliki anak mengambang atau memiliki perbaikan untuk mendapatkan ketinggian yang benar dihitung. Solusi ini menggunakan jQuery.
sumber
Untuk Angular2 + Material2 + Sidenav, Anda harus melakukan hal berikut:
sumber
overflow:hidden
dicss
dalam kasus material2?dalam kasus saya,
height: 100vh
perbaiki masalah hanya dengan perilaku yang diharapkansumber
Coba ini untuk scrollbar vertikal:
sumber