大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

自适应缩放图文列表

前端入坑纪 50

今天比较闲,再来分享下,最近真切体会到flex很好用,那就讲讲吧。

好,详解如下!

OK,first things first! github项目地址

好多喵
HTML 结构
    <ul>
        <li>
            <div class="imgWrp" style='background-image:url(wrap/img/cat01.jpg)'></div>
            <p>喵咪冬季取暖</p>
        </li>
        <li>
            <div class="imgWrp" style='background-image:url(wrap/img/cat02.jpg)'></div>
            <p>喵咪冬季取暖</p>
        </li>
        <li>
            <div class="imgWrp" style='background-image:url(wrap/img/cat03.jpg)'></div>
            <p>喵咪冬季取暖</p>
        </li>
        <li>
            <div class="imgWrp" style='background-image:url(wrap/img/cat05.jpg)'></div>
            <p>喵咪冬季取暖</p>
        </li>
        <li>
            <div class="imgWrp" style='background-image:url(wrap/img/cat06.jpg)'></div>
            <p>喵咪冬季取暖</p>
        </li>
    </ul>

1.简单一个ul列表,li里面的div是用来展现图片用的,由于图片的宽高比不一定,所以当图片是背景时,background-size:cover可以很好的适配不同的比例。

CSS 结构
        ul,
        li {
            list-style: none;
            padding: 0;
            margin: 0;
            padding: 3px 0;
        }

        li {
            border-bottom: 1px solid #ccc;
        }

        .imgWrp {
            width: 0;
            height: 0;
            padding: 10%;
            margin-right: 2%;
            background-size: cover;
            background-position: center center;
            background-repeat: no-repeat;
            overflow: hidden;
        }

        li {
            display: flex;
            flex-flow: row nowrap;
            justify-content: space-around;
            align-items: center;
        }

        li>* {
            flex: 1 1 auto;
        }

        li>p {
            width: 70%
        }

  1. li以display:flex来展现,这样的话,里面的div和p这类子元素可以很好的控制,比float好用多了。
  2. flex-flow控制子元素的方向和是否换行, justify-content: space-around;设定子元素的主轴排列方式,align-items: center;设定子元素的侧轴排列方式
  3. flex: 1 1 auto; 是对子元素的缩放和大小进行对应设置
    ps: flex还是很好用的,感兴趣的小伙伴,百度详情哦

其实对列表里的图片,object-fit:cover 可以很方便的做到上述效果,不过依旧是兼容问题,你懂得,期待前端环境越来越好。

好了,到此,本文告一段落!感谢您的阅读!祝你身体健康,阖家幸福!
打开支付宝首页搜 625097528 领红包,领到大红包的小伙伴赶紧使用哦!
支持你我,扫一扫红包