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

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

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

Opera中国的WEB标准课程

网页制作Webjx文章简介:在这篇文章里,我要向大家介绍我和其他很多人花费数月时间开发的一个课程——Web标准课程,该课程旨在向大家提供Web设计和开发的坚实基础,无论读者是谁,此教程完全免费、可访问,并且不需要预备知识。当然,我主要还
收藏 0 赞 0 分享

CSS样式表渐进增强的基本概念

网页制作Webjx文章简介:如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响
收藏 0 赞 0 分享

简单介绍Web Developer插件制作网页

网页制作Webjx文章简介:Firefox浏览器是一个良好支持W3C标准的开放源代码的浏览器,拥有Linux/Windows/Mac版本。因为Firefox浏览器良好支持W3C标准,所以使用Firefox来调试网页是非常好的。 Firefox浏览器是
收藏 0 赞 0 分享

CSS布局带来的巨大影响:CSS display属性值

网页制作Webjx文章简介:网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。 应原书编辑要求,先在文章顶部给出链接:《Everything You
收藏 0 赞 0 分享

用div css模拟表格对角线

这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之 首先声明: 这只是探讨一种CSS模拟表格对角线的
收藏 0 赞 0 分享

IE Firefox在css中的差别 (部分)

1、单位问题 问题:任何距离的数值ie可以不加单位,ff必须要求写单位(0除外) 解决:写全单位如padding:0px; 2、水平居中 问题:div里的内容,ie默认为center,而ff默认left 解决:mairgin:0px auto; 3、高度问题
收藏 0 赞 0 分享

不用js可以实现信息提示效果

[code] <style> body { font:verdena; font-size:14px; color:#000 } h1{ font:verdena; font-size:22px; color:#000 } h2{ font:verdena;
收藏 0 赞 0 分享

CSS解决未知高度的垂直水平居中自适应问题

今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。 从最简单的开始………… 一、如何让一个DIV水平居中? 这个简单不作过多说明! [code] <st
收藏 0 赞 0 分享

CSS cursor 属性 -- 鼠标指针样式效果

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize |
收藏 0 赞 0 分享

css 简单区别ie6,ie7,firefox的写法

同一样式里可以这样 [code] margin:17px; FF +margin:17px; IE6 IE7 _margin:17px; IE6 [/code] 按这个顺序,刚好区分开三个浏览器
收藏 0 赞 0 分享
查看更多