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

所属分类: 网页制作 / CSS 阅读数: 583
收藏 0 赞 0 分享

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 使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

更多精彩内容其他人还在看

CSS配合JavaScript做酷的动态页面效果

  利用CSS配合JavaScript的可以做很多更酷的动态页面效果,在本教程的最后给大家简单介绍一下CSS配合JS的应用。首先,要搞清楚事件和动作的概念。在客户端脚本中,JavaScript 通过对事件进行响应来获得与用户的交互。例如,当用户单击一个按钮或者在某段文字上移动鼠标
收藏 0 赞 0 分享

WEB标准,Web前端开发工程师必备技术列表

  想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫。对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的。我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下:   通过许多实际项目,
收藏 0 赞 0 分享

用CSS制作Alpha滤镜测试板

alpha滤镜给制作网页特效提供了较大的创作空间,但由于它控制参数较多,在实际应用时,为了确定一组合适的参数值,不得不反复调整修改,在编辑窗口和预览窗口来回倒腾,甚是麻烦,本文介绍了一种简单的方法。制作一个“Alpha滤镜参数测试板”,在测试板上输入参数
收藏 0 赞 0 分享

非常流行的所谓的气泡窗口

普通的Alt无法自定义风格,而Sweet Titles通过JS脚本与CSS的集合.自定义了这种伪Alt风格. 前一段时间非常流行的,就所谓的气泡窗口(鼠标移到链接处出现的). 我们这里实现的用的是Sweet Titles的插件.显示效果完全由CSS控制.. 先下载Sweet Ti
收藏 0 赞 0 分享

CSS教程:li和ul标签用法举例

LI代码的格式化: A).运用CSS格式化列表符: ul li{ list-style-type:none; } B).如果你想将列表符换成图像,则: ul li{ list-style-type:none; list-style-image: url(/blog/images/
收藏 0 赞 0 分享

CSS教程:CSS中的定位(position)

  使用CSS来定位页面内层的位置,一直是比较难以掌握的事情,很多时候,往往被绝对定位的元素,总是以浏览器的左上角为坐标原点,此时,如果浏览器的大小改变,被定义的层就会偏离设计想要的位置,让人很挠头。   其实,要想控制好层的绝对定位,只要理解CSS中关于定位
收藏 0 赞 0 分享

CSS教程:盒模型(BOX Model)

  如果想熟练掌握DIV和CSS的布局方法,首先要对盒模型有足够的了解。每个HTML元素都可以看作一个装了东西的盒子,盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框外和其他盒子之间,还有边界(margin),如图1所示。
收藏 0 赞 0 分享

无延迟翻滚的图形与CSS混合风格按钮

  在一个具有图形背景的按钮中添加CSS风格的文本,这种建立按钮的方法结合了具有CSS翻滚(CSS rollover)标记的开发速度和效率,从而有效地提高按钮外表图像的三维效果。   相比于常规的图形按钮,这些图形/CSS混合按钮可易于建立和载入,因为你只需要为空白按钮外面
收藏 0 赞 0 分享

css里expression实现界面对象的批量控制

用过css样式我们就知道, 可以定义一批对象的class属性来指定同一个样式来统一界面. 但如何统一同类型的对象的事件? 比如:界面有无数个 <img src="**.jpg"> 如何实现鼠标经过此图片, 图片的src变成是**_over.jpg?
收藏 0 赞 0 分享

CSS教程:水平对齐(text-align)

  水平对齐(text-align),用以设定元素内文本的水平对齐方式。   1.语法   text-align具体参数如下: 语法:text-align:left|right|center|justify 说明:设定元素内文本的水平对齐方式。 参数:left:左
收藏 0 赞 0 分享
查看更多