码迷,mamicode.com
首页 > 其他好文 > 详细

less vw 自适应

时间:2019-06-03 15:53:07      阅读:1009      评论:0      收藏:0      [点我收藏+]

标签:play   绑定   images   辅助   viewport   font   假设   center   ace   

vw视口宽度,由于本事就是跟随屏幕变化的,所以更具有灵活性,不用js获取窗口来动态设置窗口宽度,现在用的比较少,公司目前不让用,先记录,也许以后用得到。
//配合less 不用自己换算,设计稿750 px
//定义变量 vw=7.5vw
//假设元素400px宽度,换算成vw即为400/@vw

@vw: 7.5vw;

.container {
padding: 51/@vw 43/@vw 23/@vw 45/@vw;

.fisttitle {
    display    : flex;
    align-items: center;
}

.title {
    font-size  : 37/@vw;
    padding    : 0 18/@vw 0 10/@vw;
    font-weight: 600;

}

.lef_png {
    margin-right: 17/@vw;
}

.lef_png,
.rig_png {
    width : 60/@vw;
    height: 4/@vw;
}

.commens {
    width : 36/@vw;
    height: 34/@vw;
}

ul {
    li {
        h5 {
            color       : #333;
            font-size   : 32/@vw;
            padding-left: 64/@vw;
            margin-top  : 51/@vw;
            font-weight : 600;
            line-height : 45/@vw;
        }

        .q1 {
            background     : url(‘./../images/q1.png‘) no-repeat left center;
            background-size: 52/@vw 32/@vw;
        }

        p {
            color      : #666;
            font-weight: 400;
            font-size  : 30/@vw;
            line-height: 42/@vw;

        }

        a {
            color      : #1E89FE;
            font-size  : 30/@vw;
            line-height: 42/@vw;

        }

        span {
            margin : 0 10/@vw 0 10/@vw;
            display: inline-block;
        }
    }
}

}

下面用最熟悉的rem 实现一下,因为rem不能实时变化,所以需要通过js 或者媒体查询来辅助,本案例通过media 来实现

html {
@firstViewportWidth: 750px; //默认UI设计尺寸
@defaultFontSize : 100px; //默认初始fontsize大小

@media screen and (width: @firstViewportWidth) {
    //绑定到没听查询
    font-size: @defaultFontSize;
    min-width: 100%;
}

;

//根据传入的屏幕尺寸@viewportWidth计算出与初始@firstViewportWidth的比例,然后将默认的fontsize> @defaultFontSize对应的放大缩小
.media(@viewportWidth, @firstViewportWidth: 750px) {
    @media screen and (min-width: @viewportWidth) {
        font-size: @defaultFontSize / (@firstViewportWidth / @viewportWidth) !important;
    }
}

;
.media(320px);
.media(375px); //所要设配的屏幕尺寸
.media(360px);
.media(411px);
.media(414px);
.media(768px);

}

@media screen and (min-width: 768) {
html {
font-size: 100px !important;
}
}

@vw: 7.5vw;

.container {
padding: .51rem .43rem .23rem .45rem;

.fisttitle {
    display        : flex;
    align-items    : center;
    justify-content: space-between;

    .middleware {
        text-align: center;
    }
}

.title {
    font-size  : .37rem;
    padding    : 0 .18rem 0 .18rem;
    font-weight: 600;

}

.lef_png {
    margin-right: .17rem;
}

.lef_png,
.rig_png {
    width : .6rem;
    height: .04rem;
}

.commens {
    width : .36rem;
    height: .34;
}

ul {
    li {
        h5 {
            color       : #333;
            font-size   : .32rem;
            padding-left: .64rem;
            margin-top  : .51rem;
            font-weight : 600;
            line-height : .45rem;
        }

        .q1 {
            background     : url(‘./../images/q1.png‘) no-repeat left center;
            background-size: .52rem .32rem;
        }

        p {
            color      : #666;
            font-weight: 400;
            font-size  : .30rem;
            line-height: .42rem;

        }

        a {
            color      : #1E89FE;
            font-size  : .30rem;
            line-height: .42rem;

        }

        span {
            margin : 0 .10rem 0 .10rem;
            display: inline-block;
        }
    }
}

}

对比来看,rem看上去简洁一些,不过需要手动去设置所有的需要自适应额屏幕宽度,vw虽然看上去不那么直观,但是适用性更强。

less vw 自适应

标签:play   绑定   images   辅助   viewport   font   假设   center   ace   

原文地址:https://blog.51cto.com/13496570/2404252

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!