Membuat bilah gulir utama selalu terlihat


Jawaban:


333
html {
    overflow: -moz-scrollbars-vertical; 
    overflow-y: scroll;
}

Ini membuat bilah gulir selalu terlihat dan hanya aktif bila diperlukan.

Pembaruan: Jika cara di atas tidak berhasil, gunakan saja ini.

html {
    overflow-y:scroll;
}

3
Apakah Anda tahu versi FF apa yang didukung overflow-y? Seperti yang -moz-scrollbars-verticalsudah usang mendukung overflow-yproperti.
Ionuț G. Stan

Saya pikir Internet Explorer 6.x +, Firefox 1.5+ jika saya ingat dengan benar. Saya telah menggunakan kode di atas dan berfungsi di FF1.5-3.5.1 dan IE6-8 untuk saya.
Corv1nus

2
Apakah ada alternatif untuk "melompat halaman" ketika halaman tertentu di situs Anda terlalu kecil untuk memiliki bilah gulir dan yang lainnya? Atau apakah ini "praktik terbaik"? Saya harus mengakui, saya tidak melihat banyak halaman di web yang tidak memakan satu halaman penuh.
Jess

2
Saya tidak yakin apakah ini praktik terbaik tetapi, memiliki bilah gulir di semua halaman, dan hanya aktif bila perlu, untuk menghindari lompatan halaman biasanya merupakan solusi yang dapat diterima. Saya cenderung lebih suka scrollbar konstan daripada lompatan.
Corv1nus

1
Bagi mereka (seperti saya) yang menemukan gaya htmlsedikit hack-y , perhatikan bahwa Anda dapat menggunakan pemilih struktural semu :rootsebagai ganti html. Lihat: developer.mozilla.org/en-US/docs/Web/CSS/:root
Rounin

31

Pastikan overflow diatur ke "gulir" bukan "otomatis." Dengan mengatakan itu , di OS X Lion, overflow yang diatur ke "scroll" berperilaku lebih seperti auto di scrollbar yang masih hanya akan ditampilkan ketika sedang digunakan. Jadi, jika ada solusi di atas tampaknya tidak berhasil itu mungkin sebabnya.

Inilah yang harus Anda perbaiki:

::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}
::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

Anda dapat mengaturnya dengan gaya jika Anda tidak menyukai default.


1
Benda ini bekerja! Tetapi bagaimana Anda bisa membuatnya hanya pada div tertentu?
Kaya

@ Kaya sama seperti elemen css lainnya. .yourdiv :: - webkit-scrollbar {...}
Kris

@ Kris Hai, terima kasih atas jawabannya, ini contohnya. stackoverflow.com/a/54667091/2637261
Kaya

Mengapa ini digunakan-webkit-appearance: none;
Suraj Jain

Ini bagus! Seharusnya jawaban yang diterima.
Cyberpunker

25

Banyak hal telah berubah dalam beberapa tahun terakhir. Jawaban di atas tidak berlaku lagi dalam semua kasus. Apple mendorong bilah gulir yang menghilang di mana-mana. Safari, Chrome, dan bahkan Firefox di MacO (dan iO) hanya menampilkan scrollbar ketika benar-benar bergulir - Saya tidak tahu tentang Windows / IE saat ini. Namun ada cara-cara non-standar untuk menata bilah gulir di Webkit (yaitu IE yang sudah lama tidak digunakan).


tapi itu menurun anggun di yang baru?
Ben

3
Terima kasih atas poin luar biasa ini pada scrollbar yang menghilang. Bagi saya alasan untuk menjaga scrollbar terlihat adalah untuk menghindari brengsek yang sedikit tetapi sangat mencolok dan sangat menjengkelkan karena konten berubah dari memiliki scroll menjadi tidak. Dengan scrollbar yang menghilang, mereka tidak menyentak tubuh ketika mereka menunjukkan dan menyembunyikannya, jadi tidak masalah bagi saya. Tapi terima kasih untuk poin yang luar biasa ini.
Noitidart

4
Dari sudut pandang UX, sering kali kita ingin bilah gulir terlihat. Per tren saat ini, Jika bilah gulir tidak terlihat, itu adalah langkah tambahan untuk harus "mencoba" daftar yang terlihat untuk lebih banyak dalam daftar. Petunjuk visual tambahan bahwa drop down atau daftar memiliki lebih banyak item di dalamnya tidak diperlukan jika orang melihat scrollbar.
windsurf88

24
html {
    overflow-y: scroll;
}

Itukah yang kamu inginkan?

Sayangnya, Opera 9.64 tampaknya mengabaikan deklarasi CSS itu ketika diterapkan pada HTMLatau BODY, meskipun itu berfungsi untuk elemen tingkat blok lainnya DIV.


13
html {height: 101%;}

Saya menggunakan solusi lintas browser ini (catatan: Saya selalu menggunakan deklarasi DOCTYPE di baris 1, saya tidak tahu apakah itu berfungsi di quirksmode, tidak pernah mengujinya ).

Ini akan selalu menampilkan bilah gulir vertikal AKTIF di setiap halaman, bilah gulir vertikal hanya dapat digulir beberapa piksel.

Ketika konten halaman lebih pendek dari area yang terlihat oleh browser (port tampilan) Anda masih akan melihat scrollbar vertikal aktif, dan itu hanya dapat digulir beberapa piksel.

Jika Anda terobsesi dengan validasi CSS (Saya hanya terobsesi dengan validasi HTML) dengan menggunakan solusi ini, kode CSS Anda juga akan divalidasi untuk W3C karena Anda tidak menggunakan atribut CSS standar seperti -moz-scrollbars-vertical


1
Solusi elegan
Artur Keyan

12

body { height:101%; } akan "memotong" halaman yang lebih besar.

Sebagai gantinya, saya menggunakan:

body { min-height:101%; }

1
Pertanyaan ini ditanyakan 5 tahun yang lalu dan sudah memiliki jawaban yang diterima. Jawaban Anda tidak memberikan jawaban yang lebih baik daripada jawaban yang sudah diterima.
Dipen Shah

18
Jawaban ini sebenarnya memberikan informasi tambahan yang tidak disediakan dalam jawaban lain.
GaTechThomas

2

Saya bisa membuatnya berfungsi dengan menambahkannya ke tag tubuh. Lebih baik untuk saya karena saya tidak punya apa-apa di elemen html.

body {
    overflow-y: scroll;
}

2

Pendekatan alternatif adalah mengatur lebar elemen html ke 100vw. Pada banyak, jika tidak sebagian besar browser, ini meniadakan efek scrollbar pada lebar.

html { width: 100vw; }

0

Pengaturan tinggi hingga 101% adalah solusi saya untuk masalah ini. Halaman Anda tidak akan lagi 'jentik' saat beralih di antara yang melebihi tinggi viewport dan yang tidak.


0
body { 
    min-height: 101vh; 
} 

bekerja yang terbaik untukku


0

Saya melakukan ini:

html {
    margin-left: calc(100vw - 100%);
    margin-right: 0;
}

Maka saya tidak perlu melihat scrollbar abu-abu jelek ketika itu tidak diperlukan.


Pertanyaannya meminta agar selalu terlihat.
Corv1nus
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.