如何用css控制浏览器滚动条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用css控制浏览器滚动条相关的知识,希望对你有一定的参考价值。

用CSS控制滚动条样式
1,Overflow内容溢出时的设置
overflow 水平及垂直方向内容溢出时的设置
overflow-x 水平方向内容溢出时的设置
overflow-y 垂直方向内容溢出时的设置
以上三个属性设置的值为visible、scroll、hidden、auto
visible 默认值。使用该值时,无论设置的"width"和"height"的值是多少,其中的内容无论是否超出范围都将被强制显示。
hidden 效果与visible相反。任何超出"width"和"height"的内容都会不可见。
scroll 无论内容是否超越范围,都将显示滚动条。 auto 当内容超出范围时,显示滚动条,否则不显示。
应用:
没有水平滚动条:
<div style="overflow-x:hidden">test</div>
没有垂直滚动条 :
<div style="overflow-y:hidden">test</div>
没有滚动条 :
<div style="overflow-x:hidden;overflow-y:hidden" 或
style="overflow:hidden">test</div>
自动显示滚动条:
<div style="height:100px;width:100px;overflow:auto;">test</div>
2,自己定义滚动条的颜色
我们一般默认的滚动条样式如下左图,右图是放大了1600倍的样子,我们可以看到滚动条有几种言责组合的,我给他们标了7个号,分别注释在下面的css代码的后面了,注意css的注释代码是放在两个斜杠内的两个星号之间,如:/*这里放注释的代码*/
Body
scrollbar-arrow-color: #f4ae21; /*图6,三角箭头的颜色*/
scrollbar-face-color: #333; /*图5,立体滚动条的颜色*/
scrollbar-3dlight-color: #666; /*图1,立体滚动条亮边的颜色*/
scrollbar-highlight-color: #666; /*图2,滚动条空白部分的颜色*/
scrollbar-shadow-color: #999; /*图3,立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: #666; /*图4,立体滚动条强阴影的颜色*/
scrollbar-track-color: #666; /*图7,立体滚动条背景颜色*/
scrollbar-base-color:#f8f8f8; /*滚动条的基本颜色*/
Cursor:url(mouse.cur); /*自定义个性鼠标*/
以上2项适用与<body>、<div>、<textarea>、<iframe>
参考技术A 具体自己去更改样式会比较麻烦。你可以在网上搜一下jQuery插件。写好的直接套用就可以了。在百度搜索关键词“jquery控制滚动条样式”出来一大片。自己选择吧。本回答被提问者采纳 参考技术B 为什么要控制滚动条,让其显示和不显示?还是设置样式

如何用 CSS 改变滚动条的位置?

【中文标题】如何用 CSS 改变滚动条的位置?【英文标题】:How to change scroll bar position with CSS? 【发布时间】:2013-09-30 14:53:20 【问题描述】:

有没有办法用 CSS 改变滚动条的位置从左到右或从下到上?

【问题讨论】:

浏览器的滚动条? 试试这个插件jscrollpane.kelvinluck.com这个jquery插件可以让你在滚动条上自定义css。 我唯一能想到的就是有一个自定义滚动条和样式,可以按照你喜欢的方式定位它。 @AwaisUmar 建议的 jscrollpane 插件是我过去使用过的,是一个很好的开始。 所有浏览器,但如果您了解特定浏览器,请告诉我们 纯 CSS 无法做到这一点。 【参考方案1】:

仅使用 CSS:

右/左翻转:Working Fiddle

.Container

    height: 200px;
    overflow-x: auto;

.Content

    height: 300px;


.Flipped

    direction: rtl;

.Content

    direction: ltr;

上下翻转:Working Fiddle

.Container

    width: 200px;
    overflow-y: auto;

.Content

    width: 300px;


.Flipped, .Flipped .Content

    transform:rotateX(180deg);
    -ms-transform:rotateX(180deg); /* IE 9 */
    -webkit-transform:rotateX(180deg); /* Safari and Chrome */

【讨论】:

我没有在 Top/Bottom Flipping 小提琴的 Chrome 29 中看到翻转的 div 上的顶部滚动条。 显然,它是browser bug。我已经在答案中更新了我的小提琴。立即检查。 在 Google Chrome 35.0.1916.153 中,当我双倍旋转时,输入/选择存在一些问题。在 FF 中一切正常。 @lechup 你能发个小提琴吗?我们会尽力提供帮助。 我刚刚发现了一个错误(在 Edge 上)。如果翻转的内容包含一个表格,表格的每一行都有复选框,那么指针事件就会变得混乱。如果您选择最后一个复选框,它将选择第一个复选框,反之亦然。见小提琴jsfiddle.net/uPwfn/646【参考方案2】:

这是另一种方式,rotating elementscrollbar 表示 180deg,content 包装到另一个元素中,rotating 表示 wrapper 表示 -180deg。 检查下面的sn-p

div 
  display: inline-block;
  width: 100px;
  height: 100px;
  border: 2px solid black;
  margin: 15px;

#vertical 
  direction: rtl;
  overflow-y: scroll;
  overflow-x: hidden;
  background: gold;

#vertical p 
  direction: ltr;
  margin-bottom: 0;

#horizontal 
  direction: rtl;
  transform: rotate(180deg);
  overflow-y: hidden;
  overflow-x: scroll;
  background: tomato;
  padding-top: 30px;

#horizontal span 
  direction: ltr;
  display: inline-block;
  transform: rotate(-180deg);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id=vertical>
  <p>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content
    <br>content</p>
</div>
<div id=horizontal><span> content_content_content_content_content_content_content_content_content_content_content_content_content_content</span>
</div>

【讨论】:

聪明,但至少在我的 Linux firefox 上,它具有交换处理程序和滚动条的插入/开始效果的副作用;这非常令人困惑。 看这个答案***.com/questions/7889449/… @Carpetsmoker 是的,已修复 rtlltr 方向。所以它会有原生滚动效果,scroll-down 到底部,scroll-up 到顶部 是的,它是垂直固定的,但不是水平的。【参考方案3】:

试试这个。希望这会有所帮助

<div id="single" dir="rtl">
    <div class="common">Single</div>
</div>

<div id="both" dir="ltr">
    <div class="common">Both</div>
</div>



#single, #both
    width: 100px;
    height: 100px;
    overflow: auto;
    margin: 0 auto;
    border: 1px solid gray;



.common
    height: 150px;
    width: 150px;

【讨论】:

聪明的想法使用dir 学到了一些新东西,但我也需要顶部和底部

以上是关于如何用css控制浏览器滚动条的主要内容,如果未能解决你的问题,请参考以下文章

如何用 CSS 改变滚动条的位置?

ScrollView如何用代码设置滚动条

用div做的弹出层,如何用css设置它不随着滚动条移动呢? 在线急等!!!! 哪位大哥帮帮忙!!!

如何用js监听滚动条滚动事件?

如何使用JS控制DIV内容的滚动条

如何用js控件div的滚动条,让它在内容更新时自动滚到底部?