我试图将滚动条隐藏在CSS中动态大小的元素中,并允许内容占据滚动条所在的空间。我设法通过在元素右侧添加一些额外的填充来隐藏该栏,将其推出
overflow: hidden
div,但是内容不会扩展以填充滚动条占用的空间。
我不想对滚动条宽度使用任何静态值,因为这会在浏览器之间发生变化,并且某些浏览器(如 Chrome)会在缩放时更改滚动条宽度。
JSFiddle 示例,取消注释以隐藏滚动条。
如果您想要一个可滚动的 div 但没有滚动条,请将其放置在父 div 内。将父 div 设置为溢出隐藏,将内部 div 设置为溢出自动。让父 div 比内部 div 稍微细一些,这样内部 div 的滚动条就不会显示。如果动态创建,只需使用 jQuery 或其他 js 在渲染时设置宽度即可。
.parentDiv {
width: 301px;
height: 450px;
overflow: hidden;
}
.parentDiv .innerDiv {
width: 320px;
height: 450px;
overflow: auto;
}
PS:-我只是把它放在一起来展示效果。请注意,它在 CSS 中设置两个 div 的宽度。这样的效果不需要 JS 或 JQuery,但是动态设置样式规则则需要。或者使用 PHP 并在页面加载/渲染时加载宽度。您可能会研究 CSS 的“calc”,但我不知道不同浏览器对它的支持程度如何。或者 - 对 CSS 使用百分比,只需使父 div 的皮肤比内部 div 的皮肤更薄即可。
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Scrollable Div Test</title>
<meta charset="UTF-8" />
<style>
.parentDiv
{
width: 301px;
height: 450px;
overflow: hidden;
}
.parentDiv .innerDiv
{
width: 320px;
height: 450px;
overflow: auto;
}
</style>
</head>
<body>
<div class="parentDiv"/>
<div class="innerDiv"/>
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
<li>i</li>
<li>j</li>
<li>k</li>
<li>l</li>
<li>m</li>
<li>n</li>
<li>o</li>
<li>p</li>
<li>q</li>
<li>r</li>
<li>s</li>
<li>t</li>
<li>u</li>
<li>v</li>
<li>w</li>
<li>x</li>
<li>y</li>
<li>z</li>
</ul>
</div>
</div>
</body>
</html>
设置溢出:隐藏;在 #scroll 上,但前提是您不想在其中滚动
#scroll {
width: 100%;
height: 100%;
overflow-y: hidden; /*this is the part of the code which make the scroll bar visable*/
background-color: aqua;
/*padding-right: 32px; /* uncomment to remove scrollbar by pushing 32 px right*/
}
我不知道是否有办法在没有JS的情况下做到这一点,但这是我到目前为止的想法
使用JS
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type='text/javascript' src='/js/jquery.mousewheel.min.js'></script>
<script type="text/javascript">
$(function() {
$("#scroll").mousewheel(function(event, delta) {
this.scrollLeft -= (delta * 30);
event.preventDefault();
});
});
</script>
请注意,您需要 JQuery 和一个名为 (jquery-mousewheel) 的 JQuery 插件https://github.com/jquery/jquery-mousewheel
或者你可以试试这个,这是另一种 JS,但这个是纯 JS https://github.com/kamlekar/slim-scroll