Chrome的滚动条消失的三个部分(不溢出-Y)
页(live-version)由(大约):Chrome的滚动条消失的三个部分(不溢出-Y)
- 左侧边栏
- 中心的内容
- 右侧栏
右侧栏应是可滚动的,所以我设置了overflow-y: scroll; right: -17px;
来简单地隐藏滚动条。 Body, html
有overflow-y: auto;
。这样我就不必有两个滚动条(页面和右边栏)。
问题: (仅适用于Chrome,在版本62和63测试)
对于在不同机器上的一些原因,铬让我对滚动条两种不同的风格:Case 1和Case 2。
所以基本上,对于情况1将在右侧栏滚动是“绝对定位”和第隐藏的,因为它本身知识+,而对于情况下2滚动条“相对定位”和页面隐藏滚动条所需的17px。
问题
1)为什么滚动条都在相同的操作系统和浏览器版本,但不同机器上的不同?
2)有没有办法解决这个问题,没有任何插件?考虑到Windows用户有情况2和MacOS用户情况1或2?
回答:
1)为什么在相同的操作系统和浏览器版本,但不同的机器上,滚动条不同?
这可能与macOS上的系统设置有关。
如果你有Always
选择,我敢肯定,滚动条推页面内容的方式进行。如果您连接了鼠标,也一样。否则,它有你提到的“绝对定位”的行为。请记住,Windows用户可能会看到类似于Always
的行为。
2)有没有什么办法解决这个问题,没有任何插件?考虑到Windows用户有情况2和MacOS用户情况1或2?
那么,有点意见第一:我不认为这是一个好主意,隐藏滚动条没有提供给用户沟通元素的可滚动性的另一个提示。总之,我想不出任何不是某种黑客行为,但这里有:
由于这是只需要执行一次,并假设我们希望跨浏览器的可预测功能和操作系统,你可以在这里使用一些JS。在保留边栏的系统上,侧边栏元素的offsetWidth
和scrollWidth
属性将有所不同。默认情况下,您的元素可能有后续的风格:
$child-h-padding: 15px; $max-scrollbar-width: 35px;
.r-sidebar {
overflow-y: scroll;
padding: 12px $child-h-padding;
...rest
}
.r-sidebar--r-padded {
padding-right: $child-h-padding + $max-scrollbar-width;
right: -$max-scrollbar-width;
}
您可以添加/删除基于对offsetWidth
和scrollWidth
的值.r-sidebar--r-padded
类。
这个应该无处不在,无论浏览器/操作系统。我已经在macOS/Chrome上使用两个边栏设置进行了测试。
回答:
将滚动条移出用户的视线并不是一种完全隐藏滚动条的方法。
有没有办法解决这个没有任何插件?
这是你在找什么?
.r-sidebar::-webkit-scrollbar { display: none; }
这会隐藏所有浏览器的滚动条。由于其特定于webkit,因此假设浏览器版本是最新的,它应该可以跨越不同的操作系统。
More info here
为什么滚动条都在相同的操作系统和浏览器的版本不同,但不同机器
我没有为此立即答复,但请提供有关该机器的详细信息/ os版本/浏览器版本,我会尽我所能提供更多答案
回答:
左侧边栏:
这个添加到滚动DIV:
direction: rtl; left: -17px;
而且这里面的div:
.nav{ direction: ltr;
}
这将完全隐藏滚动条。但div仍然是可滚动的。
以上是 Chrome的滚动条消失的三个部分(不溢出-Y) 的全部内容, 来源链接: utcz.com/qa/266364.html