vue3中安装并使用CSS预处理器Sass的方法介绍
文章目录
- Sass是什么?
- 为什么使用Sass?
- 安装sass
- 1、安装sass
- 2、编写全局css变量/全局mixin
- 3、vite引入并使用
- 4、按需引入并使用
- sass语法
- 1、变量
- 创建一个变量
- 使用变量
- 变量作用域
- 2、数学计算
- 两个Sass有关于数学计算的“陷阱”
- 3、嵌套
- 4、Imports
- sass中文官网
Sass是什么?
Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CSS的功能,提供了更高级的语法和特性,例如变量、嵌套、混合、继承和颜色功能等,这些特性可以帮助开发者更高效地管理和维护样式表。Sass语法是基于缩进(缩进花括号)的,它与传统的CSS语法类似,但添加了一些额外的规则和语法结构。Sass代码需要编译成CSS代码才能在浏览器中呈现。
为什么使用Sass?
Sass让编写可维护的CSSS更加简易方便。可以用更少的代码,做更多的事,用更少的时间,具有更强的可读性。
安装sass
以前用vue-cli的时候,还要安装sass-loader、node-sass什么的,安装的时候还会遇到各种问题,但是vite其实安装sass就可以了,很简单。
1、安装sass
npm install sass -D
2、编写全局css变量/全局mixin
// 全局变量 / globalVar.scss
$font-size-normal: 32px;$bg-color: #1989fa;// 全局mixin / globalMixin.scss
@mixin box-shadow($bulr: 20px, $color: #1989fa7a) {-webkit-box-shadow: 0px 0px $bulr $color;-moz-box-shadow: 0px 0px $bulr $color;box-shadow: 0px 0px $bulr $color;
}
3、vite引入并使用
//全局引入
css: {preprocessorOptions: {scss: {/**如果引入多个文件,可以使用* '@import "@/assets/scss/globalVariable1.scss";* @import"@/assets/scss/globalVariable2.scss";'**/additionalData: '@import "@/style/globalVar.scss";',}}},
4、按需引入并使用
<style scoped lang="scss">
@import "@/style/globalMixin.scss";
.test{width: 650px;height: 60px;font-size: $font-size-normal;background-color: $bg-color;@include box-shadow;
}
sass语法
1、变量
Sass让CSS可以使用变量。变量类型可以是数字,字符串,颜色,null,列表和maps。在Sass中使用$符号定义变量。
创建一个变量
$primaryColor: #eeffcc;
定义变量并不会输出任何CSS,它们只会被记录在当前作用域的变量集中。
使用变量
body {background: $primaryColor;
}
变量作用域
如果你在选择器中声明了一个变量,那么它的作用范围就是这个选择器内部。
$primaryColor: #eeccff;
body {$primaryColor: #ccc;background: $primaryColor; //编译后#ccc
}
p {color: $primaryColor; //编译后#eeccff
}
Sass提供了一个!global标识符,可以在选择器中声明一个全局变量。
$primaryColor: #eeccff;
body {$primaryColor: #ccc !global;background: $primaryColor; //编译后#ccc
}
p {color: $primaryColor; //编译后#ccc
}
2、数学计算
与CSS不同,Sass允许使用数学表达式!这对于混合宏非常有用,是我们能够使用自己的标记做一些很酷的事情。
支持的操作符包括:
加:+
减:-
除:/
乘:*
取余:%
相等:==
不相等:!=
两个Sass有关于数学计算的“陷阱”
- /符号用来简写CSS字体属性,比如font: 14px/16px,所以如果你想在非变量值上使用除法操作符,那么你需要使用括号包裹它们:
$fontDiff: (14px/16px);
- 不可以混合使用值的单位:
$container-width: 100% - 20px;
基于基础的容器宽度创建一个动态列
$container-width: 100%;
.container {width: $container-width;
}
.col-4 {width: $container-width / 4;
}
// 编译后是这样的
// .container {
// width: 100%;
// }
//
// .col-4 {
// width: 25%;
// }
3、嵌套
Sass中一个很有用又经常被误用的特性,就是嵌套声明。
- CSS中,我们会这么写
.container {width: 100%;
}
.container h1 {color: red;
}
- 在Sass中,我们这样写
.container {width: 100%;h1 {color: red;}
}
- 可以通过使用&符号来引用父选择器给伪选择器添加链接属性
a.myAnchor {color: blue;&:hover {text-decoration: underline;}&:visited {color: purple;}
}
4、Imports
imports允许将总的样式分割成小文件,并在另一个文件中导入。
- 我们可以使用@import指令导入.scss文件
@import "grids.scss";
- 也可以不需要写扩展名
@import "grids";
sass中文官网
-
更多详细可以访问sass中文官网
-
在线css转sass代码
相关文章:
vue3中安装并使用CSS预处理器Sass的方法介绍
文章目录 Sass是什么?为什么使用Sass?安装sass1、安装sass2、编写全局css变量/全局mixin3、vite引入并使用4、按需引入并使用 sass语法1、变量创建一个变量使用变量变量作用域 2、数学计算两个Sass有关于数学计算的“陷阱” 3、嵌套4、Imports sass中文官网 Sass是…...
过滤器(Filter)
过滤器(Filter) 1. 基本概念 过滤器(Filter)是拦截 Request 请求的对象:在用户的请求访问资源前处理 ServletRequest 和 ServletResponse 。 Filter 相关的接口有:Filter、FilterConfig、FilterChain 。…...
AMRT3D数字孪生引擎详解
AMRT 3D数字孪生引擎介绍 AMRT3D引擎是一款融合了眸瑞科技的AMRT格式与轻量化处理技术为基础,以降本增效为目标,支持多端发布的一站式纯国产自研的CS架构项目开发引擎。 引擎包括场景搭建、UI拼搭、零代码交互事件、光影特效组件、GIS/BIM组件、实时数据…...
Sqlite数据库详解
1.关于Sqlite SQLite 是一个进程内库,它实现了一个独立的、无服务器的、零配置的事务性 SQL 数据库引擎。 SQLite的代码属于公共领域,因此对 用于任何目的,商业或私人目的。 SQLite是世界上部署最广泛的数据库 应用程序比我们能做的要多 计数…...
基于YOLOv8深度学习+Pyqt5的电动车头盔佩戴检测系统
wx供重浩:创享日记 对话框发送:225头盔 获取完整源码源文件已标注的数据集(1463张)源码各文件说明配置跑通说明文档 若需要一对一远程操作在你电脑跑通,有偿59yuan 效果展示 基于YOLOv8深度学习PyQT5的电动车头盔佩戴检…...
【数据结构】B树,B+树,B*树
文章目录 一、B树1.B树的定义2.B树的插入3.B树的中序遍历 二、B树和B*树1.B树的定义2.B树的插入3.B*树的定义4.B树系列总结 三、B树与B树的应用 一、B树 1.B树的定义 1. 在内存中搜索效率高的数据结构有AVL树,红黑树,哈希表等,但这是在内存…...
常用实验室器皿耐硝酸盐酸进口PFA材质容量瓶螺纹盖密封效果好
PFA容量瓶规格参考:10ml、25ml、50ml、100ml、250ml、500ml、1000ml。 别名可溶性聚四氟乙烯容量瓶、特氟龙容量瓶。常用于ICP-MS、ICP-OES等痕量分析以及同位素分析等实验,也可在地质、电子化学品、半导体分析测试、疾控中心、制药厂、环境检测中心等机…...
【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理
k8s集群的三种接口 k8s集群有三大接口: CRI:容器进行时接口,连接容器引擎--docker、containerd、cri-o、podman CNI:容器网络接口,用于连接网络插件如:flannel、calico、cilium CSI:容器存储…...
Pycharm一直打不开,无任何报错
我windows安装了pycharm一直打不开(无论专业版还是社区版都打不开),无任何弹窗,无任何报错 最后解决问题: 查看环境变量PYCHARM_VM_OPTIONS 发现有一个环境变量PYCHARM_VM_OPTIONS 删除PYCHARM_VM_OPTIONS这个环境变量,pycharm终…...
用html编写的小广告板
用html编写的小广告板 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…...
hive中如何取交集并集和差集
交集 要获取两个表的交集,你可以使用INNER JOIN或者JOIN: SELECT * FROM table1 JOIN table2 ON table1.column_name table2.column_name;也可以使用 INTERSECT 关键字 SELECT * FROM table1 INTERSECT SELECT * FROM table2;并集 要获取两个表的并集…...
2024.2.26
今天又复习了一下熟悉的C语言 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<windows.h>int main() {//数组初始化int n;scanf("%d", &n);int array[500];int i 0;for (i 0; i < n; i){scanf("%…...
【kubernetes】关于k8s集群的声明式管理资源
目录 一、声明式管理方法 二、资源配置清单管理 1、导出资源配置清单 2、修改资源配置清单并应用 2.1离线修改 2.2在线修改 三、通过资源配置清单创建资源对象 获取K8S资源配置清单文件模板? 关于配置清单常见的字段 方案一:手写yaml配置文件 …...
8.openEuler操作系统网络管理和防火墙(二)
openEuler OECA认证辅导,标红的文字为学习重点和考点。 如果需要做实验,建议安装麒麟信安、银河麒麟、统信等具有图形化的操作系统,其安装与openeuler基本一致。 3.通过IP命令配置网络 配置IP地址: 使用ip命令为接口配置地址,命令格式如下,其中 interface-name 为网卡名…...
1904_ARM Cortex M系列芯片特性小结
1904_ARM Cortex M系列芯片特性小结 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) ARM Cortex M系列的MCU用过好几款了,也涉及到了不同的内核。不过,关于这些内核的基本的特性还是有些不了解。从ARM的官方网站上找来了一个对比…...
热闹元宵进行中,如何利用VR全景展示民宿品牌形象?
错峰出游闹元宵,元宵节恰逢周末,而且还是春节假期返工之后的首个休息日,不少人都想通过短途度假来缓解“节后综合征”。两位数的特价机票、打折的各种酒店让你实现“旅行自由”,那么如何知道特价酒店服务好不好呢?先别…...
css3实现无缝滚动,鼠标经过暂停
js也可以实现,但css3更加的平滑和资源占用更少。下面是具体代码,动画要单独用一个类名,否则暂停估计不会生效: 原理:动画向上移动,目标完全消失后,从头开始,注意 动画移动高度是文本…...
SpringCache缓存专题
SpringCache缓存专题 学习目标 1、理解缓存存在的意义 2、掌握redis与SpringCache的集成方式 3、掌握SpringCache注解的使用 4、掌握项目集成SpringCache流程 第一章 基于SpringCache缓存方案 1.为什么需要缓存 前台请求,后台先从缓存中取数据࿰…...
Doris实战——结合Flink构建极速易用的实时数仓
目录 一、实时数仓的需求与挑战 二、构建极速易用的实时数仓架构 三、解决方案 3.1 如何实现数据的增量与全量同步 3.1.1 增量及全量数据同步 3.1.2 数据一致性保证 3.1.3 DDL 和 DML 同步 Light Schema Change Flink CDC DML 和DDL同步 3.2 如何基于Flink实现多种数…...
阿里开源低代码引擎 - Low-Code Engine
阿里开源低代码引擎 - Low-Code Engine 本文主要介绍如何在Windows运行/开发阿里开源低代码引擎 - Low-Code Engine 详细文档参见【 阿里开源低代码引擎 - Low-Code Engine 官方文档】 目录 阿里开源低代码引擎 - Low-Code Engine一、环境准备1、使用 WSL 在 Windows 上安装 L…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
