Chrome的滚动条消失的三个部分(不溢出-Y)

页(live-version)由(大约):Chrome的滚动条消失的三个部分(不溢出-Y)

  • 左侧边栏
  • 中心的内容
  • 右侧栏

右侧栏应是可滚动的,所以我设置了overflow-y: scroll; right: -17px;来简单地隐藏滚动条。 Body, htmloverflow-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。在保留边栏的系统上,侧边栏元素的offsetWidthscrollWidth属性将有所不同。默认情况下,您的元素可能有后续的风格:

$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;

}

您可以添加/删除基于对offsetWidthscrollWidth的值.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

回到顶部