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);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SystemWeaver—电子电气系统协同研发平台

背景概述 当前电子电气系统在汽车领域应用广泛&#xff0c;其设计整合了多门工程学科&#xff0c;也因系统的复杂性、关联性日益提升&#xff0c;需要其提供面向软件、硬件、网络、电气等多领域交织而导致的复杂系统解决方案。并且随着功能安全、AUTOSAR、SOA、以太网通讯等新要…

Linux基础命令(测试相关)

软件测试相关linux基础命令笔记 操作系统 常见Linux&#xff1a; Redhat系列&#xff1a;RHSL、Centos、FedoraDebian系列&#xff1a;Debian、Ubuntu以上操作系统都是在原生Linux系统上&#xff0c;增加了一些软件或功能。linux的文件及路径特点 Linux没有盘符的概念&#xf…

群星璀璨!亚信科技、TM Forum联合举办数字领导力中国峰会,助百行千业打造转型升级双引擎

11月30日&#xff0c;亚信科技携手著名国际组织TM Forum&#xff08;TeleManagement Forum 电信管理论坛&#xff09;联合举办的2023数字领导力中国峰会在京隆重召开&#xff0c;国内外数百位行业领袖、专家学者、企业高管和生态伙伴齐聚一堂。大会由“数字领导力峰会”“IT数字…

奇迹单车^^

欢迎来到程序小院 奇迹单车 玩法&#xff1a;点击鼠标左键跳跃&#xff0c;不要碰到地上的路障和天上飞的小鸟&#xff0c;统计骑行里程数&#xff0c;快去骑单车吧^^。开始游戏 html <div id"game" style"height: 523px;"></div>css canvas…

学习ShardingSphere前置知识

学习ShardingSphere前置准备知识 一. SPI SPI&#xff08;Service Provider Interface&#xff09;是一种Java的扩展机制&#xff0c;用于实现组件之间的松耦合。在SPI模型中&#xff0c;服务提供者&#xff08;Service Provider&#xff09;定义了一组接口&#xff0c;而服务…

【算法思考记录】力扣2952. 需要添加的硬币的最小数量【Python3,思路挖掘,贪心与证明】

原题链接 文章目录 需要添加的硬币的最小数量&#xff1a;贪心算法实现题目概述示例分析 关键思路分析贪心算法的优化选择证明案例推演与算法实现 Python 实现结论 需要添加的硬币的最小数量&#xff1a;贪心算法实现 题目概述 在这个困难难度的算法题中&#xff0c;我们要解…

MySQL字符集修改

