前端:用Sass简化媒体查询

在进行媒体查询的编写的时候,我们可以利用scss与与编译器,通过@include混入的方式对代码进行简化,从而大大提高了代码的可维护性,也减少了代码的编写量,废话不多说,直接上代码

css 复制代码
// 定义设备数值
$breakpoints: (
  'phone': (320px, 480px),
  'ipad': (481px, 768px),
  'notebook': (769px, 1024px),
  'pc': 1205px
);

// sass 混合
@mixin respnseTo($breakname) {
  // map-get:从对应键值对中获取数据,
  $bp: map-get($breakpoints, $breakname);

  // 判断 $bp 是 list,还是单个值 
  @if type-of($bp) == 'list' {
    // 从 list 中获取第一项和第二项数据
    $min: nth($bp, 1);
    $max: nth($bp, 2);
    @media (min-width: $min) and (max-width: $max) {
      // @content:混入其他的数据
      @content;
    }
  } @else {
    @media (min-width: $bp) {
      @content;
    }
  };
}

.container {
  width: 100%;

  @include respnseTo('phone') {
    height: 50px;
  }

  @include respnseTo('ipad') {
    height: 60px;
  }
}

最后编译结果:

css 复制代码
@media (min-width: 320px) and (max-width: 480px) {
  .header {
    height: 50px;
  }
}

@media (min-width: 481px) and (max-width: 768px) {
  .header {
    height: 60px;
  }
}
相关推荐
幻云201011 分钟前
Python机器学习:筑基与实践
前端·人工智能·python
web小白成长日记13 分钟前
Vue3中如何优雅实现支持多绑定变量和修饰符的双向绑定组件?姜姜好
前端·javascript·vue.js
晴天飛 雪19 分钟前
Spring Boot 接口耗时统计
前端·windows·spring boot
0思必得027 分钟前
[Web自动化] Selenium模拟用户的常见操作
前端·python·selenium·自动化
Apifox.40 分钟前
测试用例越堆越多?用 Apifox 测试套件让自动化回归更易维护
运维·前端·后端·测试工具·单元测试·自动化·测试用例
玉梅小洋1 小时前
Chrome设置链接自动跳转新标签页而不是覆盖
前端·chrome
CjwEVwbUqy1 小时前
基于YALMIP 的微网优化调度模型探索
sass
EndingCoder1 小时前
反射和元数据:高级装饰器用法
linux·运维·前端·ubuntu·typescript
Marshmallowc1 小时前
React性能优化:useState初始值为什么要用箭头函数?深度解析Lazy Initialization与Fiber机制
前端·react.js·性能优化·前端框架·react hooks
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-试卷管理模块完整优化方案
前端·人工智能·spring boot·架构·领域驱动