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

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代码

http://www.lryc.cn/news/306984.html

相关文章:

  • 过滤器(Filter)
  • AMRT3D数字孪生引擎详解
  • Sqlite数据库详解
  • 基于YOLOv8深度学习+Pyqt5的电动车头盔佩戴检测系统
  • 【数据结构】B树,B+树,B*树
  • 常用实验室器皿耐硝酸盐酸进口PFA材质容量瓶螺纹盖密封效果好
  • 【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理
  • Pycharm一直打不开,无任何报错
  • 用html编写的小广告板
  • hive中如何取交集并集和差集
  • 2024.2.26
  • 【kubernetes】关于k8s集群的声明式管理资源
  • 8.openEuler操作系统网络管理和防火墙(二)
  • 1904_ARM Cortex M系列芯片特性小结
  • 热闹元宵进行中,如何利用VR全景展示民宿品牌形象?
  • css3实现无缝滚动,鼠标经过暂停
  • SpringCache缓存专题
  • Doris实战——结合Flink构建极速易用的实时数仓
  • 阿里开源低代码引擎 - Low-Code Engine
  • 2024-02-23(Spark)
  • 【JavaSE】实用类——枚举类型、包装类、数学类
  • Qt中常见的JS类和函数(二): 全局对象
  • mysql 安装 与 使用
  • 2月26日做题总结(C/C++真题)
  • 创作纪念日:记录我的成长与收获
  • 全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法
  • excel数据导入到数据库的方法
  • Runaway Queries 管理:提升 TiDB 稳定性的智能引擎
  • K8S部署Java项目(Gitlab CI/CD自动化部署终极版)
  • 对Redis锁延期的一些讨论与思考