Ana kaydırma çubuğunu her zaman görünür yapma


Yanıtlar:


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

Bu, kaydırma çubuğunu her zaman görünür ve yalnızca gerektiğinde etkin hale getirir.

Güncelleme: Yukarıdaki işe yaramazsa, sadece bunu kullanarak olabilir.

html {
    overflow-y:scroll;
}

3
FF'nin hangi sürümünün destek getirdiğine dair bir fikriniz var overflow-ymı? -moz-scrollbars-verticalGöründüğü gibi overflow-ymülkiyet lehine itiraz .
Ionuț G. Stan

Doğru hatırlıyorsam Internet Explorer 6.x +, Firefox 1.5+ düşünüyorum. Yukarıdaki kodu kullanıyorum ve benim için FF1.5-3.5.1 ve IE6-8 çalışır.
Corv1nus

2
Sitenizdeki belirli sayfalar kaydırma çubuğuna sahip olmayacak kadar küçük ve diğerleri ise "sayfa atlama" seçeneğine sahip misiniz? Yoksa bu "en iyi uygulama" mı? İtiraf edeceğim, web'lerde tam sayfa almayan çok fazla sayfa görmüyorum.
Jess

2
Bunun en iyi uygulama olup olmadığından emin değilim, ancak tüm sayfalarda kaydırma çubuklarına sahip olmak ve yalnızca gerektiğinde etkin olarak sayfa atlamasını önlemek için genellikle kabul edilebilir bir çözümdür. Atlama yerine sürekli kaydırma çubuğunu tercih etme eğilimindeyim.
Corv1nus

1
htmlBiraz hack-y tarzı bulanlar (benim gibi) için, :rootyerine yapısal sözde seçici kullanabileceğinizi unutmayın html. Bakınız: developer.mozilla.org/tr-TR/docs/Web/CSS/:root
Rounin

31

Taşmanın "otomatik" değil "kaydırma" olarak ayarlandığından emin olun. Bununla birlikte , OS X Lion'da "kaydırma" olarak ayarlanan taşma, kaydırma çubuklarının yalnızca kullanıldığında yine de görüneceği için otomatik gibi davranır. Yukarıdaki çözümlerden herhangi biri işe yaramıyorsa, nedeni bu olabilir.

Bunu düzeltmek için ihtiyacınız olan şey:

::-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);
}

Varsayılanı beğenmezseniz buna göre stil uygulayabilirsiniz.


1
Bu şey işe yarıyor! Ancak bunu yalnızca belirli bir div'da nasıl yapabilirsiniz?
Zengin

@Herhangi bir css öğesi gibi zengin. .yourdiv :: - webkit-scrollbar {...}
Kris

@Kris Merhaba, cevap için teşekkürler, işte bunun örneği. stackoverflow.com/a/54667091/2637261
Zengin

Bu neden kullanılıyor-webkit-appearance: none;
Jaj Suresi

Bu harika! Kabul edilen cevap olmalı.
Cyberpunker

25

Son yıllarda işler değişti. Yukarıdaki cevaplar artık her durumda geçerli değildir. Apple kaybolan kaydırma çubuklarını her yere itiyor . MacO'larda (ve iO'larda) Safari, Chrome ve hatta Firefox yalnızca gerçekten kaydırma yaparken kaydırma çubuklarını gösterir - Geçerli Windows / IE hakkında bilmiyorum. Ancak Webkit'te kaydırma çubuklarını biçimlendirmenin standart dışı yolları vardır (IE uzun zaman önce düştü).


ama bu yeni olanlarda incelikle bozulur mu?
Ben

3
Kaybolan kaydırma çubuklarındaki bu mükemmel nokta için teşekkürler. Benim için kaydırma çubuğunu görünür tutmanın nedeni, içeriğin kaydırma yapmamaya değişmesinden dolayı hafif ama çok dikkat çeken ve çok sinir bozucu pislikten kaçınmaktı. Kaybolan kaydırma çubukları ile, gösterdikleri ve saklandıkları zaman vücudu sarsmazlar, bu yüzden benim için sorun değil. Ama bu mükemmel nokta için teşekkürler.
Noitidart

4
UX açısından, çoğu zaman kaydırma çubuğunun görünür olmasını istiyoruz. Mevcut trend başına, bir kaydırma çubuğu görünmüyorsa, listede daha fazlası için görünür bir listeyi "denemek" için ek adımdır. Kişilerin bir kaydırma çubuğu görmesi durumunda açılır listenin veya listede daha fazla öğe olduğu ek bir görsel ipucu gerekmez.
windsurf88

24
html {
    overflow-y: scroll;
}

İstediğin bu mu?

Ne yazık ki, Opera 9.64, CSS bildirimini uygulandığında HTMLveya BODYgibi diğer blok düzeyindeki öğeler için çalışmasına rağmen yok sayıyor gibi görünüyor DIV.


13
html {height: 101%;}

Kullandığım bu çapraz tarayıcılar çözümü notu (: o quirksmode çalışır diye hep 1 hattında DOCTYPE bildirimini kullanın Bilmiyorum, bunu test asla ).

Bu, her sayfada her zaman AKTİF dikey kaydırma çubuğu görüntüler , dikey kaydırma çubuğu yalnızca birkaç piksel kaydırılabilir.

Sayfa içeriği tarayıcının görünür alanından (görünüm bağlantı noktası) daha kısa olduğunda, dikey kaydırma çubuğunun etkin olduğunu görürsünüz ve yalnızca birkaç piksel kaydırılabilir.

Bu çözümü kullanarak CSS doğrulamasına takıntılı olmanız durumunda (yalnızca HTML doğrulamasıyla obez oldum), CSS kodunuz W3C için de geçerli olacaktır çünkü -moz-scrollbars-vertical


1
Zarif çözüm
Artur Keyan

12

body { height:101%; } daha büyük sayfaları "kırpacaktır".

Bunun yerine şunu kullanıyorum:

body { min-height:101%; }

1
Bu soru 5 yıl önce soruldu ve zaten kabul edilmiş bir cevabı var. Cevabınız, kabul edilmiş olan cevaptan daha iyi bir cevap vermez.
Dipen Shah

18
Bu cevap aslında diğer cevaplarda bulunmayan ek bilgiler sağlar.
GaTechThomas

2

Bunu vücut etiketine ekleyerek çalıştırabildim. Benim için daha hoş oldu çünkü html elemanında hiçbir şey yok.

body {
    overflow-y: scroll;
}

2

Alternatif bir yaklaşım, html öğesinin genişliğini 100vw olarak ayarlamaktır. Çoğu tarayıcıda olmasa da birçoğunda, bu, kaydırma çubuklarının genişlik üzerindeki etkisini ortadan kaldırır.

html { width: 100vw; }

0

Yüksekliği% 101 olarak ayarlamak, benim sorunumun çözümü. Artık görünüm alanı yüksekliğini aşan ve geçmeyen sayfalar arasında geçiş yaptığınızda sayfalarınız artık 'kaymaz'.


0
body { 
    min-height: 101vh; 
} 

benim için en iyisi


0

Bunu yapıyorum:

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

O zaman gerekmediğinde çirkin gri renkli kaydırma çubuğuna bakmak zorunda değilim.


Soru her zaman görünür olmasını ister.
Corv1nus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.