首页 > 其他分享 >Sass基础功能介绍

Sass基础功能介绍

时间:2024-02-26 20:44:43浏览次数:23  
标签:功能 sass Sass color 混入 介绍 导入 css

本文将从入门角度介绍Sass的极大特性和基本语法, 由于作者初学Sass, 若有不当之处还请指正.

Sass介绍

img

  • Sass 是一个 CSS 预处理器。

  • Sass 是 CSS 扩展语言,可以帮助我们减少 CSS 重复的代码,使css代码更"像代码"

  • 有sass和scss两种写法, 有区别符号分别为缩进和大括号, 下文主要使用的是scss符号.

说实话, 这个logo真好看

一、Sass特性:变量

​ Sass在css语言的基础上增加了变量, 比如一个变量可以代表一种被规定好的css属性,从而简化编程.

​ 变量主要有以下这些特点:

​ 1.在sass中, 用$符号表示声明变量

//下面的代码声明了"字体特征myFont"和"颜色myColor"两个变量, 并直接使用
$myFont: Helvetica, sans-serif;
$myColor: red;
body {
  font-family: $myFont;
  color: $myColor;
}

2.在sass中, 变量的作用域就是其所在的层级

$myColor: red;
div{
    color:$myColor;
}
//div中字体呈现红色
p{
    $myColor: green;
    color:$myColor;
}
//p中字体呈现绿色
  • 注:在各个层级声明变量时, 都可以使用在声明变量语句后加!global的方式使此变量成为全局变量

    如:$myColor: red !global;

二、Sass特性:嵌套

​ 1.在sass中, 可以将父子关系表现在大括号的嵌套中, 达到后代选择器的功效

nav {
  		ul {
  		........
 		 }
  
  		li {
		  ........
  		}
}

​ 上述代码转换为css代码如下:

nav ul{
.......
}
nav li{
.......
}

​ 2.在scss中, 可以将多个相同前缀的属性嵌套在该前缀中, 下文代码同时编辑了前缀为 font / text 的多个属性:

font: {
  family: Helvetica, sans-serif;
  size: 18px;
  weight: bold;
}

text: {
  align: center;
  transform: lowercase;
  overflow: hidden;
}

三、Sass指令:导入

​ 1.sass可以进行sass/css文件的导入, 导入后,文件中的sass/css样式在此文件中同样生效.

  • 注:导入.scss文件时不用添加后缀, 会自动添加.

  • 首先我们创建一个名为reset.css的文件:

    html,body,ul,ol { margin: 0; padding: 0; }

  • 下面执行导入指令:

//导入reset.scss文件
@import "reset";

//正常写点代码
body {
  color: red;
}

​ 此文件最终包含我们写的代码和导入文件中的代码, 转换成css代码如下:

html, body, ul, ol {
  margin: 0;
  padding: 0;
}

body {
  color: red;
}

​ 2.导入后,sass文件会被编译为css文件, 如果就想导入sass文件怎么办呢?

  • 可以在文件开头加下划线_ ,那么导入时就之后导入sass文件的原文代码

  • 注意:若带下划线与不带下划线的同名文件放置在同一个目录下,带下划线的文件将会被忽略。

四、Sass指令:混入

​ 1.如果我们想多次使用一个较为常用的样式, 可以用@mixin指令先定义一个混入:

//定义一个名为"useful-style"样式
@mixin useful-style{
    color:red;
    font-size: 20px;
}

​ 2.定义完此混入后, 就可以通过@include指令引入该混入:

.style {
  @include useful-style;
   background-color: green;
}
//这个元素不仅有绿色的背景色, 还有useful-style中定义的字体特性

​ 3.混入中也可以包含混入,下文代码将三个混入包含到一个混入中,当以后使用这一个大的混入之时, 其内部会包含三个子混入的定义内容:

 @mixin special-text {
 @include important-text;
 @include link;
 @include special-**border**;
}

​ 4.我们可以定义带变量的混入, 这样调用混入时可给混入传递参数, 更加方便:

//定义可以接收两个参数的混入, 这两个参数将作为color, width变量被用于border样式的设定中
@mixin bordered($color, $width) {
  border: $width solid $color;
}

// 调用这个混入,并传递两个参数
.myArticle {
  @include bordered(blue, 1px);  
}

​ 5.有时,不能确定一个混入(mixin)使用多少个参数,这时我们就可以使用 ...来设置可变参数.

@mixin box-shadow($shadows...) {
      box-shadow: $shadows;
}

.shadows {
  @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);
}

