Saya sebenarnya memiliki dua masalah, tetapi mari kita selesaikan masalah utama terlebih dahulu karena saya percaya yang lain lebih mudah diatasi.
Saya memiliki posisi div tetap di sebelah kiri gulir untuk menu. Sisi kanan adalah div standar yang menggulir dengan benar. Masalahnya adalah ketika browser view-port terlalu kecil untuk melihat seluruh menu .. tidak ada cara untuk mendapatkannya untuk menggulir yang dapat saya temukan (setidaknya tidak dengan css). Saya sudah mencoba menggunakan berbagai kelebihan dalam css, tetapi tidak ada yang membuat gulir div. Div yang berisi menu diatur ke min-height: 100% dan posisi: diperbaiki .. kedua atribut yang perlu saya pertahankan.
Div yang berisi menu ada di dalam wrapper div lain yang diposisikan benar-benar dan ketinggian diatur hingga 100%.
Bagaimana saya bisa membuatnya bergulir secara vertikal jika kontennya terlalu tinggi untuk div?
Itu menuntun saya ke masalah lain, bahwa saya tidak ingin menampilkan bilah gulir .. tapi saya pikir saya mungkin sudah memiliki jawaban untuk itu (hanya saja belum berfungsi karena saya tidak bisa mendapatkan div untuk menggulir memulai dengan).
Ada solusi? Mungkin javascript diperlukan? (yang saya tahu sedikit tentang)
dan kode yang relevan yang menyebabkan masalah (karena memposting semuanya di sini terlalu panjang):
.fixed-content {
min-height:100%;
position:fixed;
overflow-y:scroll;
overflow-x:hidden;
}
Juga mencoba menambahkan ketinggian: 100% juga hanya untuk melihat apakah itu masalah tetapi tidak berhasil ... juga tidak tinggi tetap, seperti 600px.
sumber
Jawaban:
Masalah dengan menggunakan
height:100%
adalah bahwa itu akan menjadi 100% dari halaman, bukan 100% dari jendela (seperti yang Anda harapkan). Ini akan menyebabkan masalah yang Anda lihat, karena konten tidak tetap cukup panjang untuk memasukkan konten tetap dengan tinggi 100% tanpa memerlukan bilah gulir. Browser tidak tahu / peduli bahwa Anda tidak dapat benar-benar menggulir bilah itu ke bawah untuk melihatnyaAnda dapat menggunakan
fixed
untuk mencapai apa yang Anda coba lakukan.Garpu biola Anda ini menunjukkan perbaikan saya: http://jsfiddle.net/strider820/84AsW/1/
sumber
Ini adalah kedua perbaikan.
Pertama, mengenai sidebar tetap, Anda harus memberikan ketinggian agar melimpah:
Kode HTML:
Kode CSS:
Contoh langsung: http://jsfiddle.net/RWxGX/3/
Tidak mungkin TIDAK untuk mendapatkan bilah gulir jika konten Anda melebihi ketinggian div. Itu sebabnya saya telah menambahkan kueri media untuk ketinggian layar. Mungkin Anda dapat menyesuaikan gaya Anda untuk ukuran layar pendek sehingga gulir tidak perlu muncul.
Ceria, Ignacio
sumber
Secara umum, bagian tetap harus diatur dengan
width
,height
dantop
,bottom
properti, jika tidak, ia tidak akan mengenali ukuran dan posisinya.Jika kotak yang digunakan adalah anak langsung untuk tubuh dan memiliki tetangga, maka masuk akal untuk memeriksa
z-index
dantop, left
properti, karena mereka bisa tumpang tindih satu sama lain, yang mungkin mempengaruhi mouse Anda melayang saat menggulir konten.Berikut adalah solusi untuk kotak konten (anak
body
tag langsung ) yang umum digunakan bersama dengan navigasi seluler.Semoga ini bisa membantu siapa saja. Terima kasih!
sumber
Solusi di sini tidak bekerja untuk saya karena saya menata komponen reaksi.
Apa yang berhasil meskipun untuk bilah sisi itu
Semoga ini bisa membantu seseorang.
sumber
Meninggalkan jawaban untuk siapa pun yang ingin melakukan sesuatu yang serupa tetapi dalam arah horizontal , seperti yang saya inginkan.
Tweaking @ strider820 jawaban seperti di bawah ini akan melakukan keajaiban:
Itu dia. Juga memeriksa ini komentar mana @train menjelaskan menggunakan
overflow:auto
lebihoverflow:scroll
.sumber