修改数据库字符集 ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 生成批量修改表及表字符字段的字符集 SELECT alter_sql FROM ( /** 通过匹配表字符集查询需要修改的表字符集 */ SELECT CONCAT(ALTER TABLE , table_name, CONVERT TO …

科技论文中的Assumption、Remark、Property、Lemma、Theorem、Proof含义

一、背景 学控制、数学、自动化专业的学生在阅读论文时&#xff0c;经常会看到Assumption、Remark、Property、Lemma、Theorem、Proof等单词&#xff0c;对于初学者可能不太清楚他们之间的区别&#xff0c;因此这里做一下详细的说明。 以机器人领域的论文为例。 论文题目&…

PHP+ajax+layui实现双重列表的动态绑定

需求&#xff1a;商户下面有若干个门店&#xff0c;每个门店都需要绑定上收款账户 方案一&#xff1a;每个门店下面添加页面&#xff0c;可以选择账户去绑定。&#xff08;难度&#xff1a;简单&#xff09; 方案二&#xff1a;从商户进入&#xff0c;可以自由选择门店&#…

Python源码:03turtle画一个奥运五环图

turtle 模块绘制一些基本图形&#xff0c;是 Python 标准库中的一个绘图模块&#xff0c;可以用于绘制各种图形&#xff0c;包括线条、多边形、圆形、文本等。 下面是用Python绘制奥运五环图的代码&#xff1a; import turtle # 设置画布大小 turtle.setup(600, 600) # 绘…

spring security面经-字节飞书生产力工具后端一面

1 登录流程怎么做的&#xff1b;spring security 做了什么&#xff1b;如何配置 userpassword 校验&#xff1f;用的是什么设计模式&#xff1f;数据量大不大&#xff1f; 登录流程在使用Spring Security时大致如下&#xff1a; 用户提交凭证&#xff1a;用户通过登录页面或AP…

喜报!博睿数据荣获“2023年度卓越数字创新企业”

12月5日&#xff0c;由《经济观察报》主办的“2023年创新峰会”在北京隆重举办&#xff0c;会议邀请行业专家和领军企业&#xff0c;站在未来的视角&#xff0c;为当下的市场发展提供洞见。期间&#xff0c;备受瞩目的2023年度卓越创新案例评审结果正式发布&#xff0c;博睿数据…

MES管理系统在生产计划排程中的应用与价值

随着制造业市场竞争的日益激烈和客户需求的多样化&#xff0c;传统的生产计划排程方式已经无法满足企业的需求。为了提升生产计划的效率和准确性&#xff0c;越来越多的企业开始引入MES管理系统这一先进的工具。那么&#xff0c;MES管理系统到底是什么&#xff0c;又是如何解决…

揭秘AI魔法绘画:Stable Diffusion引领无限创意新纪元

文章目录 1. 无限的创意空间2. 高效的创作过程3. 个性化的艺术表达4. 跨界合作的可能性5. 艺术教育的革新6. 艺术市场的拓展 《AI魔法绘画&#xff1a;用Stable Diffusion挑战无限可能》编辑推荐内容简介作者简介精彩书评目录前言/序言本书读者对象学习建议获取方式 随着科技的…

Hbase JAVA API 增删改查操作

Hbase JAVA API 增删改查操作 创建maven项目 添加pom依赖 ​ 打开https://mvnrepository.com/ 搜索hbase 选择hbase-client, 2.2.4版本&#xff0c;点进去复制依赖代码 <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client…

在Ubuntu系统上部署Docker和Docker-Compose服务(实战篇)

前言 在这篇文章中&#xff0c;我们将从查看防火墙状态开始&#xff0c;逐步引导大家完成Docker和Docker-Compose的安装、配置以及使用过程。通过学习这些关键步骤&#xff0c;你将更加熟练地运用容器技术&#xff0c;为未来的项目提供更便捷的开发和部署方案。 无论你是刚刚…

RocketMq环境搭建

目录 MQ作用 RocketMQ背景 MQ对比 RocketMQ环境搭建 搭建dashboard可视化界面 MQ作用 异步解耦削峰 RocketMQ背景 ​ RocketMQ是阿里巴巴开源的一个消息中间件&#xff0c;在阿里内部历经了双十一等很多高并发场景的考验&#xff0c;能够处理亿万级别的消息。2016年开源…

编程实战:类C语法的编译型脚本解释器(二)Token和变量

系列入口&#xff1a;编程实战&#xff1a;类C语法的编译型脚本解释器&#xff08;系列&#xff09;-CSDN博客 现在开始解释所有的设计思想和与源代码。先从外围入手&#xff0c;最后会进入到一个巨大的解析语法的类。 本文介绍TOKEN和变量。 目录 一、TOKEN 1.1 定义Token类…

跨端的三种方案原理和对比(WebView,ReactNative,Flutter)

一、定义 WebView WebView是什么&#xff1f; 答&#xff1a; 第一代跨平台框架&#xff0c;代表者为&#xff1a;PhoneGap、微信小程序。 WebView标签是一种用于在网页中嵌入浏览器窗口的HTML元素。它的底层原理是通过原生平台提供的浏览器引擎来实现网页的渲染和交互。 …

windows下DSS界面本地集成linkis管理台

说明&#xff1a;当前开发环境为windows&#xff0c;node版本使用16.15.1。启动web时&#xff0c;确保后端服务已准备就绪。 1.linkis web编译 #进入项目WEB根目录 $ cd linkis/linkis-web #安装项目所需依赖 $ npm install参考官方编译说明&#xff0c;windows下编译一直异常…