于是, 后缀加了...的shadows变量接收了两个参数, css内容如下:

.shadows {
  box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;
}

五、Sass指令:继承

​ 当一个选择器和另一个选择器有较多的相同之处时,我们可以使用@extend指令进行特性的继承, 在继承指令之后再做增添和修改

.button-basic  {
  padding: 15px 30px;
}

.button-report  {
  @extend .button-basic;
  background-color: red;
}

​ CSS代码如下:

.button-basic, .button-report {
  padding: 15px 30px;
}

.button-report  {
  background-color: red;
}

六、Sass函数

Sass中也有很多函数, 我们可以调用, 可以访问这个网址查看:Sass 函数 | 菜鸟教程 (runoob.com)

当然,本文的大部分内容都是重述一遍此网址

标签:功能,sass,Sass,color,混入,介绍,导入,css
From: https://www.cnblogs.com/Fgociallo/p/18035137

相关文章

  • Apipost 数据模型功能API数据重复利用起来
    在Apipost数据模型中用户可以预先创建多个数据模型,并在API设计过程中重复利用这些模型来构建API创建数据模型在左侧导航点击「数据模型」-「新建数据模型」在右侧工作台配置数据模型参数 引入数据模型在API设计预定义响应期望下点击引用数据模型,并选择需要导入的数据模型......
  • 智慧安防视频监控平台EasyCVR通道播放支持添加水印及操作步骤介绍
    智慧安防视频监控平台EasyCVR采用了开放式的网络结构,系统可支持的接入协议包括:国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等,兼容各品牌的IPC、NVR、移动手持终端、执法仪、布控球、无人机等设备......
  • 视频汇聚平台EasyDarwin音视频流媒体视频平台新增视频拉流转推流功能
    ​在这个信息爆炸的时代,视频内容的生产和消费已经成为我们日常生活的一部分。随着技术的不断进步,视频处理和传输的方式也在不断地演变和升级。今天,我要向大家介绍的是一个令人振奋的消息——视频汇聚平台EasyDarwin新增了视频拉流转推流功能,这一创新之举无疑将为视频内容的传......
  • 一机在手,畅游全园——麻城孝感乡文化园电子导游介绍
    作为大型景区(或自然园区等),你是否担心游客有以下苦恼“卫生间在哪?””停车场怎么去?“......别担心!看看人家的电子导览怎么做的!下面请和小编一起解锁这个宝藏平台吧。​作者:轻轻的烟雾(z281099678) 搜索并关注园区官方微信公众号“麻城孝感乡文化园”,在底部菜单栏选择【电......
  • 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别
    findgoal.log.*.gz-mtime+2-execrm-rf{}\;findgoal.log.*.gz-mtime+3|xargsrm-f前言:find命令一直都是系统管理员的常用命令之一,其参数中“-exec”尤其实用。而“xargs”命令,针对查询也有属于自己的见解。本文着重讲解的是围绕find命令查询为主线,使用-exe......
  • 揭秘界面控件Kendo UI for Angular中新的日期增强功能!
    KendoUIforAngular是专用于Angular开发的专业级Angular组件。telerik致力于提供纯粹的高性能AngularUI组件,无需任何jQuery依赖关系。在本文中,我们将带大家了解KendoUIforAngular的DateInput组件中有什么新功能,新功能可以帮助您提升应用程序并为用户提供增强的日期输入体验......
  • 【译】代码更快、更好,借助 GitHub Copilot 的新功能:斜杠命令和上下文变量
    你是否曾经希望有一个人工智能助手可以帮助你更快更好地编写代码?那就是VisualStudioCopilotChat为您提供的:一个人工智能驱动的结对程序员,可以回答您的问题,建议代码片段,解释代码逻辑,并与您讨论您的项目。您可以使用Copilot更快更好地编写代码,因为它可以帮助您避免错误并......
  • java实现scp功能实现目录下所有文件拷贝至指定服务器
    1、添加pom依赖<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>2、示例代码publicstaticvoidmain(String[]args)throwsIOException{try{......
  • 完整登录功能实现
    1、导入pom.xml依赖<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency></dependencies>2、生成和解析令牌类的书写privatestatic......
  • PS基本介绍
    1.主界面构成1.1菜单栏1.2工具栏自定义工具栏切换单列双列显示1.3选项栏1.4工作信息栏左键单击按住不放即可查看详细信息1.5快捷键1.ctrl+鼠标滚轮:水平移动2.shift+鼠标滚轮:垂直移动3.Alt+鼠标滚轮:缩放画面4.G:油漆桶工具1.6修改工作面颜色......