CSS-界面滚动时不显示滚动条

最近产品提出一个需求,在界面滚动时,元素右侧不显示滚动条。查了网上的答案,最后总结了一下几个情况。

1、设置常规的滚动条:使用 overflow:auto。父元素需要设置一个高度,设置相对定位,这样子元素的高度大于父元素高度才能显示滚动条。如果父元素的高度完全由子元素撑开,界面上不会出现滚动条。设置overflow:auto 失效的主要问题:可能是这个div没有设置 100% 然后父元素清除浮动 (float:none; position: relative;)

.father {
    position: relative;
    height: 100px;
    border: 1px splid red;
}
.son {
    overflow: auto;
    height: 1000px;
}

2、设置鼠标经过显示的滚动条:预设值盒子是 hidden。当鼠标经过这样盒子时,设置盒子的overflow 变成 auto。这样鼠标不经过时不会显示滚动条。缺点:如果盒子内部有文字,盒子的宽度变化可能造成文字的重新排版,视觉上有点不好看。

div {
  overflow: hidden;
}
div:hover {
  overflow: auto;
}

3、设置界面可以滚动但是不显示滚动条

方法一:设置滚动条的样式(在webpack内核的浏览器比较适合)这样可以同时设置滚动条的宽度和颜色。这种办法很好。

div::-webkit-scrollbar {
  width: 0;
}

方法二:右侧元素设置宽度或者定位,将左侧元素的滚动条遮挡。这样的方法不入流,在移动端兼容不好实现。

div {
  float: right;
  width: 32%
}
div {
  float: left;
  width: 70%;
}

猜你喜欢

转载自blog.csdn.net/weixin_41697143/article/details/88622936
今日推荐