当前位置: 首页 > news >正文

巧用scss实现一个通用的媒介查询代码

巧用scss实现一个通用的媒介查询代码

效果展示

在这里插入图片描述

实现代码

<template><div class="page-root"><div class="header"></div><div class="content"><div class="car-item" v-for="item in 9"></div></div></div>
</template><script setup></script><style scoped lang="scss">
// 断点列表
$breakpoints: ('s':(320px,767px),'m':(768px,991px),'l':(992px,1200px),'xl':1201px,
);// 混合
@mixin respond-to($name){$bp:map-get($breakpoints,$name);@if type-of($bp) == "list"{$min:nth($bp,1);$max:nth($bp,2);@media (min-width:$min) and (max-width:$max){@content;}}@else{@media (min-width:$bp){@content;}}
}.page-root{background-color: #f1f1f1;height: 100vh;width: 100vw;padding: 20px 10%;overflow: auto;@include respond-to('s'){padding: 10px;}@include respond-to('m'){padding: 20px 5%;}.header{height: 60px;width: 100%;background-color: white;}.content{margin-top: 15px;display: grid;grid-template-columns: repeat(3,1fr);gap: 15px;@include respond-to('s'){gap: 10px;margin-top: 10px;grid-template-columns: repeat(1,1fr);}@include respond-to('m'){grid-template-columns: repeat(2,1fr);}.car-item{aspect-ratio: 16/9;background-color: white;}}
}
</style>

代码解析

  • $breakpoints 用作定义一个map,代码中我们定义了不同屏幕的尺寸,如果值是一个数组,也用小括号包裹起来
  • map-get($breakpoints,$name) 从map中获取指定的value,第一个参数时map,第二个参数是key
  • type-of 用于判断一个值的类型,如果是数组类型则返回 list
  • nth($bp,1) 从数组中获取第一项
  • @content 类似与插槽,在 @include 的方法体中编写的样式会被用于这里

基于以上我们就实现了一个通用的媒体查询代码,以后在开发过程中如果需要适配不同的设备,我们只需要使用 @include 为不同大小的设备编写不同的样式即可,不需要每次都去编写重复的媒介查询代码

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 破圈之路——写在创作纪念日
  • 【软件测试专栏】认识软件测试、测试与开发的区别
  • 【3.9】贪心算法-解最低加油次数
  • 【机器学习】在 scikit-learn 中,有哪些特征编码方法?分布详细举例列出
  • 数据结构的三要素以及数据类型和抽象数据类型
  • Ubuntu下安装和配置MQTT服务器Mosquitto
  • AMD简介
  • JavaWeb - Spring Boot
  • 一维/二维高斯分布的负对数似然推导
  • 前后端分离的security角色权限实现
  • 智能合约漏洞(四)
  • 接口测试 —— 如何设计高效的测试用例!
  • 使用 nuxi build-module 命令构建 Nuxt 模块
  • C语言中的“#”和“##”
  • 三维前缀和 C++
  • 【翻译】babel对TC39装饰器草案的实现
  • 10个最佳ES6特性 ES7与ES8的特性
  • Apache的基本使用
  • canvas 五子棋游戏
  • CSS 三角实现
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Javascript弹出层-初探
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python学习之路13-记分
  • scrapy学习之路4(itemloder的使用)
  • 阿里云Kubernetes容器服务上体验Knative
  • 服务器之间,相同帐号,实现免密钥登录
  • 基于遗传算法的优化问题求解
  • 日剧·日综资源集合(建议收藏)
  • 三栏布局总结
  • 移动端解决方案学习记录
  • No resource identifier found for attribute,RxJava之zip操作符
  • AI算硅基生命吗,为什么?
  • 整理一些计算机基础知识!
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (排序详解之 堆排序)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十八)Flink CEP 详解
  • (小白学Java)Java简介和基本配置
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • .a文件和.so文件
  • .htaccess配置重写url引擎
  • .NET delegate 委托 、 Event 事件
  • .Net MVC4 上传大文件,并保存表单
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /boot 内存空间不够