css 媒体查询 aspect-ratio less 使用方法

时间:2021-05-08

css媒体查询有一个 宽高比很方便,aspect-ratio ,可以直接使用宽/高 来进行页面适配 使用样例如下:

// 宽高比在((320/50)+(728/90))/2 两个尺寸中间值以内 适配 320*50 设计图样式@media screen and (min-aspect-ratio: ~"249/50") and (max-aspect-ratio: ~"29/4"){ @base: 320; @convert: 375/@base; .container{ width: 100vw; height:100%; position:relative; display:flex; flex-flow:row nowrap; align-items: center; .info-icon-box{ .width(46*@convert); .height(46*@convert); .border-radius(10*@convert); .border(1@convert,#e3e3e3); overflow: hidden; .margin-left(10*@convert); .min-width(46*@convert); .max-width(46*@convert); flex-grow: 0; img { width: 100%; height: 100%; .border-radius(10); vertical-align: top; } } .info-other{ flex-grow: 1; display:flex; flex-flow:column nowrap; overflow: hidden; height:100%; .margin-left(10*@convert); .info-wrap.roll-box{ height:200%; } .info-box{ width:100%; height:50%; flex-grow: 1; display:flex; flex-flow:row nowrap; align-items: center; .info{ width:48vw; height: 100%; flex-grow: 1; display: flex; //align-items: center; flex-direction:column; justify-content: center; .info-title{ font-weight:bold; .font-size(16*@convert); .line-height(26*@convert); color: #484848 ; .margin-bottom(4*@convert); } .info-other-rate { display: flex; align-items: center; justify-content: flex-start; position:relative; z-index:2; .star-number{ .font-size(15*@convert); color:#4a4a4a; .padding-right(5*@convert); } .star-evaluate { position: relative; .width(100*@convert); .height(16*@convert); background: url("../../assets/images/star_gray.png") no-repeat 0 0; background-size: cover; overflow: hidden; .star { position: absolute; top: 0; left: 0; display: inline-block; .height(16*@convert); background: url("../../assets/images/star.png") no-repeat 0 0; background-size: cover; overflow: hidden; } .star-1 { .width(8*@convert); } .star-2 { .width(21*@convert); } .star-3 { .width(29*@convert); } .star-4 { .width(42*@convert); } .star-5 { .width(50*@convert); } .star-6 { .width(63*@convert); } .star-7 { .width(71*@convert); } .star-8 { .width(84*@convert); } .star-9 { .width(92*@convert); } .star-10 { .width(100*@convert); } } } .info-desc-box{ display: none; } } .info-install{ .min-width(66*@convert); width:fit-content; .height(40*@convert); .line-height(40*@convert); box-sizing: border-box; .padding-all(0,4*@convert,0,4*@convert); .font-size(14*@convert); color:#fff; text-align: center; .margin-right(20*@convert); background:url("../../assets/images/btn_download_short_shadow.png") no-repeat 0 0; background-size:100% 100%; } } .info-desc-box { width:100%; height:50%; .padding-all(4*@convert, 26*@convert, 4*@convert, 0); box-sizing: border-box; overflow: hidden; .info-desc{ .font-size(14*@convert); .line-height(20*@convert); color: #484848 ; .info-other-rate{ display: none; } } } } }}// 宽高比大于((320/50)+(728/90))/2 两个尺寸中间值 适配 728*90 设计图样式@media screen and (min-aspect-ratio: ~"29/4"){ @base: 728; @convert: 375/@base; .container{ width: 100vw; height:100%; position:relative; display:flex; flex-flow:row nowrap; align-items: center; .info-icon-box{ .width(88*@convert); .height(88*@convert); .border-radius(10*@convert); .border(1@convert,#e3e3e3); overflow: hidden; .margin-left(10*@convert); .min-width(88*@convert); .max-width(88*@convert); flex-grow: 0; img { width: 100%; height: 100%; .border-radius(10); vertical-align: top; } } .info-other{ flex-grow: 1; display:flex; flex-flow:column nowrap; overflow: hidden; height:100%; .margin-left(10*@convert); .info-wrap{ height:100%; .info-box{ width:100%; height:100%; flex-grow: 1; display:flex; flex-flow:row nowrap; align-items: center; .info{ width:48vw; height: 100%; flex-grow: 1; display: flex; flex-direction:column; justify-content: center; .margin-right(20*@convert); .info-title-rate{ display: flex; flex-flow: row nowrap; } .info-title{ font-weight:bold; .font-size(24*@convert); .line-height(37*@convert); color: #484848 ; .margin-bottom(4*@convert); } .info-other-rate { display: flex; align-items: center; justify-content: flex-start; position:relative; z-index:2; .star-number{ .font-size(15*@convert); color:#4a4a4a; .padding-right(5*@convert); } .star-evaluate { position: relative; .width(100*@convert); .height(16*@convert); background: url("../../assets/images/star_gray.png") no-repeat 0 0; background-size: cover; overflow: hidden; .star { position: absolute; top: 0; left: 0; display: inline-block; .height(16*@convert); background: url("../../assets/images/star.png") no-repeat 0 0; background-size: cover; overflow: hidden; } .star-1 { .width(8*@convert); } .star-2 { .width(21*@convert); } .star-3 { .width(29*@convert); } .star-4 { .width(42*@convert); } .star-5 { .width(50*@convert); } .star-6 { .width(63*@convert); } .star-7 { .width(71*@convert); } .star-8 { .width(84*@convert); } .star-9 { .width(92*@convert); } .star-10 { .width(100*@convert); } } } .info-desc-box { width:100%; .height(20*@convert); .padding-all(4*@convert, 26*@convert, 4*@convert, 0); box-sizing: border-box; overflow: hidden; .info-desc{ .font-size(14*@convert); .line-height(20*@convert); color: #484848 ; .info-other-rate{ display: none; } } .roll-box{ height:auto; } } } .info-install{ .min-width(66*@convert); width:fit-content; .height(40*@convert); .line-height(40*@convert); box-sizing: border-box; .padding-all(0,4*@convert,0,4*@convert); .font-size(14*@convert); color:#fff; text-align: center; .margin-right(20*@convert); background:url("../../assets/images/btn_download_short_shadow.png") no-repeat 0 0; background-size:100% 100%; } } } &.info-desc-box { display: none; } } }}

注意三点:

1、宽高比一定是比值的形式,不能直接写小数,宽/高

2、在less中直接写宽高比也不会生效,因为less会编译成小数,可以在比值前面加一个 ~ 完美解决

3、避免样式覆盖,最好把大比例的媒体查询写在后面

总结

以上所述是小编给大家介绍的css 媒体查询 aspect-ratio less 使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章