Tetapkan overflow: hidden;pada tag tubuh seperti ini:
<styletype="text/css">
body {overflow: hidden;}</style>
Kode di atas menyembunyikan bilah gulir horizontal dan vertikal.
Jika Anda hanya ingin menyembunyikan bilah gulir vertikal , gunakan overflow-y:
<styletype="text/css">
body {overflow-y: hidden;}</style>
Dan jika Anda ingin menyembunyikan hanya scrollbar horizontal , gunakan overflow-x:
<styletype="text/css">
body {overflow-x: hidden;}</style>
Catatan: Ini juga akan menonaktifkan fitur gulir. Lihat jawaban di bawah ini jika Anda hanya ingin menyembunyikan bilah gulir, tetapi bukan fitur gulir.
Tidak ada opsi "tidak ada" untuk properti overflow. Opsi yang tersedia meliputi: terlihat, tersembunyi, gulir, otomatis, waris.
Sergiy Sokolenko
1273
Sebenarnya, ini bukan jawaban yang benar: overflow: hidden tidak "menyembunyikan" scrollbar. Ini juga menghentikan fitur gulir pada halaman. Bukan itu yang kami minta.
adriendenat
17
Di Chrome, ketika body overflow diatur ke hiddenpengguliran akan bekerja dengan roda penggulung mouse. Di Firefox, menggulir tidak akan berfungsi dengan roda penggulung mouse, butuh beberapa saat untuk mengetahuinya.
Doug Molineux
13
Saya tidak melihat titik dalam menyatakan bahwa overflow: hiddenmenonaktifkan pengguliran. Jika seseorang ingin menyembunyikan bilah gulir, maka mungkin mereka menganggap kontrol tidak perlu karena tidak ada konten untuk menggulir di tempat pertama . Atau mungkin mereka hanya tidak ingin menggulir semuanya .
BoltClock
39
Bagi saya pernyataan itu benar-benar valid, karena pertanyaannya adalah menyembunyikan bilah gulir , bukan untuk menonaktifkan gulir .
sboisse
976
WebKit mendukung elemen pseudo scrollbar yang dapat disembunyikan dengan aturan standar CSS:
#element::-webkit-scrollbar {display: none;}
Jika Anda ingin semua scrollbar disembunyikan, gunakan
::-webkit-scrollbar {display: none;}
Saya tidak yakin tentang pemulihan - ini berhasil, tetapi mungkin ada cara yang tepat untuk melakukannya:
::-webkit-scrollbar {display: block;}
Tentu saja Anda selalu dapat menggunakan width: 0, yang kemudian dapat dengan mudah dipulihkan width: auto, tetapi saya bukan penggemar penyalahgunaan widthuntuk visibilitas tweak.
Firefox 64 sekarang mendukung properti width-scrollbar eksperimental secara default (63 membutuhkan flag konfigurasi untuk diatur). Untuk menyembunyikan bilah gulir di Firefox 64:
#element {scrollbar-width: none;}
Untuk melihat apakah browser Anda saat ini mendukung elemen pseudo atau scrollbar-width, coba potongan ini:
.content {/* These rules create an artificially confined space, so we get
a scrollbar that we can hide. They are not directly involved in
hiding the scrollbar. */border:1px dashed gray;padding:.5em;white-space: pre-wrap;height:5em;overflow-y: scroll;}.content {/* This is the magic bit for Firefox */scrollbar-width: none;}.content::-webkit-scrollbar {/* This is the magic bit for WebKit */display: none;}
<divclass='content'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu
urna et leo aliquet malesuada ut ac dolor. Fusce non arcu vel ligula
fermentum sodales a quis sapien. Sed imperdiet justo sit amet venenatis
egestas. Integer vitae tempor enim. In dapibus nisl sit amet purus congue
tincidunt. Morbi tincidunt ut eros in rutrum. Sed quam erat, faucibus
vel tempor et, elementum at tortor. Praesent ac libero at arcu eleifend
mollis ut eget sapien. Duis placerat suscipit eros, eu tempor tellus
facilisis a. Vivamus vulputate enim felis, a euismod diam elementum
non. Duis efficitur ac elit non placerat. Integer porta viverra nunc,
sed semper ipsum. Nam laoreet libero lacus.
Sed sit amet tincidunt felis. Sed imperdiet, nunc ut porta elementum,
eros mi egestas nibh, facilisis rutrum sapien dolor quis justo. Quisque
nec magna erat. Phasellus vehicula porttitor nulla et dictum. Sed
tincidunt scelerisque finibus. Maecenas consequat massa aliquam pretium
volutpat. Duis elementum magna vel velit elementum, ut scelerisque
odio faucibus.
</div>
(Perhatikan bahwa ini bukan jawaban yang benar untuk pertanyaan, karena menyembunyikan bilah horizontal juga, tapi itulah yang saya cari ketika Google menunjuk saya ke sini, jadi saya pikir saya akan tetap mempostingnya.)
Apa yang saya cari karena saya benar-benar ingin menyembunyikan scrollbar tetapi elemen-elemennya masih dapat digulir (mis. Tombol atas / bawah)
Mathias
7
ini harus menjadi jawaban terbaik karena solusi lain jangan sampai Anda gulir
nuway
7
Apakah ini mendukung browser lain selain dari webkit? Karena itu tidak berfungsi di mozilla.
Rupam Datta
12
Namun ada permintaan fitur pada pelacak Mozilla. Anda mungkin dapat mempercepat implementasinya dengan memilihnya di sana :)
Peter
3
INI ADALAH JAWABAN YANG BENAR! Karena yang lain hilang. Masalahnya bukan hanya menyembunyikan bilah gulir, tetapi bagaimana limpahan mempengaruhi gaya lain. Saya mengalami masalah yang sama persis di aplikasi kami. Kami TIDAK ingin melimpah otomatis di 99% aplikasi, namun ada bagian bantuan di mana Anda ingin pengguna dapat menggulir ke bawah. Karena body sudah overflow: disembunyikan, satu-satunya yang ingin menangani ini adalah kelas-ng di root, atau terima kasih kepada orang-orang ini, hanya menggunakan beberapa CSS.
Leon Gaban
524
Ya, semacam ..
Ketika Anda mengajukan pertanyaan, "Dapatkah bilah gulir dari browser dihapus dengan cara tertentu, bukan hanya disembunyikan atau disamarkan", semua orang akan mengatakan "Tidak mungkin" karena tidak mungkin untuk menghapus bilah gulir dari semua browser dalam suatu cara yang sesuai dan lintas-kompatibel, dan kemudian ada seluruh argumen kegunaan.
Namun, adalah mungkin untuk mencegah browser dari kebutuhan untuk menghasilkan dan menampilkan scrollbar jika Anda tidak mengizinkan halaman web Anda meluap.
Ini hanya berarti bahwa kita harus secara proaktif menggantikan perilaku yang sama yang biasanya dilakukan browser untuk kita dan memberi tahu browser terima kasih tetapi tidak, terima kasih sobat. Daripada mencoba menghilangkan scrollbar (yang kita semua tahu tidak mungkin), kita dapat menghindari scrolling (layak dilakukan) dan gulir di dalam elemen yang kita buat dan memiliki kontrol lebih besar atas.
Buat div dengan overflow tersembunyi. Deteksi ketika pengguna mencoba menggulir, tetapi tidak dapat karena kami telah menonaktifkan kemampuan browser untuk menggulir dengan overflow: disembunyikan .. dan alih-alih memindahkan konten menggunakan JavaScript saat ini terjadi. Dengan demikian membuat scrolling kita sendiri tanpa scrolling default browser atau menggunakan plugin seperti iScroll .
---
Demi menjadi teliti; semua cara spesifik vendor dalam memanipulasi scroll-bar:
Internet Explorer 5.5+
* Properti ini tidak pernah menjadi bagian dari spesifikasi CSS, juga tidak pernah disetujui atau diawali vendor, tetapi mereka bekerja di Internet Explorer dan Konqueror. Ini juga dapat diatur secara lokal di lembar gaya pengguna untuk setiap aplikasi. Di Internet Explorer Anda menemukannya di bawah tab "Aksesibilitas", di Konqueror di bawah tab "Stylesheets".
body, html {/* These are defaults and can be replaced by hexadecimal color values */
scrollbar-base-color: aqua;
scrollbar-face-color:ThreeDFace;
scrollbar-highlight-color:ThreeDHighlight;
scrollbar-3dlight-color:ThreeDLightShadow;
scrollbar-shadow-color:ThreeDDarkShadow;
scrollbar-darkshadow-color:ThreeDDarkShadow;
scrollbar-track-color:Scrollbar;
scrollbar-arrow-color:ButtonText;}
Pada Internet Explorer 8 properti ini adalah vendor diawali oleh Microsoft, tetapi mereka masih belum pernah disetujui oleh W3C .
Internet Explorer scrolltersedia yang mengatur apakah akan menonaktifkan atau mengaktifkan bilah gulir; itu juga dapat digunakan untuk mendapatkan nilai posisi bilah gulir.
Dengan Microsoft Internet Explorer 6 dan yang lebih baru, ketika Anda menggunakan !DOCTYPEdeklarasi untuk menentukan mode yang sesuai standar, atribut ini berlaku untuk elemen HTML. Ketika modus standar-compliant tidak ditentukan, seperti dengan versi sebelumnya dari Internet Explorer, atribut ini berlaku untuk BODYelemen, TIDAK yangHTML elemen.
Ini juga perlu dicatat bahwa ketika bekerja dengan .NET kelas ScrollBar di System.Windows.Controls.Primitivesdalam kerangka Presentasi bertanggung jawab atas rendering scrollbar.
Ini masing-masing dapat dikombinasikan dengan penyeleksi semu tambahan:
:horizontal - Kelas pseudo horizontal berlaku untuk setiap bilah gulir yang memiliki orientasi horizontal.
:vertical - Kelas pseudo vertikal berlaku untuk setiap bilah gulir yang memiliki orientasi vertikal.
:decrement- Class pseudo-decrement berlaku untuk tombol dan track piece. Ini menunjukkan apakah tombol atau track piece akan menurunkan posisi tampilan ketika digunakan (misalnya, di atas scrollbar vertikal, dibiarkan pada scrollbar horizontal).
:increment- Peningkatan pseudo-class berlaku untuk tombol dan track piece. Ini menunjukkan apakah tombol atau track piece akan meningkatkan posisi tampilan ketika digunakan (mis., Turun di scrollbar vertikal, tepat di scrollbar horizontal).
:start- Kelas pseudo awal berlaku untuk tombol dan lagu. Ini menunjukkan apakah objek ditempatkan sebelum jempol.
:end- Kelas pseudo akhir berlaku untuk tombol dan track piece. Ini menunjukkan apakah objek ditempatkan setelah ibu jari.
:double-button- Kelas pseudo tombol ganda berlaku untuk tombol dan lagu. Ini digunakan untuk mendeteksi apakah suatu tombol adalah bagian dari sepasang tombol yang bersama-sama di ujung scrollbar yang sama. Untuk lagu, ini menunjukkan apakah lagu tersebut berbatasan dengan sepasang tombol.
:single-button- Kelas pseudo tombol tunggal berlaku untuk tombol dan lagu. Ini digunakan untuk mendeteksi apakah sebuah tombol dengan sendirinya di ujung scrollbar. Untuk lagu, ini menunjukkan apakah lagu tersebut berbatasan dengan tombol tunggal.
:no-button - Berlaku untuk melacak bagian dan menunjukkan apakah potongan trek berjalan ke tepi bilah gulir, yaitu, tidak ada tombol di ujung trek.
:corner-present - Berlaku untuk semua bagian bilah gulir dan menunjukkan ada atau tidaknya sudut bilah gulir.
:window-inactive- Berlaku untuk semua bagian bilah gulir dan menunjukkan apakah jendela yang berisi bilah gulir sedang aktif atau tidak. (Dalam nightlies baru-baru ini, kelas pseudo ini sekarang berlaku untuk :: selection juga. Kami berencana untuk memperluasnya agar berfungsi dengan konten apa pun dan mengusulkannya sebagai kelas pseudo standar baru.)
Contoh kombinasi ini
::-webkit-scrollbar-track-piece:start {/* Select the top half (or left half) or scrollbar track individually */}::-webkit-scrollbar-thumb:window-inactive {/* Select the thumb when the browser window isn't in focus */}::-webkit-scrollbar-button:horizontal:decrement:hover {/* Select the down or left scroll button when it's being hovered by the mouse */}
Mozilla memang memiliki beberapa ekstensi untuk memanipulasi bilah gulir, tetapi semuanya disarankan untuk tidak digunakan.
-moz-scrollbars-none Mereka merekomendasikan menggunakan overflow: disembunyikan di tempat ini.
-moz-scrollbars-horizontal Mirip dengan overflow-x
-moz-scrollbars-vertical Mirip dengan overflow-y
-moz-hidden-unscrollableHanya berfungsi secara internal di dalam pengaturan profil pengguna. Nonaktifkan menggulir elemen root XML dan menonaktifkan menggunakan tombol panah dan roda mouse untuk menggulir halaman web.
Sejauh ini saya tidak benar-benar berguna, tetapi perlu dicatat bahwa atribut yang mengontrol apakah scrollbar ditampilkan di Firefox adalah ( tautan referensi ):
Atribut: scrollbar
Ketik: nsIDOMBarProp
Deskripsi: Objek yang mengontrol apakah scrollbar ditampilkan di jendela atau tidak. Atribut ini "dapat diganti" dalam JavaScript. Baca saja
Terakhir, padding seperti sihir.
Seperti yang telah disebutkan sebelumnya dalam beberapa jawaban lain, berikut adalah ilustrasi yang cukup jelas.
Pelajaran sejarah
Hanya karena saya penasaran, saya ingin belajar tentang asal-usul scrollbar, dan ini adalah referensi terbaik yang saya temukan.
The scrollbarBarProp objek adalah anak dari windowobjek dan merupakan elemen antarmuka pengguna yang berisi mekanisme bergulir, atau beberapa konsep antarmuka yang mirip. window.scrollbars.visibleakan kembali truejika bilah gulir terlihat.
API Sejarah juga menyertakan fitur untuk pemulihan gulir pada navigasi halaman untuk mempertahankan posisi gulir pada pemuatan halaman.
window.history.scrollRestoration dapat digunakan untuk memeriksa status restorasi gulir atau mengubah statusnya (menambahkan ="auto"/"manual" . Otomatis adalah nilai default. Mengubahnya menjadi manual berarti Anda sebagai pengembang akan memiliki kepemilikan atas setiap perubahan gulir yang mungkin diperlukan saat pengguna menelusuri riwayat aplikasi Jika perlu, Anda dapat melacak posisi gulir saat mendorong entri riwayat dengan history.pushState ().
Jawaban ini akan berlaku untuk browser yang secara signifikan lebih banyak (yaitu IE) daripada jawaban yang saat ini di-upgrade.
Matt Jensen
Tambahan yang bagus. Sebenarnya menerapkan solusi yang sama hari ini! Mungkin perlu disebutkan bahwa elemen lain harus meluap: disembunyikan;
Matt Jensen
2
Ini adalah jawaban berfitur lengkap yang benar. Saya menjelaskan bahwa jika Anda hanya ingin menghentikan pengguna untuk menggulir, Anda dapat menggunakan aturan overflow. Anda juga dapat menerapkan fitur gulir bawaan sendiri. Jika itu tidak cukup, Anda dapat mengatur properti bilah gulir secara langsung menggunakan aturan yang berbeda untuk browser yang berbeda.
berita singkat
1
sementara ini adalah jawaban yang dipikirkan dengan sangat baik, dan sangat rinci, dan banyak sumber daya terhubung, ada masalah besar bagi pengguna teknologi bantu ketika Anda menonaktifkan gulir dan menggunakan javascript untuk menangani semua pengguliran. Jika Anda tidak juga menetapkan fokus ke elemen setiap kali Anda menggulir untuk pengguna, maka pengguna AT Anda akan sepenuhnya hilang. Selain itu, pengguna Anda sekarang telah kehilangan semua kendali atas apa yang dilihatnya. UX yang sangat buruk untuk mengambil alih pengguliran untuk pengguna Anda.
Cahaya Cemerlang
Firefox Quantum 63.0.1 di MacOS High Sierra, tidak menyembunyikan bilah gulir walaupun dengan aturan 'overflow: -moz-scrollbars-none'. Adakah yang tahu solusi untuk ini? Semua peramban lain tampaknya berfungsi dengan solusi yang disarankan.
Simona Adriani
106
Anda dapat melakukan ini dengan pembungkus divyang memiliki overflow tersembunyi, dan divset bagian dalam auto.
Untuk menghapus divbilah gulir bagian dalam , Anda dapat menariknya keluar dari divviewport luar dengan menerapkan margin negatif ke bagian dalam div. Kemudian oleskan padding yang sama ke div bagian dalam sehingga konten tetap terlihat.
.hide-scroll {
overflow: hidden;}.viewport {
overflow:auto;/* Make sure the inner div is not larger than the container
* so that we have room to scroll.
*/
max-height:100%;/* Pick an arbitrary margin/padding that should be bigger
* than the max width of all the scroll bars across
* the devices you are targeting.
* padding = -margin
*/
margin-right:-100px;
padding-right:100px;}
Ini harus menjadi jawaban yang diterima imo. Satu-satunya hal yang harus saya tambahkan adalah height: inheriteddi .viewportcss.
Helzgate
4
Satu-satunya masalah dengan jawaban ini adalah ruang "mati" yang ditinggalkan oleh scrollbar yang dipindahkan, karena kita sebenarnya tidak tahu lebar scrollbar, untuk menguranginya dari padding.
Frondor
3
Plus, Anda tidak perlu menggunakan nilai tetap untuk padding dan margin. 100%lebih fleksibel dan melakukan pekerjaan.
Frondor
Bekerja di IE11, Operah dan Chrome, belum menguji Firefox. Ini jawaban yang bagus, +1.
Hampir seorang pemula
mengapa -100pxdan 100px??
oldboy
61
Ini berfungsi untuk saya dengan properti CSS sederhana:
.container {-ms-overflow-style: none;// Internet Explorer 10+
scrollbar-width: none;// Firefox}.container::-webkit-scrollbar {
display: none;// Safari and Chrome}
Untuk versi Firefox yang lebih lama, gunakan: overflow: -moz-scrollbars-none;
Sayangnya, ini tidak berfungsi di FireFox 48.0.2 di macOS Sierra. Jika Anda melakukannya overflow: -moz-scrollbars-none;maka Anda berhasil menghapus scrollbar, tetapi Anda juga menghapus kemampuan untuk menggulir. Anda mungkin juga mengatur overflow: hiddenke .container.
Saya telah memperbarui jawaban saya dengan dukungan terbaru untuk Firefox :)
Hristo Eftimov
56
Inilah solusi saya, yang secara teoritis mencakup semua browser modern:
html {
scrollbar-width: none;/* For Firefox */-ms-overflow-style: none;/* For Internet Explorer and Edge */}
html::-webkit-scrollbar {
width:0px;/* For Chrome, Safari, and Opera */}
html dapat diganti dengan elemen apa pun yang ingin Anda sembunyikan di scrollbar.
Catatan : Saya telah membaca 19 jawaban lainnya untuk melihat apakah kode yang saya posting sudah tercakup, dan sepertinya tidak ada satu jawaban yang meringkas situasi seperti yang terjadi pada 2019, meskipun banyak dari mereka masuk ke detail yang sangat baik. Mohon maaf jika ini telah dikatakan oleh orang lain dan saya melewatkannya.
Bekerja untuk saya di chrome dan firefox, belum menguji IE atau browser lainnya. jsfiddle.net/8xtfk729
Ben Davis
1
Pada chrome (setidaknya v54), ini menonaktifkan pengguliran melalui roda gulir untuk beberapa alasan. Gulir melalui tombol panah, home / end / pg bawah / pg atas, sentuh film, dan klik mouse 3 dan seret masih berfungsi
House3272
Jawaban ini sah, benar-benar berfungsi dan tampaknya berfungsi di seluruh browser.
Sam
Itu menyembunyikan seluruh div di pihak saya
Jonny
16
Jika Anda mencari solusi untuk menyembunyikan bilah gulir untuk perangkat seluler, ikuti jawaban Peter !
Ini jsfiddle , yang menggunakan solusi di bawah ini untuk menyembunyikan scrollbar horizontal.
Itu diuji pada tablet Samsung dengan Android 4.0.4 (Ice Cream Sandwich, baik di browser asli dan Chrome) dan pada iPad dengan iOS 6 (baik di Safari dan Chrome).
Ini adalah jawaban yang benar dan harus menjadi yang pertama. Segala sesuatu di atas ini tidak menjawab pertanyaan yang ada. OP tidak meminta scroll dinonaktifkan, dia ingin menyembunyikan scrollbar.
/* Make parent invisible */#parent {
visibility: hidden;
overflow: scroll;}/* Safari and Chrome specific style. Don't need to make parent invisible, because we can style WebKit scrollbars */#parent:not(*:root) {
visibility: visible;}/* Make Safari and Chrome scrollbar invisible */#parent::-webkit-scrollbar {
visibility: hidden;}/* Make the child visible */#child {
visibility: visible;}
penjelasan tentang bagaimana cara kerjanya akan dihargai - bermain dengan visibilitas orang tua / anak untuk menyembunyikan bilah gulir itu mengerikan
JackyJohnson
1
@believesInSanta Saya menambahkan komentar dan codepen untuk menjelaskan lebih baik. Saya tidak setuju dengan penilaian Anda bahwa bermain dengan visibilitas adalah cara yang mengerikan untuk menyembunyikan bilah gulir. Saya mengerti bahwa ini adalah peretasan, tetapi cara yang tepat untuk mencapai efek ini adalah jika semua browser mendukung cara untuk gaya scrollbar secara terpisah seperti chrome dan safari memungkinkan.
Blake Plumb
2
Saya baru saja jatuh cinta dengan solusi Anda. Ini berfungsi sempurna (digunakan dalam aplikasi yang dirancang untuk digunakan oleh browser modern). Terima kasih banyak!
Maxime Lafarie
7
Jika Anda ingin menggulir agar berfungsi, sebelum menyembunyikan bilah gulir, pertimbangkan untuk mengaturnya. Versi modern OS X dan OS seluler memiliki bilah gulir yang, walaupun tidak praktis untuk dipegang dengan mouse, cukup indah dan netral.
Untuk menyembunyikan scrollbar, teknik oleh John Kurlak bekerja dengan baik kecuali untuk meninggalkan pengguna Firefox yang tidak memiliki touchpad tanpa cara untuk menggulir kecuali mereka memiliki mouse dengan roda, yang mungkin mereka lakukan, tetapi bahkan kemudian mereka biasanya hanya dapat menggulir secara vertikal .
Teknik John menggunakan tiga elemen:
Elemen luar untuk menutupi scrollbar.
Elemen tengah untuk memiliki scrollbar.
Dan elemen konten untuk mengatur ukuran elemen tengah dan membuatnya memiliki scrollbar.
Harus dimungkinkan untuk mengatur ukuran elemen luar dan konten yang sama yang menghilangkan penggunaan persentase, tapi saya tidak bisa memikirkan hal lain yang tidak akan bekerja dengan tweaker yang tepat.
Kekhawatiran terbesar saya adalah apakah semua versi browser mengatur bilah gulir untuk membuat konten yang meluap terlihat. Saya telah menguji di browser saat ini, tetapi tidak pada browser yang lebih lama.
%size {// set width and height}.outer {// mask scrollbars of child
overflow: hidden;// set mask size@extend%size;// has absolutely positioned child
position: relative;}.middle {// always have scrollbars.// don't use auto, it leaves vertical scrollbar showing
overflow: scroll;// without absolute, the vertical scrollbar shows
position: absolute;}// prevent text selection from revealing scrollbar, which it only does on// some webkit based browsers..middle::-webkit-scrollbar {
display: none;}.content {// push scrollbars behind mask@extend%size;}
Pengujian
OS X adalah 10.6.8. Windows adalah Windows 7.
Firefox 32.0 Scrollbars disembunyikan. Tombol panah tidak menggulir, bahkan setelah mengklik untuk fokus, tetapi roda mouse dan dua jari di trackpad dapat melakukannya. OS X dan Windows.
Chrome 37.0 Scrollbars disembunyikan. Tombol panah berfungsi setelah mengklik untuk fokus. Roda mouse dan trackpad berfungsi. OS X dan Windows.
Internet Explorer 11 Scrollbars disembunyikan. Tombol panah berfungsi setelah mengklik untuk fokus. Roda mouse berfungsi. Windows.
Safari 5.1.10 Scrollbars disembunyikan. Tombol panah berfungsi setelah mengklik untuk fokus. Roda mouse dan trackpad berfungsi. OS X.
Android 4.4.4 dan 4.1.2. Scrollbar disembunyikan. Pekerjaan gulir sentuh. Mencoba di Chrome 37.0, Firefox 32.0, dan HTMLViewer di 4.4.4 (apa pun itu). Di HTMLViewer, halaman adalah ukuran konten yang di-mask dan bisa digulir juga! Menggulir berinteraksi dapat diterima dengan zoom halaman.
Catatan yang tidak terkait (sejauh pertanyaannya). Dalam hal ini, Anda harus menggunakan @extend versus @include. Jadi alih-alih @mixin{}, Anda akan melakukannya %size{}di penyeleksi css, panggil @extend %size;. Mixin biasanya digunakan ketika Anda menarik variabel untuk mengembalikan hasil. Placeholder (alias @extend) dimaksudkan untuk kode berulang sederhana seperti ini - di mana tidak ada "fungsi" diperlukan.
Mike Barwick
1
Saya diedit untuk menggunakan @extend. Hasilnya mungkin kurang dimengerti oleh orang-orang yang tidak tahu SCSS, tetapi cukup baik.
Seth W. Klein
6
Saya hanya berpikir saya akan menunjukkan kepada orang lain yang membaca pertanyaan ini bahwa pengaturan overflow: hidden(atau overflow-y) padabody elemen tidak menyembunyikan scrollbar untuk saya.
Saya tidak ingat persis sejak beberapa bulan yang lalu, tetapi saya percaya pengaturan overflow pada tubuh berfungsi di Chrome, tetapi tidak pada Firefox (atau sebaliknya). Namun, menggunakan tag HTML bisa digunakan untuk keduanya.
Brad Azevedo
Dari memori ini mungkin ada perbedaan mode kebiasaan.
thomasrutter
5
Saya menulis versi WebKit dengan beberapa opsi seperti sembunyikan otomatis , versi kecil , gulir -y saja , atau hanya-x :
Scrolljacking berfungsi, tetapi hampir selalu merupakan pengalaman pengguna yang buruk.
Brandon Anzaldi
1
sementara ini dimungkinkan, dengan contoh yang bagus, ada masalah besar bagi pengguna teknologi bantu ketika Anda menonaktifkan gulir dan menggunakan javascript untuk menangani pengguliran. Jika Anda tidak juga menetapkan fokus ke elemen setiap kali Anda menggulir untuk pengguna, maka pengguna AT Anda akan sepenuhnya hilang. Selain itu, setiap pengguna kini telah kehilangan semua kendali atas apa yang dilihatnya. UX yang sangat buruk untuk mengambil alih pengguliran untuk pengguna Anda. Selain roda mouse, Anda juga harus menangani tombol naik / turun, rotor pembaca layar, klik mouse, dan kontrol touchpad. Ini menjadi sulit bagi pengembang dan mengerikan bagi pengguna.
ShiningLight
2
Saya yakin Anda dapat memanipulasinya dengan overflowatribut CSS, tetapi mereka memiliki dukungan browser yang terbatas. Satu sumber mengatakan itu Internet Explorer 5 (dan lebih baru), Firefox 1.5 (dan lebih baru), dan Safari 3 (dan lebih baru) - mungkin cukup untuk keperluan Anda.
Tautan yang bagus. Sangat menyenangkan mengetahui bagaimana hasilnya di multi browser. Sayangnya angka untuk tangkapan layar dari hasil yang selesai rusak
Chetabahana
-1
Saya mencoba segalanya dan yang paling berhasil untuk solusi saya adalah selalu memiliki tampilan scrollbar vertikal, dan kemudian menambahkan beberapa margin negatif untuk menyembunyikannya.
Jawaban:
Tetapkan
overflow: hidden;
pada tag tubuh seperti ini:Kode di atas menyembunyikan bilah gulir horizontal dan vertikal.
Jika Anda hanya ingin menyembunyikan bilah gulir vertikal , gunakan
overflow-y
:Dan jika Anda ingin menyembunyikan hanya scrollbar horizontal , gunakan
overflow-x
:Catatan: Ini juga akan menonaktifkan fitur gulir. Lihat jawaban di bawah ini jika Anda hanya ingin menyembunyikan bilah gulir, tetapi bukan fitur gulir.
sumber
hidden
pengguliran akan bekerja dengan roda penggulung mouse. Di Firefox, menggulir tidak akan berfungsi dengan roda penggulung mouse, butuh beberapa saat untuk mengetahuinya.overflow: hidden
menonaktifkan pengguliran. Jika seseorang ingin menyembunyikan bilah gulir, maka mungkin mereka menganggap kontrol tidak perlu karena tidak ada konten untuk menggulir di tempat pertama . Atau mungkin mereka hanya tidak ingin menggulir semuanya .WebKit mendukung elemen pseudo scrollbar yang dapat disembunyikan dengan aturan standar CSS:
Jika Anda ingin semua scrollbar disembunyikan, gunakan
Saya tidak yakin tentang pemulihan - ini berhasil, tetapi mungkin ada cara yang tepat untuk melakukannya:
Tentu saja Anda selalu dapat menggunakan
width: 0
, yang kemudian dapat dengan mudah dipulihkanwidth: auto
, tetapi saya bukan penggemar penyalahgunaanwidth
untuk visibilitas tweak.Firefox 64 sekarang mendukung properti width-scrollbar eksperimental secara default (63 membutuhkan flag konfigurasi untuk diatur). Untuk menyembunyikan bilah gulir di Firefox 64:
Untuk melihat apakah browser Anda saat ini mendukung elemen pseudo atau
scrollbar-width
, coba potongan ini:Tampilkan cuplikan kode
(Perhatikan bahwa ini bukan jawaban yang benar untuk pertanyaan, karena menyembunyikan bilah horizontal juga, tapi itulah yang saya cari ketika Google menunjuk saya ke sini, jadi saya pikir saya akan tetap mempostingnya.)
sumber
Ya, semacam ..
Ketika Anda mengajukan pertanyaan, "Dapatkah bilah gulir dari browser dihapus dengan cara tertentu, bukan hanya disembunyikan atau disamarkan", semua orang akan mengatakan "Tidak mungkin" karena tidak mungkin untuk menghapus bilah gulir dari semua browser dalam suatu cara yang sesuai dan lintas-kompatibel, dan kemudian ada seluruh argumen kegunaan.
Namun, adalah mungkin untuk mencegah browser dari kebutuhan untuk menghasilkan dan menampilkan scrollbar jika Anda tidak mengizinkan halaman web Anda meluap.
Ini hanya berarti bahwa kita harus secara proaktif menggantikan perilaku yang sama yang biasanya dilakukan browser untuk kita dan memberi tahu browser terima kasih tetapi tidak, terima kasih sobat. Daripada mencoba menghilangkan scrollbar (yang kita semua tahu tidak mungkin), kita dapat menghindari scrolling (layak dilakukan) dan gulir di dalam elemen yang kita buat dan memiliki kontrol lebih besar atas.
Buat div dengan overflow tersembunyi. Deteksi ketika pengguna mencoba menggulir, tetapi tidak dapat karena kami telah menonaktifkan kemampuan browser untuk menggulir dengan overflow: disembunyikan .. dan alih-alih memindahkan konten menggunakan JavaScript saat ini terjadi. Dengan demikian membuat scrolling kita sendiri tanpa scrolling default browser atau menggunakan plugin seperti iScroll .
---
Demi menjadi teliti; semua cara spesifik vendor dalam memanipulasi scroll-bar:
Internet Explorer 5.5+
* Properti ini tidak pernah menjadi bagian dari spesifikasi CSS, juga tidak pernah disetujui atau diawali vendor, tetapi mereka bekerja di Internet Explorer dan Konqueror. Ini juga dapat diatur secara lokal di lembar gaya pengguna untuk setiap aplikasi. Di Internet Explorer Anda menemukannya di bawah tab "Aksesibilitas", di Konqueror di bawah tab "Stylesheets".
Pada Internet Explorer 8 properti ini adalah vendor diawali oleh Microsoft, tetapi mereka masih belum pernah disetujui oleh W3C .
Rincian lebih lanjut tentang Internet Explorer
Internet Explorer
scroll
tersedia yang mengatur apakah akan menonaktifkan atau mengaktifkan bilah gulir; itu juga dapat digunakan untuk mendapatkan nilai posisi bilah gulir.Dengan Microsoft Internet Explorer 6 dan yang lebih baru, ketika Anda menggunakan
!DOCTYPE
deklarasi untuk menentukan mode yang sesuai standar, atribut ini berlaku untuk elemen HTML. Ketika modus standar-compliant tidak ditentukan, seperti dengan versi sebelumnya dari Internet Explorer, atribut ini berlaku untukBODY
elemen, TIDAK yangHTML
elemen.Ini juga perlu dicatat bahwa ketika bekerja dengan .NET kelas ScrollBar di
System.Windows.Controls.Primitives
dalam kerangka Presentasi bertanggung jawab atas rendering scrollbar.http://msdn.microsoft.com/en-us/library/ie/ms534393(v=vs.85).aspx
WebKit
Ekstensi WebKit yang terkait dengan kustomisasi scroll-bar adalah:
Ini masing-masing dapat dikombinasikan dengan penyeleksi semu tambahan:
:horizontal
- Kelas pseudo horizontal berlaku untuk setiap bilah gulir yang memiliki orientasi horizontal.:vertical
- Kelas pseudo vertikal berlaku untuk setiap bilah gulir yang memiliki orientasi vertikal.:decrement
- Class pseudo-decrement berlaku untuk tombol dan track piece. Ini menunjukkan apakah tombol atau track piece akan menurunkan posisi tampilan ketika digunakan (misalnya, di atas scrollbar vertikal, dibiarkan pada scrollbar horizontal).:increment
- Peningkatan pseudo-class berlaku untuk tombol dan track piece. Ini menunjukkan apakah tombol atau track piece akan meningkatkan posisi tampilan ketika digunakan (mis., Turun di scrollbar vertikal, tepat di scrollbar horizontal).:start
- Kelas pseudo awal berlaku untuk tombol dan lagu. Ini menunjukkan apakah objek ditempatkan sebelum jempol.:end
- Kelas pseudo akhir berlaku untuk tombol dan track piece. Ini menunjukkan apakah objek ditempatkan setelah ibu jari.:double-button
- Kelas pseudo tombol ganda berlaku untuk tombol dan lagu. Ini digunakan untuk mendeteksi apakah suatu tombol adalah bagian dari sepasang tombol yang bersama-sama di ujung scrollbar yang sama. Untuk lagu, ini menunjukkan apakah lagu tersebut berbatasan dengan sepasang tombol.:single-button
- Kelas pseudo tombol tunggal berlaku untuk tombol dan lagu. Ini digunakan untuk mendeteksi apakah sebuah tombol dengan sendirinya di ujung scrollbar. Untuk lagu, ini menunjukkan apakah lagu tersebut berbatasan dengan tombol tunggal.:no-button
- Berlaku untuk melacak bagian dan menunjukkan apakah potongan trek berjalan ke tepi bilah gulir, yaitu, tidak ada tombol di ujung trek.:corner-present
- Berlaku untuk semua bagian bilah gulir dan menunjukkan ada atau tidaknya sudut bilah gulir.:window-inactive
- Berlaku untuk semua bagian bilah gulir dan menunjukkan apakah jendela yang berisi bilah gulir sedang aktif atau tidak. (Dalam nightlies baru-baru ini, kelas pseudo ini sekarang berlaku untuk :: selection juga. Kami berencana untuk memperluasnya agar berfungsi dengan konten apa pun dan mengusulkannya sebagai kelas pseudo standar baru.)Contoh kombinasi ini
Rincian lebih lanjut tentang Chrome
Mozilla
Mozilla memang memiliki beberapa ekstensi untuk memanipulasi bilah gulir, tetapi semuanya disarankan untuk tidak digunakan.
-moz-scrollbars-none
Mereka merekomendasikan menggunakan overflow: disembunyikan di tempat ini.-moz-scrollbars-horizontal
Mirip dengan overflow-x-moz-scrollbars-vertical
Mirip dengan overflow-y-moz-hidden-unscrollable
Hanya berfungsi secara internal di dalam pengaturan profil pengguna. Nonaktifkan menggulir elemen root XML dan menonaktifkan menggunakan tombol panah dan roda mouse untuk menggulir halaman web.Dokumen Pengembang Mozilla di 'Overflow'
Rincian lebih lanjut tentang Mozilla
Sejauh ini saya tidak benar-benar berguna, tetapi perlu dicatat bahwa atribut yang mengontrol apakah scrollbar ditampilkan di Firefox adalah ( tautan referensi ):
Terakhir, padding seperti sihir.
Seperti yang telah disebutkan sebelumnya dalam beberapa jawaban lain, berikut adalah ilustrasi yang cukup jelas.
Pelajaran sejarah
Hanya karena saya penasaran, saya ingin belajar tentang asal-usul scrollbar, dan ini adalah referensi terbaik yang saya temukan.
Lain-lain
Dalam konsep spesifikasi HTML5,
seamless
atribut didefinisikan untuk mencegah bilah gulir muncul di iFrames sehingga mereka dapat dicampur dengan konten di sekitarnya pada halaman . Padahal elemen ini tidak muncul di revisi terbaru.The
scrollbar
BarProp objek adalah anak dariwindow
objek dan merupakan elemen antarmuka pengguna yang berisi mekanisme bergulir, atau beberapa konsep antarmuka yang mirip.window.scrollbars.visible
akan kembalitrue
jika bilah gulir terlihat.API Sejarah juga menyertakan fitur untuk pemulihan gulir pada navigasi halaman untuk mempertahankan posisi gulir pada pemuatan halaman.
window.history.scrollRestoration
dapat digunakan untuk memeriksa status restorasi gulir atau mengubah statusnya (menambahkan="auto"/"manual"
. Otomatis adalah nilai default. Mengubahnya menjadi manual berarti Anda sebagai pengembang akan memiliki kepemilikan atas setiap perubahan gulir yang mungkin diperlukan saat pengguna menelusuri riwayat aplikasi Jika perlu, Anda dapat melacak posisi gulir saat mendorong entri riwayat dengan history.pushState ().---
Bacaan lebih lanjut:
Contohnya
sumber
Anda dapat melakukan ini dengan pembungkus
div
yang memiliki overflow tersembunyi, dandiv
set bagian dalamauto
.Untuk menghapus
div
bilah gulir bagian dalam , Anda dapat menariknya keluar daridiv
viewport luar dengan menerapkan margin negatif ke bagian dalamdiv
. Kemudian oleskan padding yang sama ke div bagian dalam sehingga konten tetap terlihat.JSFiddle
HTML
CSS
sumber
height: inherited
di.viewport
css.100%
lebih fleksibel dan melakukan pekerjaan.-100px
dan100px
??Ini berfungsi untuk saya dengan properti CSS sederhana:
Untuk versi Firefox yang lebih lama, gunakan:
overflow: -moz-scrollbars-none;
sumber
overflow: -moz-scrollbars-none;
maka Anda berhasil menghapus scrollbar, tetapi Anda juga menghapus kemampuan untuk menggulir. Anda mungkin juga mengaturoverflow: hidden
ke.container
.-moz-scrollbars-none
: "Ini adalah API usang dan tidak lagi dijamin berfungsi."Inilah solusi saya, yang secara teoritis mencakup semua browser modern:
html
dapat diganti dengan elemen apa pun yang ingin Anda sembunyikan di scrollbar.Catatan : Saya telah membaca 19 jawaban lainnya untuk melihat apakah kode yang saya posting sudah tercakup, dan sepertinya tidak ada satu jawaban yang meringkas situasi seperti yang terjadi pada 2019, meskipun banyak dari mereka masuk ke detail yang sangat baik. Mohon maaf jika ini telah dikatakan oleh orang lain dan saya melewatkannya.
sumber
Saya pikir saya menemukan solusi untuk kalian jika Anda masih tertarik. Ini adalah minggu pertamaku, tapi itu berhasil untukku ...
sumber
Jika Anda mencari solusi untuk menyembunyikan bilah gulir untuk perangkat seluler, ikuti jawaban Peter !
Ini jsfiddle , yang menggunakan solusi di bawah ini untuk menyembunyikan scrollbar horizontal.
Itu diuji pada tablet Samsung dengan Android 4.0.4 (Ice Cream Sandwich, baik di browser asli dan Chrome) dan pada iPad dengan iOS 6 (baik di Safari dan Chrome).
sumber
Gunakan
propertiCSS:overflow
Berikut ini beberapa contoh lainnya:
sumber
Seperti yang sudah dikatakan orang lain, gunakan CSS
overflow
.Tetapi jika Anda masih ingin pengguna dapat menggulir konten itu (tanpa scrollbar terlihat) Anda harus menggunakan JavaScript.
Se jawaban saya di sini untuk solusi: Sembunyikan scrollbar sementara masih bisa gulir dengan mouse / keyboard
sumber
Selain jawaban Peter:
Ini akan bekerja sama untuk Internet Explorer 10:
sumber
Pendekatan lintas peramban untuk menyembunyikan bilah gulir.
Itu diuji pada Edge, Chrome, Firefox, dan Safari
Sembunyikan bilah gulir saat masih dapat menggulir dengan roda mouse!
Codepen
sumber
Jika Anda ingin menggulir agar berfungsi, sebelum menyembunyikan bilah gulir, pertimbangkan untuk mengaturnya. Versi modern OS X dan OS seluler memiliki bilah gulir yang, walaupun tidak praktis untuk dipegang dengan mouse, cukup indah dan netral.
Untuk menyembunyikan scrollbar, teknik oleh John Kurlak bekerja dengan baik kecuali untuk meninggalkan pengguna Firefox yang tidak memiliki touchpad tanpa cara untuk menggulir kecuali mereka memiliki mouse dengan roda, yang mungkin mereka lakukan, tetapi bahkan kemudian mereka biasanya hanya dapat menggulir secara vertikal .
Teknik John menggunakan tiga elemen:
Harus dimungkinkan untuk mengatur ukuran elemen luar dan konten yang sama yang menghilangkan penggunaan persentase, tapi saya tidak bisa memikirkan hal lain yang tidak akan bekerja dengan tweaker yang tepat.
Kekhawatiran terbesar saya adalah apakah semua versi browser mengatur bilah gulir untuk membuat konten yang meluap terlihat. Saya telah menguji di browser saat ini, tetapi tidak pada browser yang lebih lama.
Maafkan SASS saya ; P
Pengujian
OS X adalah 10.6.8. Windows adalah Windows 7.
sumber
@mixin{}
, Anda akan melakukannya%size{}
di penyeleksi css, panggil@extend %size;
. Mixin biasanya digunakan ketika Anda menarik variabel untuk mengembalikan hasil. Placeholder (alias @extend) dimaksudkan untuk kode berulang sederhana seperti ini - di mana tidak ada "fungsi" diperlukan.Saya hanya berpikir saya akan menunjukkan kepada orang lain yang membaca pertanyaan ini bahwa pengaturan
overflow: hidden
(atau overflow-y) padabody
elemen tidak menyembunyikan scrollbar untuk saya.Saya harus menggunakan
html
elemen.sumber
Saya menulis versi WebKit dengan beberapa opsi seperti sembunyikan otomatis , versi kecil , gulir -y saja , atau hanya-x :
http://codepen.io/hicTech/pen/KmKrjb
sumber
Salin kode CSS ini ke kode pelanggan untuk menyembunyikan bilah gulir:
sumber
HTML saya seperti ini:
Tambahkan ini ke
div
tempat Anda ingin menyembunyikan scrollbar:Dan tambahkan ini ke wadah
sumber
Untuk menonaktifkan bilah gulir vertikal, cukup tambahkan
overflow-y:hidden;
.Temukan lebih banyak tentang itu: melimpah .
sumber
Jawaban saya akan bergulir bahkan ketika
overflow:hidden;
, menggunakan jQuery:Misalnya, gulir secara horizontal dengan roda mouse:
sumber
Saya yakin Anda dapat memanipulasinya dengan
overflow
atribut CSS, tetapi mereka memiliki dukungan browser yang terbatas. Satu sumber mengatakan itu Internet Explorer 5 (dan lebih baru), Firefox 1.5 (dan lebih baru), dan Safari 3 (dan lebih baru) - mungkin cukup untuk keperluan Anda.Menggulir, Menggulir, Menggulir memiliki diskusi yang baik.
sumber
Saya mencoba segalanya dan yang paling berhasil untuk solusi saya adalah selalu memiliki tampilan scrollbar vertikal, dan kemudian menambahkan beberapa margin negatif untuk menyembunyikannya.
sumber