css滚动条不占用宽度_CSS隐藏滚动条并可以滚动内容的几种方式
前言:当我们的内容超出了我们的 div,往往会出现滚动条,影响美观,尤其是当我们在做一些导航菜单的时候,滚动条一出现就破坏了 UI 效果。我们不希望出现滚动条,也不希望超出去的内容溢出,就要保留鼠标滚动的效果。我们经常在前端开发中遇到这种情况,最容易想到的是加一个 iscroll 插件,但其实现在 CSS 也可以实现这个功能,下面一起看看实现的几种方法。1.方法一使用三个容器包围起来,不需要计算滚
前言:当我们的内容超出了我们的 div,往往会出现滚动条,影响美观,尤其是当我们在做一些导航菜单的时候,滚动条一出现就破坏了 UI 效果。我们不希望出现滚动条,也不希望超出去的内容溢出,就要保留鼠标滚动的效果。我们经常在前端开发中遇到这种情况,最容易想到的是加一个 iscroll 插件,但其实现在 CSS 也可以实现这个功能,下面一起看看实现的几种方法。
1.方法一
使用三个容器包围起来,不需要计算滚动条的宽度(推荐,各浏览器均没有问题)
实现代码:
<!DOCTYPE html>
实现效果:
2.方法二
计算滚动条宽度并隐藏起来,使用绝对定位进行隐藏。向右移动了17个像素,刚好等于滚动条的宽度。(各浏览器均没有问题,但是要计算滚动条宽度,不推荐)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
</head>
<style>
.outer-container{
width: 360px;
height: 200px;
position: relative;
overflow: hidden;
}
.inner-container{
position: absolute;
left: 0;
top: 0;
right: -17px;
bottom: 0;
overflow-x: hidden;
overflow-y: scroll;
}
</style>
<body>
<div class="outer-container">
<div class="inner-container">
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
壮士不留名,留名非壮士。壮士留种不留名!</br>
</div>
</div>
</body>
</html>
实现效果:
3.方法三
css 隐藏滚动条。那就是自定义滚动条的伪对象选择器::-webkit-scrollbar。(各浏览器均没有问题,但只能作用于html、body标签。不推荐)
<!DOCTYPE html>
实现效果:
总结:
优点:
滚动条的隐藏可以让读者更聚焦于内文,而不会看到滚动条很短就懒得看、跳出网页,或一心急,就把滚动条直直往下拉。保证了界面跟UI的出入,不影响界面的美观度。
缺点:
假如读者想往回看,可能就会要滚很久。所以,如果你想为较长的内文隐藏滚动条,建议应有导览列,让读者可以快速跳到某一处。
更多推荐
所有评论(0)