将滚动条放在div外面,自动溢出

时间:2013-04-30 18:10:52

标签: html css

我有一个overflow:auto;的小div,但是当滚动条出现时,它会覆盖很多div。这可以通过使用overflow:scroll;来避免,但是当没有溢出时你会得到难看的褪色滚动条。有没有办法在不使用overflow:scroll;的情况下将滚动条放在div之外?感谢。

这是一个示范jsfiddle

.alphabet{ display:inline-block;
           overflow-y:auto; 
           overflow-x:hidden;
           border:1px solid;
           height:50;
         }

<div class = "alphabet">abcdefgh<br>
                        ijklmnop<br>
                        qrstuvwx
</div>

2 个答案:

答案 0 :(得分:15)

如果可以选择在.alphabet周围使用容器元素,则可以在其上设置垂直滚动。我添加了<hr>来伪造一个始终可见的底部边框,它也不会出现在滚动条下面。

HTML:

<div class="container">
    <div class="alphabet">
        abcdefgh<br />
        abcdefgh<br />
        abcdefgh<br />
        abcdefgh<br />
    </div>
</div>
<hr>

CSS:

.container{
    overflow-y:auto; 
    overflow-x:hidden; 
    height:50px;
    width:100px;
}

.alphabet{          
    width:100%;
    overflow:visible;
    box-sizing:border-box;
    border:1px solid;
    border-bottom:0;
}

hr{
    margin:0;
    height:0;
    width:85px;
    border:0;
    border-bottom:1px solid;
}

内边框:http://jsfiddle.net/Q32gG/1/

如果您实际上并不关心边框内显示的滚动条,则可以放弃<hr>并添加完整边框.container代替http://jsfiddle.net/V3MbV/3/)。

答案 1 :(得分:1)

为什么不使用一些正确的填充,而不是使用和外部滚动条

   .alphabet{ display:inline-block;
               overflow-y:auto; 
               overflow-x:hidden;
               border:1px solid;
               height:50;
               padding-right:15px;
             }

或者,如果您愿意,可以使用em单位来匹配您正在使用的任何大小的字符

padding-right:1em;

PD:顺便说一句,你的例子中有一个拼写错误。这段时间应该是之前应该是.alphabet {