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

news/2024/9/18 12:35:15/ 标签: scss, 前端, css

css>scss_1">巧用css>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="css>scss">css">
// 断点列表
$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 为不同大小的设备编写不同的样式即可,不需要每次都去编写重复的媒介查询代码


http://www.ppmy.cn/news/1518451.html

相关文章

理解进程与线程

1.1理解分时技术 随着计算器处理能力的逐步提高&#xff0c;计算机处理多道程序成为了可能。 所谓分时技术&#xff0c;就是把处理器的运行时间分成很短的时间片&#xff0c;按时间片轮流把处理器给各程序使用。这样在时间线上表现为线性&#xff0c;但是在体感上感觉是一起执…

python 腾讯会议录屏文件转化为MP4

import osimport ffmpeg from ffmpeg import output, rundef convert_wemtv_to_mp4(input_file, output_dir):"""将 WEMTV 文件转换为 MP4 文件并保存Args:input_file (str): 输入 WEMTV 文件路径output_dir (str): 输出 MP4 文件保存目录"""try…

前端常考面试题

1. 列举JS常用算法 2. 排序算法有哪些 3. Vue和React 的区别 4. Vue生命周期 5. created 和 mounted的区别 6. Promise的方法和状态

LuaJit分析(六)luajit -bl 命令分析

Luajit -bl命令用于将luajit字节码文件或者lua脚本文件反汇编&#xff0c;输出汇编指令&#xff0c;很好奇怎么将字节码文件和lua脚本文件放在一块处理的&#xff0c;下面一步步分析&#xff1a; luajit虚拟机由luajit.c文件生成&#xff0c;首先定位到main函数&#xff0c;代…

数据安全守护者:精通数据备份与恢复的艺术

数据安全守护者&#xff1a;精通数据备份与恢复的艺术 在数字化时代&#xff0c;数据的价值不言而喻。然而&#xff0c;硬件故障、软件错误、人为操作失误甚至恶意攻击都可能威胁到数据的安全。因此&#xff0c;数据备份和恢复策略成为了保护数据不可或缺的手段。本文将深入探…

探索Scratch的边界:打造虚拟现实(VR)与增强现实(AR)体验

标题&#xff1a;探索Scratch的边界&#xff1a;打造虚拟现实(VR)与增强现实(AR)体验 Scratch&#xff0c;作为一款广受欢迎的图形化编程工具&#xff0c;主要面向儿童和初学者&#xff0c;用于教授编程基础。然而&#xff0c;随着技术的发展和社区的创新&#xff0c;Scratch的…

Java——断点调试

一、断点调试简介 Java的断点调试是程序开发中非常重要的一个技术&#xff0c;它允许开发者在程序执行时暂停执行&#xff0c;以便检查变量的状态、观察程序的流程、并定位错误。 1、断点&#xff08;Breakpoint&#xff09;&#xff1a; 在代码的某一行指定的暂停点。当程序…

XSS LABS - Level 20 过关思路

关注这个靶场的其他相关笔记:XSS - LABS —— 靶场笔记合集-CSDN博客 0x01:环境配置 提示:Flash 逆向工具 JPEXS 配置请看 Level 19 的过关流程,这里就不重新教怎么安装配置了。 要想完成本关,需要下载 Flash,不然就会出现下面的情况: 我个人建议,是直接下载一个 Flash…

聚铭网络亮相“宁创新品”——“新质城建”应用场景发布会

场景孕育先机&#xff0c;创新凝聚未来。8月28日&#xff0c;“宁创新品”——南京市“新质城建”应用场景发布会在南京国际博览会议中心盛大举办&#xff0c;聚铭网络携旗下智慧安全运营中心产品精彩亮相。 此次推介会由南京市工信局、南京市城建集团主办&#xff0c;南京市…

Eclipse 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 打开字体设置页面3. 找到Text Font&#xff0c;点击修改4. 修改字体 前言 Eclipse 自定义字体大小&#xff0c;统一设置为 Courier New &#xff0c;大小为 三号 具体操作 【Windows】>【Perfer…

【Rust光年纪】解锁Rust开发新姿势:数据库客户端和搜索引擎库探秘

