gerekmediğinde dikey kaydırma çubuğu nasıl gizlenir


99

Jquery ipucum olduğu ve sınırı değiştirmeden opaklığı kullanmak istediğim için bir div içinde bulunan bir metin alanım var. Görünür bir dikey kaydırma çubuğu var, bunun yalnızca metin alanına yazarken görüntülenmesini istiyorum ve kabın ötesine geçiyor. Taşmayı denedim: auto; ama çalışmıyor.

Metin alanı:

<label>
    <div id="name">
        <textarea name="message" type="text" id="message"
            title="Enter Message Here"
            rows=9 cols=60 maxlength="2000"></textarea>
    </div>
</label>

Stiller:

#name { 
    border: 1px solid #c810ca;
    width: 270px;
    height:159px;
    overflow: hidden; 
    position: relative;
    }

#message {
    height: 400px;
    width: 235px;
    overflow: hidden;
    position: absolute;
}

Yanıtlar:


204

overflow: auto(veya overflow-y: auto) gitmek için doğru yoldur.

Sorun, metin alanınızın div'inizden daha uzun olmasıdır. Böl, metin kutusunu keser, bu nedenle metin, 159pxmetin kutusunun 400pxyüksekliğinden daha uzun olana kadar, metin daha uzun olduğunda kaydırmaya başlamalı gibi görünse de kaydırmaya başlamaz .

Şunu deneyin: http://jsfiddle.net/G9rfq/1/

Metin kutusunda overflow: auto ayarını yaptım ve metin kutusunu div ile aynı boyutta yaptım.

Ayrıca bir diviç a'ya sahip olmanın geçerli olduğuna inanmıyorum label, tarayıcı onu işleyecektir, ancak bazı garip şeylerin olmasına neden olabilir. Ayrıca divkapalı değilsin.


Kaydırma çubuğunu -webkit-scrollbar psuedo öğesini kullanarak özelleştirdiğimizde bu çözüm nasıl çalışır? ? çünkü eğer taşma otomatik psuedo öğeleri çalışmıyorsa .... Kaydırma çubuğumu özelleştirmek ve gerekmediğinde gizlemek istiyorum?
Kpatel1989

4

overflow: auto;veya overflow: hidden;bence yapmalı.


Sorumda söylediğim gibi overflow: auto; çalışmıyor :(
Lukus

gizli, kaydırma çubuğunu gizler, ancak metinler bölmeyi geçtikten sonra kaydırma çubuğunu göstermez, bu nedenle metnin geri kalanını görmek için aşağı kaydırılamaz
Lukus 05

Daha yeni test ettim ve iyi çalışıyor. Hangi tarayıcıyı kullanıyorsunuz?
Boris Bachovski

firefox kullanıyorum ama IE'de gizli, metin
div'den geçse

Eklemeyi deneyin position: relative;üzerinde#name div
Boris Bachovski

2

Bu sınıfı .css sınıfına ekleyin

.scrol  { 
font: bold 14px Arial; 
border:1px solid black; 
width:100% ; 
color:#616D7E; 
height:20px; 
overflow:scroll; 
overflow-y:scroll;
overflow-x:hidden;
}

ve div içindeki sınıfı kullanın. Burası gibi.

<div> <p class = "scrol" id = "title">-</p></div>

Resim ekledim, yukarıdaki kodun çıkışını görüyorsunuz görüntü açıklamasını buraya girin

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.