我有一个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>
答案 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 {