实现横向滚动 并宽度不固定

摘要

前不久碰到一个需求,在宽度不固定下实现横线滚动,这里我用css来写,记录下来,供以后借鉴。 有时会忘记

原理
子元素的宽度大于父元素是,会出现滚动 overflow-x: scroll; 为水平滚动,overflow-y: scroll; 为垂直滚动,按需求这里采用水平横向滚动

// html 如下
    <div class="content">
        <div class="redPacket">
            <div class="item" style="margin-right:10px;border-radius:4px;">
                <div class="amount">
                    <span>2</span>元
                </div>
                <div class="fundInfo">
                    <p class="name">鹏华基金鹏友会</p>
                    <p>满1000元可用</p>
                </div>                  
            </div>
            <div class="item" style="margin-right:10px;border-radius:4px;">
                <div class="amount">
                    <span>2</span>元
                </div>
                <div class="fundInfo">
                    <p class="name">鹏华基金鹏友会</p>
                    <p>满1000元可用</p>
                </div>                  
            </div>
        </div>
    </div>
//  css如下
        * {
            margin:0;
            padding:0;

        }
        body {
            width:320px;
            height: 40px;
            overflow: hidden;
            margin:100px auto;
        }
        .content {
            width: 100%;
            overflow-x: scroll; // 子元素的宽度大于父元素的即可滚动
            overflow-y: hidden;
            border-radius: 4px;
        }
        /*  .content::-webkit-scrollbar {display:none} // 隐藏滚动条*/
        .redPacket{
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            float: left;  // 使其脱离文档流 宽度为所有字元素的和
            min-width: 100%;
        }
        .item {
            min-width: 150px;
            height: 50px;
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            flex: 3;
            -webkit-align-items: center;
            -ms-flex-align: center;
            align-items: center;
            background-image: linear-gradient(90deg,#ff6d0b 2%,#ef4916);
            padding: 0 10px;
        }
        .amount {
            text-align: center;
            padding-right: 10px;
            font-size: 12px;
            color: #FFD41D;
            border-right: 1px solid #FFA068;
        }
        .amount span {
            font-size: 30px;
            line-height: 30px;
        }
        .fundInfo {
            padding: 8px 10px;
        }
        .fundInfo p {
            color: #FFF;
            font-size: 12px;
        }

效果:
demo1.gif

总结:redPacket 在没有添加float: left; 样式的时候。小屏手机(iPhone5) 出现样式错乱现象,这是由于 redPacket宽度和父级宽度一致(100%),并且默认item的最小宽度为最终宽度,子集撑不开,样式乱码,添加float: left; 后 ,使其脱离文档流,宽度变为所有子集(item)之和,这样里面文字无论变为多少,文字都不会被隐藏 。
对应源代码和实例效果 ,放到了codepen 上,如果想实践可以去查阅。

以上为此文章所有内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,826评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,820评论 1 45
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,353评论 2 66
  •   DOM 1 级主要定义的是 HTML 和 XML 文档的底层结构。   DOM2 和 DOM3 级则在这个结构...
    霜天晓阅读 1,508评论 1 3
  • 勿言,既明,时之吾心,之吾意! 搬来凳子 登上窗台 拍张照片 借楼吉言 中国平安 华人安康
    舍得涂鸦阅读 519评论 31 59