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

SASS基本语法总结

SASS是CSS预处理器,简单来说,SASS是比CSS更高一级的语言,它拥有CSS不具备的语法,比如if条件控制

SASS的预处理器

SASS是一种无法被浏览器直接执行的语言,我们需要通过预处理工具(可以理解为翻译工具),把SASS文件转化为CSS文件,预处理工具有很多,最推荐的方法的就是VScode的插件Easy SASS的方法,也可用webpack的插件sass-loader。

SASS基本语法
嵌套规则(Nested Rules)
SASS用缩进来简写嵌套结构

#main p {color: #00ff00;width:97%;/*嵌套后生成#main p .redbox*/.redbox {background-color:red;color:#000;}
}

父选择器引用(Referencing Parent Selectors: &)
&代表父选择器简写

a {font-size:12px;&:hover {color: red;}  //生成a:hover.firebox & {color:black} //生成.firebox a
}

/* 多层嵌套 */

h1 {color:blue;p {color:red;& a {   //生成h1 p acolor:yellow }}
}

/*&规则:必须为前缀,可以加后缀 */

.main {&-head {  //生成.main-head}
}

父选择器 & 被作为一个后缀的时候,Sass 将抛出一个错误。
属性的嵌套( Nested Properties)
这部分用的很少,但是也算个功能

.funky {font:{size:12px;   //生成font-sizefamily:fatasy;  //生成font-family}
}

变量
//变量的声明
$width:5em;
$width:5em !global //全局声明,普通声明只在当前{}下有用

//变量的使用
width: w i d t h ; 变量名下划线和横杠互用, m a i n − h e a d 和 m a i n h e a d 默认相等,变量名必须是 width; 变量名下划线和横杠互用,main-head和main_head默认相等, 变量名必须是 width;变量名下划线和横杠互用,mainheadmainhead默认相等,变量名必须是开头
变量的数据类型
字符串
数字(数值保留单位)
颜色
布尔值
空值
值列表(数组)
maps(键值对)
变量默认符 !default
!default赋值的变量,如果已被赋值,则使用原值,否则使用新值

$name = 1em;
$name = 2em !default; //已被赋值1em,使用原值1em
插值语法#{}
插值语法常常是用来避免sass运算的,保证其内容为纯css内容

KaTeX parse error: Expected 'EOF', got '#' at position 14: name:'foo' p.#̲{name} { //p.foo
}
运算符
加减乘除±*/
分割符/属性替代表示: #{KaTeX parse error: Expected 'EOF', got '}' at position 8: number1}̲/#{number2}
-用作减法规则:number1 - number2前后带空格,(number1-number2)加括号,或者-number-前加空格后加数字
+可拼接字符串
布尔运算支持and,or,not
支持颜色运算,支持括号,不支持数组运算
函数
sassscript定义了部分可直接使用的函数 函数列表

//使用函数

p {color:hsl(100%,10%,0)
}

关键字参数
关键字参数是对函数参数的命名,除了方便阅读没有任何作用

p {color:hsl($light:100%,$darkness:10%,$hue:0)
}

css3 @规则
@import 引入外部样式表
@import “foo.sass”;

//如果不带后缀会搜索.sass和.scss后缀文件

@import “foo”,“tools”; //import多个
@media 媒体查询样式

.sidebar {width:100px;@media ....... {   //@media会冒泡到顶端width:200px;}
}

@extend 继承类

.nav {display:block;font-size:12px
}
.nav-small{@extend .nav  //继承.nav所有样式color:black;
}

//继承css默认样式
@extend a:hover;

//!optional标记(找不到不会报错)
@at-root
将嵌套的层提到父层

@debug,@warn,#error
将结果输出到控制台

控制指令和表达式
条件语句 if( )
//语法
if(布尔值,值1,值2)

if(true,1px,2px) //1px
@if

p {@if 1+1 == 2 {color:red;}@if 1+1 == 3 {color:blue;}
}

@if,@else if,@else

p {@if  {}@else if{}@to}
}

@for的两种形式
@for $var from through
@for v a r f r o m = = t o = = 循环中的参数 var from ==to== 循环中的参数 varfrom==to==循环中的参数name,不运算#{$name}

@for KaTeX parse error: Expected '}', got '#' at position 32: … 3 { .item-#̲{i} {width:2em*$i;}
}
@each循环
@each $var in

@each v a r 1 , var1, var1,var2…in <多维list or map>

@while

$i:0;@while $i<5 {.item-#{$i} {width:2em*$i;}$i : $i+1;}

混入样式@mixin
SASS可以指定一个自定义的样式

//定义一个混入样式
@

mixin mixinname{display:block;color:white;
}

//引入混入样式
body {
@include mixinname
}

//带参数的引入样式

@mixin mixinname ($para1,$para2){display:block;color:white;
}body {@include mixname(2px,$value2) //可引入直接值和变量
}

//关键字参数(就是给参数起变量名,用于方便阅读)
body {
@include mixname( c o l o r : b l u e , color:blue, color:blue,size:3) //
}

//可变参数…(参数数目可变)
@mixin mixinname($para…){ //参数后面加…
}
@content 内容混入
SASS可以自定义内容,并引入

//定义一个自定义内容name

@mixin name{@content
}p {include name {   //引入自定义内容name..... //content}
}

函数指令
SASS可以声明函数

@function func_name ($para){@return $para*2
}

//使用

p {width: func_name(5);}

相关文章:

SASS基本语法总结

SASS是CSS预处理器&#xff0c;简单来说&#xff0c;SASS是比CSS更高一级的语言&#xff0c;它拥有CSS不具备的语法&#xff0c;比如if条件控制 SASS的预处理器 SASS是一种无法被浏览器直接执行的语言&#xff0c;我们需要通过预处理工具&#xff08;可以理解为翻译工具&…...

【C++】简单工厂模式

2023年12月6日&#xff0c;周三下午 今天又学习了一次简单工厂模式 每多学习一次&#xff0c;都会加深对设计模式的理解 目录 什么是简单工厂模式简单工厂模式的优缺点举例说明 什么是简单工厂模式 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型…...

el-tree数据量过大,造成浏览器卡死、崩溃

el-tree数据量过大&#xff0c;造成浏览器卡死、崩溃 场景&#xff1a;树形结构展示&#xff0c;数据超级多&#xff0c;超过万条&#xff0c;每次打开都会崩溃 我这里采用的是引入新的插件虚拟树&#xff0c;它是参照element-plus 中TreeV2改造vue2.x版本虚拟化树形控件&…...

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A 目录 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A 需要环境或者解析可以私信 &#xff08;二&#xff09;A 模块基础设施设置/安全加固&#xff08;200 分&…...

面向LLM的App架构——业务维度

这是两篇面向LLM的大前端架构的第一篇&#xff0c;主要写我对LLM业务的认知以及由此推演出的大前端架构。由于我是客户端出身&#xff0c;所以主要以客户端角度来描述&#xff0c;并不影响对前端的适用性。 对LLM的认知 基于Google对AGI的论文&#xff0c;AGI或者LLM一定会朝…...

ElasticSearch之cat plugins API

命令样例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/plugins?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下&#xff1a; name component version…...

【小米电脑管家】安装使用教程--非小米电脑

安装说明功能体验下载资源 Xiaomi HyperOS发布后&#xff0c;小米妙享电脑端独立版本也走向终点&#xff0c;最新的【小米电脑管家】将会内置妙享实现万物互联。那么本篇文章将分享非小米电脑用户如何绕过设备识别验证安装使用【小米电脑管家】实现万物互联 安装说明 1.解压文…...

视频讲解|基于多目标粒子群算法的配电网储能选址定容

1 主要内容 该视频为3012基于多目标粒子群算法的配电网储能选址定容matlab代码讲解内容&#xff0c;对应的资源下载链接为基于多目标粒子群算法的配电网储能选址定容&#xff0c;程序主要内容是&#xff1a;以系统节点电压水平&#xff08;电网脆弱性&#xff09;、网络损耗以…...

Android 13 - Media框架(22)- MediaCodec(三)

这一节开始我们将重新回到 MediaCodec 这一层来学习 buffer 的流转 status_t MediaCodec::dequeueOutputBuffer(size_t *index,size_t *offset,size_t *size,int64_t *presentationTimeUs,uint32_t *flags,int64_t timeoutUs) {sp<AMessage> msg new AMessage(kWhatDequ…...

git提交报错 fatal: LF would be replaced by CRLF in package-lock.json

报错 fatal: LF would be replaced by CRLF in package-lock.json 原因 git 在windows下&#xff0c;默认是CRLF作为换行符&#xff0c; git add 提交时&#xff0c;会检查文本中是否有LF 换行符&#xff08;linux系统&#xff09;&#xff0c;如果有则会告警&#xff0c; 所…...

卷积详解和并行卷积

ps&#xff1a;在 TensorFlow Keras 中&#xff0c;构建 Sequential 模型的正确方式是将层作为列表传递&#xff0c;而不是作为一系列单独的参数。 modelmodels.Sequential([layers&#xff0c;layers]) 而不是modelmodels.Sequential(layers&#xff0c;layers) 文章目录 卷积…...

c#生成二维码二维码中间添加定制LoGo

&#x1f680;介绍 &#x1f340;QRCoder是一个开源的.NET库&#xff0c;用于生成QR码&#xff08;Quick Response Code&#xff09;。这个库是用C#编写的&#xff0c;并且可以在.NET框架的各种版本上使用&#xff0c;包括.NET Framework, .NET Core, Mono, Xamarin等。QRCode…...

设计CPU功能的数字电路

实验目的(1)熟悉Multisim 电路仿真软件的操作界面和功能; (2)掌握逻辑电路综合设计,并采用仿真软件进行仿真。 实验内容1.试设计一个简易CPU功能的数字电路,实验至少要求采用4个74HC/HCT194作为4个存储单元(可以预先对存储单元存储数据),74HC283作为计算单元。请实现…...

在windows下编译libiconv库

libiconv是一个基于GNU协议的开源库,主要用于解决多语言编码处理转换等应用问题。在linux系统使用比较方便,但是windows下使用需要进行源码编译。这里我是使用libiconv的1.15版本源码和VS2019默认工具集配置进行编译。 首先需要用VS2019创建一个空项目,根目录为libiconv。 在…...

html,css,开发知识,调试知识

nget 方式提交 n使用 get 方式提交数据时&#xff0c;表单数据会附加在 URL 之后&#xff0c;由用户端直接发送至服务器&#xff0c;所以速度比 post 快&#xff0c;但缺点是数据长度不能太长。 npost 方式提交 n使用 post 时&#xff0c;表单数据是与 URL 分开发送的&#…...

Vulnerability: File Upload(Medium)--MYSQL注入

选择难度&#xff1a; 1.打开DVWA&#xff0c;并登录账户 2.选择模式&#xff0c;这里我们选择 文件上载的中级模式&#xff08;Medium&#xff09; 准备工作 1.在vsc里面写个一句话木马 2.下载BurpSuiteCommunit软件&#xff1a;百度搜索“burp suite官网” 下载地址www…...

短视频账号剪辑矩阵+无人直播系统源头开发

抖去推爆款视频生成器&#xff0c;通过短视频矩阵、无人直播&#xff0c;文案引流等&#xff0c;打造实体商家员工矩阵、用户矩阵、直播矩阵&#xff0c;辅助商家品牌曝光&#xff0c;团购转化等多功能赋能商家拓客引流。 短视频矩阵通俗来讲就是批量剪辑视频和批量发布视频&am…...

Python traceback模块:获取异常信息

异常对象提供了一个 with_traceback 用于处理异常的传播轨迹&#xff0c;查看异常的传播轨迹可追踪异常触发的源头&#xff0c;也可看到异常一路触发的轨迹。 下面示例显示了如何显示异常传播轨迹&#xff1a; class SelfException(Exception): passdef main():firstMethod() …...

单点登录方案调研与实现

作用 在一个系统登录后&#xff0c;其他系统也能共享该登录状态&#xff0c;无需重新登录。 演进 cookie → session → token →单点登录 Cookie 可以实现浏览器和服务器状态的记录&#xff0c;但Cookie会出现存储体积过大和可以在前后端修改的问题 Session 为了解决Co…...

HarmonyOS应用开发者基础认证考试(稳过)

判断题 ​​​​​​​ 1. Web组件对于所有的网页都可以使用zoom(factor: number)方法进行缩放。错误(False) 2. 每一个自定义组件都有自己的生命周期正确(True) 3. 每调用一次router.pushUrl()方法&#xff0c;默认情况下&#xff0c;页面栈数量会加1&#xff0c;页面栈支持的…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

React核心概念:State是什么?如何用useState管理组件自己的数据?

系列回顾&#xff1a; 在上一篇《React入门第一步》中&#xff0c;我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目&#xff0c;并修改了App.jsx组件&#xff0c;让页面显示出我们想要的文字。但是&#xff0c;那个页面是“死”的&#xff0c;它只是静态…...