用Rust打造高效应用&#xff1a;数据库客户端与搜索引擎库全攻略 前言 随着Rust语言的不断发展&#xff0c;越来越多的优秀库和工具涌现出来&#xff0c;为开发者提供了更多选择和便利。本文将介绍几个用于Rust语言的数据库客户端和搜索引擎库&#xff0c;它们在不同领域都展…

static关键字与单例模式

可以修饰属性变量&#xff0c;方法和代码段 static修饰的属性称为静态属性或类属性&#xff0c; 在类加载时就在方法区为属性开辟存储空间&#xff0c;无论创建多少个对象&#xff0c;静态属性在内存中只有一份。 可以使用 类名.静态属性 的方式引用 static修饰的方法称为静态…

Tomcat 环境配置及部署Web项目

一.环境 Java Tomcat 二.Java环境 1.下载安装JDK 2.修改及新建环境变量 3.查看Java 版本 三.Tomcat 环境 1.下载及解压Tomcat 2.配置环境变量 3.验证安装,运行startup.bat 访问&#xff1a;http://localhost:8080/ 三.Web项目 1.修改Tomcat配置文件 2.拷贝W…

【持续更新】nPlayer Premium v1.7.7.7-191219安卓知名播放器最新免费高级修改版

nPlayer&#xff0c;也是安卓上一个非常强大的播放器。 ▨ 高级版亮点功能&#xff1a; • 多语言字幕支持&#xff1a;无论是电影还是电视剧&#xff0c;都能轻松添加多种语言字幕&#xff0c;让观影体验更上一层楼 • Chromecast 投屏&#xff1a;借助 Chromecast&#xff0…

在 Windows 11上安装 .NET Framework 3.5

在 Windows 11上安装 .NET Framework 3.5 在控制面板中启用 .NET Framework 3.5 在安装某些软件时&#xff0c;会弹出以下界面&#xff0c;显示需要安装【 .NET Framework 3.5】。 安装微软官方建议进行安装&#xff1a; Microsoft-https://learn.microsoft.com/zh-cn/dotnet…

PostgreSQL LIMIT 子句的使用与优化

PostgreSQL LIMIT 子句的使用与优化 引言 PostgreSQL 是一款功能强大的开源关系型数据库管理系统&#xff0c;它以其稳定性、可扩展性和高性能而闻名。在处理大量数据时&#xff0c;我们经常需要限制返回的记录数量&#xff0c;以提高查询效率和减少数据传输量。这时&#xf…

linux下一切皆文件,如何理解?

linux下一切皆文件&#xff0c;不管你有没有学过linux&#xff0c;都应该听过这句话&#xff0c;就像java的一切皆对象一样。 今天就来看看它的真面目。 你记住了&#xff0c;只要一个竞争退出它的PCB要被释放文件名&#xff0c;客服表也要被释放。那么&#xff0c;指向这个文件…

ShenNiusModularity项目源码学习(3:用户登录)

第一篇文章中搞错了一件事&#xff0c;ShenNiusModularity项目启动并非需要同时启动ShenNius.Admin.Mvc和ShenNius.Admin.Hosting两个项目&#xff0c;仅需启动前者即可登录后台管理系统&#xff0c;而后者是支持前后端分离的API宿主项目&#xff0c;供其它前后端分离的项目调用…

github怎么删除项目

github怎么删除项目 ‌在‌GitHub上删除项目可以通过网页端或‌Git命令行两种方式进行。‌ 通过网页端删除项目 打开GitHub官网并登录账号。进入需要删除的项目页面。点击页面右上角的“Settings”按钮。滚动页面到底部&#xff0c;找到“Danger Zone”区域。点击“Delete t…

Python 数据分析— Numpy 基本操作(下)

文章目录 学习内容&#xff1a;一、数组的合并与分割二、数组的聚合运算三、其他操作 学习内容&#xff1a; 一、数组的合并与分割 &#xff08;一&#xff09;数组的合并操作 1. concatenate((数组1,数组2,…),axis[默认0:列数同&#xff0c;纵向合并 | 1:行数同&#xff0c…