CSS:可以将Webkit滚动条“推送”到内容中吗?

时间:2011-07-16 20:02:23

标签: css webkit scrollbar

通常滚动条的位置如下:

________________________________________
|                          |           |
|         content          | scrollbar |
|                          |           |
|                          |           |
|                          |           |
|                          |           |
|__________________________|___________|

我基本上希望“自定义”滚动条与可滚动容器的外边界之间存在差距:

________________________________________
|                    |           |     |
|      content       | scrollbar | gap |
|                    |     <     |     | 
|                    |           |     |
|                    |           |     |
|                    |           |     |
|____________________|___________|_____|

margin-right::-webkit-scrollbar上使用::-webkit-scrollbar-track-piece失败,并宣布Webkit状态的样式滚动条:

  

滚动条的轴支持边距。他们可以   否定(以便轨道可以例如被充气以覆盖   部分按钮。

我现在想知道是否有人设法通过除margin以外的其他方式将滚动条“推入”内容(或包含在内容之外)。

我认为这可能只是(甚至可能)使用某种技巧 - 任何想法?

我尝试失败的其他事情是padding-right: 10pxborder-right: 10px solid rgba(255, 255, 255, 0)(透明边框)。

2 个答案:

答案 0 :(得分:18)

您可以使用透明边框进行操作。但是你需要设置background-clip: padding-box;,否则它将无效。

示例:http://jsfiddle.net/6KprJ/1/

答案 1 :(得分:6)

我认为通过为右对齐滚动条分配右边距是不可能的。滚动条是窗口UI的一部分,可能无法通过CSS设置样式。

但是,你可以围绕HTML的所有其他元素创建一个内容包装器,给它一个max-width,小于100%,并为包装器设置overflow: scroll;。这将达到预期的效果,并且几乎适用于所有浏览器。

[个人观点]我认为某些网页设计师的习惯非常糟糕,他们希望控制我的每一块屏幕。例如,滚动条应由窗口管理器设置样式,而不是由我当前正在查看的网站设置样式。