CSS:隐藏移动端的滚动条的方式

目录

移动端开发中,有一个横向滚动元素,产品告诉我不需要滚动条,我说这个简单,隐藏一下不就行了,没想到还有安卓和ios不兼容的问题。

代码

html 复制代码
<style>
  .list {
    display: flex;
    overflow: auto;
    gap: 10px;
    padding: 10px;
  }

  .item {
    width: 100px;
    height: 100px;
    background: royalblue;
    border-radius: 8px;
    flex-shrink: 0;
  }
</style>

<div class="list">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

方式一:-webkit-scrollbar

css 复制代码
.list::-webkit-scrollbar {
    display: none;
  }

兼容性有问题,部分机器上还是会显示滚动条

方式二:overflow

外层添加一个父级元素

html 复制代码
<div class="wrap">
  <div class="list">
    
  </div>
</div>

css

css 复制代码
.wrap {
    overflow: hidden;
}

.list {
    padding-bottom: 20px;
    margin-bottom: -10px;
}

原理示意如下

方式三:clip-path

clip-path文档

把下方滚动条位置裁剪掉

css 复制代码
.list {
  clip-path: inset(0 0 10px);
}

方式四:mask 遮罩

原理:显示遮罩图片不透明的部分,透明的则会被裁剪

css 复制代码
.list {
  -webkit-mask: linear-gradient(red, red) 0 0/100% calc(100% - 10px) no-repeat;
}

总结

  • -webkit-scrollbar 存在兼容性问题

  • overflow兼容性最好,也最直观,符合大多数人思路,缺点是需要单独嵌套一层父级

  • clip实现最简洁,也比较好理解,在本案例中最为推荐

  • mask 思路和clip一致,实现起来稍微复杂一点,还可以实现更为复杂的渐隐效果,能够掌握更好

参考

裁剪的3种方式,CSS 如何隐藏移动端的滚动条?

相关推荐
飞的肖2 分钟前
前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
前端·spring boot·架构
青灯文案110 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_7482548814 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.26 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营30 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
m0_748236112 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo6172 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript