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、避免样式覆盖,最好把大比例的媒体查询写在后面

参考链接:

https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Media_queries    媒体查询

http://www.zhangyunling.com/837.html   device-aspect-ratio与aspect-ratio单屏布局

https://stackoverflow.com/questions/50465331/scss-media-query-aspect-ratio-not-working   scss中不生效

css媒体查询aspect-ratio宽高比在less中的使用的更多相关文章

  1. 我的Vue之旅、04 CSS媒体查询完全指南(Media Quires)

    什么是SCSS Sass: Sass Basics (sass-lang.com) SCSS 是 CSS 的预处理器,它比常规 CSS 更强大. 可以嵌套选择器,更好维护.管理代码. 可以将各种值存储 ...

  2. 使用 CSS 媒体查询创建响应式网站

    简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器上有很好的效果,如何在各种大 ...

  3. CSS 媒体查询创建响应式网站

    使用 CSS 媒体查询创建响应式网站  适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩.利用响应式设计,无论您采用什么设备或屏幕来访问网 ...

  4. 巧妙使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的好方法

    有无数的理由要求我们在任何时候都应该知道用户是使用的什么设备浏览我们的网站——宽屏,普通屏,平板,手机?知道这些特征,我们web应用的CSS和JavaScript才能同步做相应的操作.在给Mozill ...

  5. CSS 媒体查询 响应式

    媒体查询 从 CSS 版本 2 开始,就可以通过媒体类型在 CSS 中获得媒体支持.如果您曾经使用过打印样式表,那么您可能已经使用过媒体类型.清单 1 展示了一个示例. 清单 1. 使用媒体类型 &l ...

  6. css媒体查询:响应式网站

    css媒体查询:响应式网站 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. ...

  7. 纯CSS + 媒体查询实现网页导航特效

    纯css+媒体查询实现网页导航特效 附上效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html lang="en"> <hea ...

  8. 详解css媒体查询

    简介 媒体查询(Media Queries)早在在css2时代就存在,经过css3的洗礼后变得更加强大bootstrap的响应式特性就是从此而来的. 简单的来讲媒体查询是一种用于修饰css何时起作用的 ...

  9. CSS:使用CSS媒体查询创建响应式布局

    现如今在Web前端领域,BootStrap是一个最流行的UI库,其12列的栅栏系统为响应式布局提供了一种对程序员来说很好操作的模式. 追究Bootstrap的内在原理,其实就是通过媒体查询来完成对不同 ...

随机推荐

  1. idea中配置maven的骨架本地下载方式

    由于我们使用maven的骨架创建的时候,maven需要联网进行骨架的下载,如果断网了,则骨架不能正常下载,为了防止这种情况,我们可以配置本地下载,当已经联网下载过一次后,以后每次进行下载都会从本地下载 ...

  2. python进程基础点整理

    操作系统 串行: 一个程序完完整整的执行完再执行下一个 并发: 看起来像是同时运行,其实就是程序间的切换频率比较快,看不出来 并行:真正的同时运行 多道技术 空间复用:共用一个内存条,多个进程相互隔离 ...

  3. ES6新语法(一)

    1.常量         ES5没有定义声明常量的方式,ES6标准中引入了新的关键字const来定义常量.         常量必须给初始值: 常量不能在同一作用域内重新定义或赋值:  <scr ...

  4. Prism_Commanding(2)

    Commanding 除了提供对要在视图中显示或编辑的数据的访问之外,ViewModel还可能定义可由用户执行的一个或多个动作或操作.用户可以通过UI执行的动作或操作通常被定义为命令.命令提供了一种方 ...

  5. SAP 不支持交货单中同一个物料多个行项目HU与序列号组合发货场景

    SAP 不支持交货单中同一个物料多个行项目HU与序列号组合发货场景 笔者所在的项目里,后勤业务启用了序列号管理,Handling Unit Manager以及批次号管理.不同的物料分别启用序列号管理, ...

  6. JavaScript 是如何运行的?

    摘要: 理解JS执行原理. 原文:JavaScript 是如何运行的? 作者:hengg Fundebug经授权转载,版权归原作者所有. 什么是JavaScript? 我们来确认一下JavaScrip ...

  7. 通过Shell脚本来创建批量服务器上的MySQL数据库账号

    1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...

  8. 高通lk屏幕向kernel传参

    LK把相关参数报存到cmdline上: 在Bootable\bootloader\lk\dev\gcdb\display\gcdb_display_param.c上gcdb_display_cmdli ...

  9. jt格式文件读取,osg显示插件更新

    osgdb_jt 最近还是更新了一下 osgdb_jt 插件.解码jt格式核心库jt_toolkit,通过静态链接到Plugin jt产生osgdb_jt插件,使得osg可以可视化jt格式文件. 用法 ...

  10. sqlite3 国产化如何添加密码

    sqlite3 国产化如何添加密码 sqlite3 国产化如何添加密码sqlite3 国产化如何添加密码