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

vue3第三十节(vue3 vite中使用sass)

引言:什么是Sass?

Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CSS的功能,提供了更高级的语法和特性,例如变量、嵌套、混合、继承和颜色功能等,这些特性可以帮助开发者更高效地管理和维护样式表。Sass语法是基于缩进(缩进花括号)的,它与传统的CSS语法类似,但添加了一些额外的规则和语法结构。Sass代码需要编译成CSS代码才能在浏览器中呈现。

Sass 有什么好处呢?

Sass让编写可维护的CSS更加简易方便。可以用更少的代码,做更多的事,用更少的时间,具有更强的可读性
比如全局定义的样式,变量,可以统一修改,避免重复书写样式

一、安装Sass

使用vite 创建好 vue 项目
vite 项目中只需要安装 sass 即可,不像 webpack项目 需要安装 node-sass sass-loader;
执行如下命令 npm i sass --save-dev

二、使用Sass

安装完成后便可以在项目中使用Sass,

需要在style标签中设置lang属性为scss

如:

<style scoped lang="scss">.container{width: 100%;height: auto;}
</style>

三、配置Sass全局共享变量

1.配置全局
Sass中我们可以自定义变量,一些变量往往是全局共享的,为了方便我们可以在vite.config.jsdefineConfig里面添加配置如下:

