如何在不需要时隐藏垂直滚动条


95

我有一个包含在div中的textarea,因为我有jquery提示,并希望使用不透明度而不更改边框。有一个可见的垂直滚动条,仅当我在文本字段中键入内容时才希望显示它,并且超出了容器范围。我试过溢出:自动;但不起作用。

文本域:

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

样式:

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

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

Answers:


199

overflow: auto(或overflow-y: auto)是正确的方法。

问题在于您的文本区域比div高。div最终切断了文本框,因此即使看起来它应该在文本比159px其高时开始滚动,也要等到文本比400px文本框的高度高时才开始滚动。

试试这个:http : //jsfiddle.net/G9rfq/1/

我在文本框中设置了overflow:auto,并使文本框的大小与div相同。

另外,我不认为在div内部包含a是有效的label,浏览器会渲染它,但这可能会导致一些时髦的事情发生。此外,您div还没有关闭。


当我们使用-webkit-scrollbar psuedo元素自定义滚动条时,如何使此解决方案起作用。?因为如果溢出是自动伪元素无法正常工作...。我想自定义滚动条并隐藏,然后在不需要时隐藏?
Kpatel1989 2015年

4

overflow: auto;还是overflow: hidden;应该做到


正如我在问题中所说的那样:auto; 不起作用:(
Lukus 2012年

hidden隐藏了滚动条,但是一旦文本通过了div,它就不会显示滚动条,因此无法向下滚动以查看其余文本
Lukus 2012年

我刚刚测试了它,效果很好。你使用的是什么浏览器?
鲍里斯·巴霍夫斯基

我正在使用firefox,但是在IE中隐藏的内容会显示滚动条,无论文本是否通过div,并且自动通过DIV容器后,滚动条均不会显示
Lukus 2012年

尝试添加position: relative;#name div
鲍里斯Bachovski

2

在.css类中添加此类

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

并在div中使用该类。像这儿。

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

我已附加图片,您会看到上面代码的输出 在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.