移动端去除横向滚动条问题,兼容ios

问题描述:

已经设置: .selector::-webkit-scrollbar { display: none }

在浏览器上面横向滚动条已经消除,安卓上面也消失了,但是ios上面仍然有

解决办法:

原理:ios无法直接让滚动条隐藏::-webkit-scrollbar {display: none;}是没有用的,所以我的思路就是让滚动条离远点超出父元素的范围,在通过隐藏父元素的超出部分让滚动条消失。由于子元素的高度大于父元素的高度,超过父元素的高度的内容被剪裁。因此,子元素的滚动条就被剪裁掉了

代码实现:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
body {width: 100%;overflow: hidden;}
* { margin: 0;padding: 0;}
.con {
    position: relative;
    width: 100%;
    /*height: 200px;*/ /*为了处理safari出现的滚动条*/
    overflow: hidden;/*把处理到元素外面的滚动条隐藏*/
}
.aa {
    /*height: 205px;*/ /*为了处理safari出现的滚动条*/
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;/*这个属性可以使滚动更流畅有左右弹动*/
    margin-top: -.3rem;
    padding-bottom: .3rem;
    -webkit-transform: translateY(0.3rem) !important;
    transform: translateY(0.3rem);
}
.bb {width: 1890px;}
.bb span {
    display: inline-block;
    width: 200px;
    height: 200px;
    background: #ccc;
    margin-right: 10px;
    float: left;
}
</style>
<body>
    <!-- 最少要有三层,在第三层放滚动的元素 -->
    <div class="con"><!-- 第一层必须要 有overflow: hidden-->
        <div class="aa"><!-- 第二层 处理盒子位置 进而把滚动条处理到元素下面(外面)以便隐藏滚动条-->
            <div class="bb"><!-- 第三层写具体的宽度-->
                <span>1</span>
                <span>2</span>
                <span>3</span>
                <span>4</span>
                <span>4</span>
                <span>6</span>
                <span>7</span>
                <span>8</span>
                <span>9</span>
            </div>
        </div>
    </div>
</body>
</html>


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值