自定义全局样式文件:varibles.scss

 css: {// css预处理器preprocessorOptions: {scss: {// 引入 varibles.scss 这样就可以在全局中使用 varibles.scss中预定义的变量了// 给导入的路径最后加上 ; additionalData: '@import "@/assets/style/varibles.scss";'}}}

@import "@/assets/style/varibles.scss" 为自己定义的全局css 样式
如下:
1、定义的全局变量

:root {--GBrand: #0084FF;--GBrandHover: #1F93FF;--GBaseL1: #28374F;// ...
}

也可以直接使用 $ 符号定义变量
如:

$barndColor: #0084FF;
$waringColor:#FF9200;

// 全局mixin

@mixin box-shadow($bulr: 20px, $color: #AAB1BD) {-webkit-box-shadow: 0px 0px $bulr $color;-moz-box-shadow: 0px 0px $bulr $color;box-shadow: 0px 0px $bulr $color;
}

不同的定义方式,最好是分开文件声明,不要混淆在一个文件中,便于后期维护

使用方法:

<style scoped lang="scss">.main-container{color: var(--GBrand);background--color: $barndColor;&-title{/* sass 嵌套样式 */color: var(--GBaseL1);}}
</style>

// 编译后为 data-v-xxxx 为 vue 中样式表自动生成的hash

.main-container [data-v-xxxx]{color: #0084FF;background-color: ##0084FF;
}
.main-container .main-container-title[data-v-xxxx]{color: #28374F;
}

2.不配置全局,单独引入

在单个使用文件中引入

<style scoped lang="scss">@import '@/assets/style/varibles.scss'
</style>

3、数学计算
Sass允许使用数学表达式!这对于混合宏非常有用,是我们能够使用自己的标记做一些很酷的事情。

支持的操作符有:

加:+
减:-
除:/
乘:*
取余:%
相等:==
不相等:!=

两个Sass有关于数学计算的“陷阱” /符号用来简写CSS字体属性,比如font: 12px/18px,所以如果你想在非变量值上使用除法操作符,那么你需要使用括号包裹它们:

$fontSizeDiff: (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%;
//  }

以上仅代表个人观点,若有错误之处,欢迎批评指正

相关文章:

vue3第三十节(vue3 vite中使用sass)

引言&#xff1a;什么是Sass? Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一种CSS预处理器&#xff0c;它扩展了CSS的功能&#xff0c;提供了更高级的语法和特性&#xff0c;例如变量、嵌套、混合、继承和颜色功能等&#xff0c;这些特性可以帮助开发…...

blender 烘焙渲染图片,已经导出fbx,导出贴图。插件生成图片

1.新建一个模型。选择资产浏览器的材质&#xff0c;并拖动到模型身上&#xff0c;如下图。资产浏览器的材质可以网上找。 2.打开着色器面板。正下方着色器窗口中&#xff0c;点击空白取消选择&#xff0c;然后右击-添加-着色器-原理化BSDF&#xff0c;右击-添加-纹理-图像纹理。…...

ASO行业面临洗牌,苹果应用商店加搜索广告!

苹果公司全球市场营销高级副总裁菲尔席勒(Phil Schiller),在全球开发者大会开幕前(WWDC)透露了一些应用商店方面的消息。重点包括:1.应用商店搜索中加入广告;2.应用审核加快;3.新的商业模式。 一、 Search Ads搜索广告 这是最令人惊讶的改变,苹果在App Store平台的搜索结果中加…...

Labelme自定义数据集COCO格式【实例分割】

参考博客 labelme标注自定义数据集COCO类型_labelme标注coco-CSDN博客 LabelMe使用_labelme中所有的create的作用解释-CSDN博客 1制作自己的数据集 1.1labelme安装 自己的数据和上面数据的区别就在于没有.json标签文件&#xff0c;所以训练自己的数据关键步骤就是获取标签文…...

【网络安全】Linux 应急响应-溯源-系统日志排查知识点

Linux 应急响应-溯源-系统日志排查知识点汇总 1. 查看当前已经登录到系统的用户 (w 命令) w2. 查看所有用户最近一次登录 (lastlog 命令) lastlog lastlog | grep -v "Never logged in"3. 查看历史登录用户以及登录失败的用户 (last 和 lastb 命令) last lastb4. …...

Spark项目实训(一)

目录 实验任务一&#xff1a;计算级数 idea步骤分步&#xff1a; 完整代码&#xff1a; linux步骤分布&#xff1a; 实验任务二&#xff1a;统计学生成绩 idea步骤分布&#xff1a; 完整代码&#xff1a; linux步骤分步&#xff1a; 实验任务一&#xff1a;计算级数 请…...

爬虫基础1

一、爬虫的基本概念 1.什么是爬虫&#xff1f; 请求网站并提取数据的自动化程序 2.爬虫的分类 2.1 通用爬虫&#xff08;大而全&#xff09; 功能强大&#xff0c;采集面广&#xff0c;通常用于搜索引擎&#xff1a;百度&#xff0c;360&#xff0c;谷歌 2.2 聚焦爬虫&#x…...

vlan综合实验

1、实验拓扑 2、实验要求 1、pc1和pc3所在接口为access;属于vlan 2; pc2/pc4/pc5/pc6处于同一网段&#xff1b;其中pc2可以访问pc4/pc5/pc6&#xff1b; pc4可以访问pc6&#xff1b;pc5不能访问pc6&#xff1b; 2、pc1/pc3与pc2/pc4/pc5/pc6不在同一网段; 3、所有pc通过DHC…...

如何使用ffmpeg 实现10种特效

相关特效的名字 特效id 特效名 1 向上移动 2 向左移动 3 向下移动 4 颤抖 5 摇摆 6 雨刷 7 弹入 8 弹簧 9 轻微跳动 10 跳动 特效展示(同时汇总相关命令) pad背景显示 pad背景透明 相关命令(一会再讲这些命令&#xff0c;先往下看) # 合成特效语音 ffmpeg -y -loglevel erro…...

C语言如果变量全部在全局内存空间会怎么样

结论先行 应该根据内存使用的生命周期&#xff0c;选择合适的内存空间应该尽量使用连续内存如果不想在设计封装性上付出太多代价&#xff0c;全部放入全局空间也比较可取 空间类型特点全局空间生命周期最久&#xff0c;空间连续&#xff0c;变量分配紧致&#xff0c;但存在浪…...

【YOLO改进】换遍MMPretrain主干网络之ConvNeXt-Tiny(基于MMYOLO)

ConvNeXt-Tiny ConvNeXt-Tiny 是一种改进的卷积神经网络架构&#xff0c;其设计目的是在保持传统卷积神经网络优势的同时&#xff0c;借鉴了一些Transformer架构的成功经验。 ConvNeXt-Tiny 的优点 架构优化&#xff1a; ConvNeXt-Tiny 对经典ResNet架构进行了多种优化&#…...

【数据库】MySQL

文章目录 概述DDL数据库操作查询使用创建删除 表操作创建约束MySqL数据类型数值类型字符串类型日期类型 查询修改删除 DMLinsertupdatedelete DQL基本查询条件查询分组查询分组查询排序查询分页查询 多表设计一对多一对一多对多设计步骤 多表查询概述内连接外连接 子查询标量子…...

JVM运行时内存:垃圾回收器(Serial ParNew Parallel )详解

文章目录 1. 查看默认GC2. Serial GC : 串行回收3. ParNew GC&#xff1a;并行回收4. Parallel GC&#xff1a;吞吐量优先 1. 查看默认GC -XX:PrintCommandLineFlags&#xff1a;查看命令行相关参数&#xff08;包含使用的垃圾收集器&#xff09;使用命令行指令&#xff1a;ji…...

The Missing Semester of Your CS Education(计算机教育中缺失的一课)

Shell 工具和脚本(Shell Tools and Scripting) 一、shell脚本 1.1、变量赋值 在bash中为变量赋值的语法是foobar&#xff0c;访问变量中存储的数值&#xff0c;其语法为 $foo。 需要注意的是&#xff0c;foo bar &#xff08;使用空格隔开&#xff09;是不能正确工作的&…...

如何为ChatGPT编写有效的提示词:软件开发者的指南

作为一名软件开发者&#xff0c;特别是使用Vue进行开发的开发者&#xff0c;与ChatGPT等AI助手高效互动&#xff0c;可以极大地提升你的开发效率。本文将深入探讨如何编写有效的提示词&#xff0c;以便从ChatGPT中获取有用的信息和帮助。 1. 明确目标 在编写提示词之前&#…...

angular插值语法与属性绑定

在 Angular 中&#xff0c;您提供的两种写法都是用来设置 HTML 元素的 title 属性&#xff0c;但它们的工作方式有所不同&#xff1a; 插值语法 (Interpolation) <h1 title"{{ name }}">我的名字</h1> 属性绑定 (Property Binding) <h1 [title]&q…...

Python ❀ 使用代码解决今天中午吃什么的重大生存问题

1. 环境安装 安装Python代码环境参考文档 2. 代码块 import random# 准备一下你想吃的东西 hot ["兰州拉面", "爆肚面", "黄焖鸡", "麻辣香锅", "米线", "麻食", "羊肉泡馍", "肚丝/羊血汤&qu…...

做抖音小店需要清楚的5个核心点!

大家好&#xff0c;我是喷火龙。 不管你是在做抖音小店&#xff0c;还是在做其他的电商平台&#xff0c;如果已经做了一段时间了&#xff0c;但还是没有拿到什么结果&#xff0c;我所指的结果不是什么大结果&#xff0c;而是连温饱都解决不了&#xff0c;甚至说还在亏钱。 有…...

文件流下载优化:由表单提交方式修改为Ajax请求

如果想直接看怎么写的可以跳转到 解决方法 节&#xff01; 需求描述 目前我们系统导出文件时&#xff0c;都是通过表单提交后&#xff0c;接收文件流自动下载。但由于在表单提交时没有相关调用前和调用后的回调函数&#xff0c;所以我们存在的问题&#xff0c;假如导出数据需…...

基础3 探索JAVA图形编程桌面:逻辑图形组件实现

在一个宽敞明亮的培训教室里&#xff0c;阳光透过窗户柔和地洒在地上&#xff0c;教室里摆放着整齐的桌椅。卧龙站在讲台上&#xff0c;面带微笑&#xff0c;手里拿着激光笔&#xff0c;他的眼神中充满了热情和期待。他的声音清晰而洪亮&#xff0c;传遍了整个教室&#xff1a;…...

Rust会议活动awesome-rust:技术大会与社区聚会信息

Rust会议活动awesome-rust&#xff1a;技术大会与社区聚会信息 你是否还在为寻找Rust技术大会与社区聚会信息而烦恼&#xff1f;是否希望能一站式获取全球Rust相关活动&#xff0c;与同行交流学习&#xff1f;本文将为你详细介绍如何通过awesome-rust项目了解和参与Rust会议活…...

EB Garamond 12免费复古字体:完整指南与快速上手教程

EB Garamond 12免费复古字体&#xff1a;完整指南与快速上手教程 【免费下载链接】EBGaramond12 项目地址: https://gitcode.com/gh_mirrors/eb/EBGaramond12 EB Garamond 12是一款基于16世纪经典Garamond字体设计的开源免费字体&#xff0c;完美复刻文艺复兴时期的印刷…...

Linux grep 命令的使用指南

Linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索1234# 在文件中搜索指定字符串grep "search_pattern" file.txt# 示例&#xff1a;搜索包含"error"的行grep "error" /var/log/syslog2. 多文件搜索1234# 在多个文件中搜索grep "…...

备战蓝桥杯效率翻倍:用快马平台一键生成算法测试脚手架

最近在备战蓝桥杯&#xff0c;发现很多时间都花在了重复搭建测试环境和编写输入输出代码上。为了提高效率&#xff0c;我用InsCode(快马)平台做了一个通用算法测试脚手架&#xff0c;分享下这个能提升备赛效率的实用工具。 项目设计思路 这个脚手架的核心目标是减少重复劳动。蓝…...

MongoDB中大型文本字段怎么存_GridFS切分与外部存储对比

会。MongoDB单文档上限16MB&#xff0c;但超2MB字符串易致客户端OOM或超时&#xff1b;GridFS非自动魔法&#xff0c;需手动管理分块、拼接与清理&#xff1b;大文本应优先存OSS/S3&#xff0c;Mongo仅存元数据。大文本存MongoDB会撑爆内存吗&#xff1f;会。MongoDB单文档上限…...

Doorkeeper与Active Storage集成终极指南:如何为OAuth认证系统添加文件上传功能 [特殊字符]

Doorkeeper与Active Storage集成终极指南&#xff1a;如何为OAuth认证系统添加文件上传功能 &#x1f680; 【免费下载链接】doorkeeper Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape. 项目地址: https://gitcode.com/gh_mirrors/do/doorkeeper Doorke…...

seo推广平台的报告数据如何看

SEO推广平台的报告数据如何看&#xff1a;深度解析与实用指南 在当今数字化竞争激烈的市场环境中&#xff0c;SEO推广平台的报告数据成为了衡量网站运营效果的重要指标。无论是初创企业还是成熟品牌&#xff0c;SEO数据的分析与解读直接关系到网站的流量、转化率以及品牌的市场…...

万象视界灵坛部署案例:阿里云ECS GPU实例一键拉起Omni-Vision Sanctuary服务

万象视界灵坛部署案例&#xff1a;阿里云ECS GPU实例一键拉起Omni-Vision Sanctuary服务 1. 项目概述 万象视界灵坛&#xff08;Omni-Vision Sanctuary&#xff09;是一款基于OpenAI CLIP技术的高级多模态智能感知平台。这个创新性的解决方案将复杂的视觉识别任务转化为直观、…...

Ostrakon-VL-8B多模态能力解析:图文联合理解在零售场景的体现

Ostrakon-VL-8B多模态能力解析&#xff1a;图文联合理解在零售场景的体现 1. 零售场景中的多模态挑战 现代零售行业面临着复杂的视觉理解需求。传统计算机视觉系统通常只能完成单一任务&#xff0c;比如商品识别或文字提取&#xff0c;而无法同时理解图像中的多种元素及其相互…...

忍者像素绘卷惊艳作品集:16-Bit复古美学+火之意志主题像素艺术展

忍者像素绘卷惊艳作品集&#xff1a;16-Bit复古美学火之意志主题像素艺术展 1. 像素艺术的革命性突破 忍者像素绘卷代表了当前像素艺术生成技术的巅峰之作。这款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;成功将传统忍者文化与现代AI技术完美融合&#xff0c;创…...