Sass 最基础的语法
把每个点最简单的部分记录一下,方便自己查找
官方文档链接
Sass 笔记
- 1. `&` 父选择器,编译后为父选择器
- 2. `:` 嵌套属性
- 3. `$` 变量
- 3.1 数据类型
- 3.2 变量赋值
- 3.3. 数组
- 3.4. map
- 4. 算数运算符
- 5. `#{}`插值语法
- 5.1 可以在选择器或属性名中使用变量
- 5.2 将有引号的字符串编译为无引号
- 6. @import
- 7. @media
- 8. @extend : 延申(感觉像继承)
- 9. 控制指令
- 9.1 `@if` `@else if` `@else`
- 9.2 `@for`
- 9.3 `@each`
- 9.3.1 遍历一维数组
- 9.3.2 遍历`map<key : value>`
- 9.3.3 遍历二维数组
- 9.4 `@while`
- 10 @mixin 混合指令
- 10.1 定义样式并引用
- 10.2 带参数的混合,并且有默认值
- 11. `@function` 函数指令 `@return` 返回
1. & 父选择器,编译后为父选择器
a {font-weight: bold;text-decoration: none;&:hover { text-decoration: underline; }body.firefox & { font-weight: normal; }
}
编译为
a {font-weight: bold;text-decoration: none; }a:hover {text-decoration: underline; }body.firefox a {font-weight: normal; }
2. : 嵌套属性
.funky {font: 20px/24px {family: fantasy;weight: bold;}
}
编译为
.funky {font: 20px/24px;font-family: fantasy;font-weight: bold; }
3. $ 变量
#main {$width: 5em !global; // !global:声明为全局变量,可在作用域外使用width: $width;
}
#sidebar {width: $width;
}
编译为
#main {width: 5em;
}
#sidebar {width: 5em;
}
3.1 数据类型
- 数字,
1, 2, 13, 10px - 字符串,有引号字符串与无引号字符串,
"foo", 'bar', baz - 颜色,
blue, #04a3f9, rgba(255,0,0,0.5) - 布尔型,
true, false - 空值,
null - 数组 (list),用空格或逗号作分隔符,
1.5em 1em 0 2em, Helvetica, Arial, sans-serif - maps, 相当于 JavaScript 的 object,
(key1: value1, key2: value2)
3.2 变量赋值
$i: 6;
$i: $i - 2;
$name: jack;
3.3. 数组
数组之间的元素可以用,隔开,也可以不用
margin: 10px 15px 0 0
font-face: Helvetica, Arial, sans-serif
nth 函数可以直接访问数组中的某一项;
join 函数可以将多个数组连接在一起;
append 函数可以在数组中添加新值;
@each 指令能够遍历数组中的每一项。
3.4. map
(key1 : value1,key2 : value2)
4. 算数运算符
+-*/><>=<===!=/有两个作用:除法,分隔数字,具体怎么用看文档+也用作字符串连接,计算结果以+左侧的字符串为准
+左侧 | +右侧 | 连接后 |
|---|---|---|
| 有引号 | 有引号 | 有引号 |
| 无引号 | 无引号 | 无引号 |
| 有引号 | 无引号 | 有引号 |
| 无引号 | 有引号 | 无引号 |
5. #{}插值语法
5.1 可以在选择器或属性名中使用变量
$name: foo;
$attr: border;
p.#{$name} {#{$attr}-color: blue;
}
编译为
p.foo {border-color: blue; }
5.2 将有引号的字符串编译为无引号
@mixin firefox-message($selector) {body.firefox #{$selector}:before {content: "Hi, Firefox users!";}
}
@include firefox-message(".header");
编译为
body.firefox .header:before {content: "Hi, Firefox users!"; }
6. @import
- 导入的是scss文件可以只写文件名:
@import ‘foo’ - 在vue中使用一般情况:
@import url(../xxxx/xxx.css) - 可以在嵌套进css中使用,这样引入的内容就只能在引入的局部使用
7. @media
8. @extend : 延申(感觉像继承)
属性重复,谁在后面执行谁有优先权
.error {border: 1px #f00;background-color: #fdd;
}
.seriousError {@extend .error;border-width: 3px;
}
编译后
.error .seriousError{border: 1px #f00;background-color: #fdd;
}
.seriousError {border-width: 3px;
}
9. 控制指令
9.1 @if @else if @else
$type: monster;
p {@if $type == ocean {color: blue;} @else if $type == matador {color: red;} @else if $type == monster {color: green;} @else {color: black;}
}
编译后
p{color: green
}
9.2 @for
@for $var from <start> through <end> 包含start和end的值
@for $var from <start> to <end> 不包含start的值,包含end的值
@for $i from 1through 3 {.item-#{$i} { width : 2em * $i }
}
编译后
.item-1 { width: 2em }
.item-2 { width: 4em }
.itme-3 { width: 6em }
9.3 @each
@each $var in <list> list可以是一连串的字符串、数组、map
9.3.1 遍历一维数组
@each $animal in puma, sea-slug, etret, salamander {.#{$animal}-icon{background-image: url('/images/#{$animal}.png');}
}
编译后
.puma-icon { background-image: url('/images/puma.png'); }
.sea-slug-icon { background-image: url('/images/sea-slug-icon.png'); }
.etret-icon { background-image: url('/images/etret.png'); }
.salamander-icon { background-image: url('/images/salamander.png'); }
9.3.2 遍历map<key : value>
@each $header, $size in (h1: 2em, h2: 1.5em, h3: 1.2em) {#{$header} {font-size: $size;}
}
编译后
h1 {font-size: 2em; }
h2 {font-size: 1.5em; }
h3 {font-size: 1.2em; }
9.3.3 遍历二维数组
@each $animal, $color, $cursor in (puma, black, default),(sea-slug, blue, pointer),(egret, white, move) {.#{$animal}-icon {background-image: url('/images/#{$animal}.png');border: 2px solid $color;cursor: $cursor;}
}
编译后
.puma-icon {background-image: url('/images/puma.png');border: 2px solid black;cursor: default; }
.sea-slug-icon {background-image: url('/images/sea-slug.png');border: 2px solid blue;cursor: pointer; }
.egret-icon {background-image: url('/images/egret.png');border: 2px solid white;cursor: move; }
9.4 @while
$i: 6;
@while $i > 0 {.item-#{$i} { width: 2em * $i; }$i: $i - 2;
}
编译后
.item-6 {width: 12em; }.item-4 {width: 8em; }.item-2 {width: 4em; }
10 @mixin 混合指令
@mixin 像定义只是存放数据的函数,但是必须用@include调用
10.1 定义样式并引用
- 定义,(font:使用了嵌套属性)
@mixin large-text {font: {family: Arial;size: 20px;weight: bold;}color: #ff0000;
}
- 在语句内引用
.page-title {@include large-text;.padding: 4px;margin-top: 10px;
}
- 编译后
.page-title {font-family: Arial;font-size: 20px;font-weight: bold;color: #ff0000;padding: 4px;margin-top: 10px; }
- 如果在最外层调用,没有其他语句包裹
@mixin silly-links {a {color: blue;background-color: red;}
}
@include silly-links;
编译后
a {color: blue;background-color: red;}
10.2 带参数的混合,并且有默认值
@mixin sexy-border($color, $width: 1in) {border: {color: $color;width: $width;style: dashed;}
}p { @include sexy-border(blue); }
或者
p { @include sexy-border($color: blue); }
编译后
p{border-color: blue;border-width: 1in;border-style: dashed;
}
11. @function 函数指令 @return 返回
$grid-width: 40px;
$gutter-width: 10px;@function grid-width($n) {@return $n * $grid-width + ($n - 1) * $gutter-width;
}#sidebar { width: grid-width(5); }
编译为
#sidebar {width: 240px; }
相关文章:
Sass 最基础的语法
把每个点最简单的部分记录一下,方便自己查找 官方文档链接 Sass 笔记 1. & 父选择器,编译后为父选择器2. : 嵌套属性3. $ 变量3.1 数据类型3.2 变量赋值3.3. 数组3.4. map 4. 算数运算符5. #{}插值语法5.1 可以在选择器或属性名中使用变量5.2 将有引…...
2023年11月数据库流行度最新排名
点击查看最新数据库流行度最新排名(每月更新) 2023年11月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…...
JavaEE-部署项目到服务器
本部分内容为:安装依赖:JDK,Tomcat,Mysql;部署项目到服务器 什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。 为什么我们需要…...
计算机网络期末复习-Part1
1、列举几种接入网技术:ADSL,HFC,FTTH,LAN,WLAN ADSL(Asymmetric Digital Subscriber Line):非对称数字用户线路。ADSL 是一种用于通过电话线连接到互联网的技术,它提供…...
Redis系列-Redis过期策略以及内存淘汰机制【6】
目录 Redis系列-Redis过期策略以及内存淘汰机制【6】redis过期策略内存淘汰机制算法LRU算法LFU 其他场景对过期key的处理FAQ为什么不用定时删除策略? Ref 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 Redis系列-Redis过期策略以及内存淘…...
多语言翻译软件 Mate Translate mac中文版特色功能
Mate Translate for Mac是一款多语言翻译软件,Mate Translate mac可以帮你翻译超过100种语言的单词和短语,使用文本到语音转换,并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版特色功能…...
Python GUI标准库tkinter实现与记事本相同菜单的文本编辑器(一)
介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。Windows的记事本可以新建、打开、保存文件,有复制、粘贴、删除等功能,还可以设置字体类型、格式和查看日期时间等。 …...
Decimal.ToString()堆栈溢出异常
Decimal.ToString() 堆栈溢出异常 导致以下报错: A process serving application pool XXX suffered a fatal communication error with the Windows Process Activation Service. The process id was 7132. The data field contains the error number. Application pool …...
com.genuitec.eclipse.springframework.springnature
Your IDE is missing natures to properly support your projects. Some extensions on the eclipse marketplace can be installed to support those natures. com.genuitec.eclipse.springframework.springnature 移除 <nature>om.genuitec.eclipse.springframework.…...
wangeditor富文本编辑器的使用(vue)
官网 官方demo 参考 安装 yarn add wangeditor/editor yarn add wangeditor/editor-for-vue 封装的富文本组件 <template><div style"border: 1px solid #ccc"><Toolbarstyle"border-bottom: 1px solid #ccc":editor"editorRef"…...
物联网水表有什么弊端吗?
物联网水表作为新一代智能水表,虽然在很大程度上提高了水资源的管理效率,但也存在一定的弊端。在这篇文章中,我们将详细讨论物联网水表的弊端,以帮助大家更全面地了解这一技术。 一、安全隐患 1.数据泄露:物联网水表通…...
安卓 车轮视图 WheelView kotlin
安卓 车轮视图 WheelView kotlin 前言一、代码解析1.初始化2.初始化数据3.onMeasure4.onDraw5.onTouchEvent6.其他 6.ItemObject二、完整代码总结 前言 有个需求涉及到类似这个视图,于是在网上找了个轮子,自己改吧改吧用,拿来主义当然后&…...
升级Redisson版本兼容问题
升级版本:从 3.10.6 升级到3.18.0 报错: java.io.IOException: Unsupported protocol version 252 java.io.IOException: Unsupported protocol version 252at org.jboss.marshalling.river.RiverUnmarshaller.start(RiverUnmarshaller.java:1375)at org.redisson…...
前端框架Bootstrap
前端框架Bootstrap 该框架已经帮我们写好了很多页面样式,如果需要使用,只需要下载对应文件 直接CV拷贝即可 在使用Bootstrap的时候,所有的页面样式只需要通过修改class属性来调节即可 什么是Bootstrap Bootstrap是一个开源的前端框架…...
Flink SQL TopN语句详解
TopN 定义(⽀持 Batch\Streaming): TopN 对应离线数仓的 row_number(),使⽤ row_number() 对某⼀个分组的数据进⾏排序。 应⽤场景: 根据 某个排序 条件,计算 某个分组 下的排⾏榜数据。 SQL 语法标准&am…...
k8s之数据卷
一,存储卷 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态&#…...
服务器网络
配置 通常使用ping查看网络 如果能ping通,不能ssh登陆,安装 sudo apt update sudo apt install openssh-server如果已经安装,查看防火墙状态,inactive(不活跃) sudo ufw status sudo ufw allow ssh sudo ufw reload查看ssh状态 s…...
YOLOv8-seg 分割代码详解(一)Predict
前言 本文从 U-Net 入手熟悉分割的简单方法,再看 YOLOv8 的方法。主要梳理 YOLOv8 的网络结构,以及 Predict 过程的后处理方法。 U-Net 代码地址:https://github.com/milesial/Pytorch-UNet YOLOv8 代码地址:https://github.com/…...
Docker学习——④
文章目录 1、Docker Image(镜像)2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Imageÿ…...
Android选项卡TabHost
选项卡主要由TabHost(标签,主人),TabWidget(微件)和FrameLayout3个组件组成,用于实现一个多标签页的用户界面。 1. TabHost在XML文件中添加: XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。 <TabHostandro…...
我把设备指纹生成逻辑拆开了:它到底凭什么区分不同设备?
大家好,我是舒一笑不秃头,喜欢分享和写作,更多精彩内容~ 很多人一提到“设备指纹”,第一反应就是: 这是不是某种黑盒算法?是不是偷偷拿到了设备唯一 ID? 其实不是。 在真实项目里…...
保姆级教程:手把手为嵌入式Linux移植NAU8810音频Codec驱动(基于ASoC框架)
嵌入式Linux实战:NAU8810音频Codec驱动移植全流程解析 在嵌入式音频系统开发中,Codec驱动的移植往往是硬件适配的关键环节。NAU8810作为一款高性能低功耗音频编解码芯片,广泛应用于智能家居、工业控制等场景。本文将基于Firefly RK3568开发板…...
ARIMA模型持久化:原理、工具与实践指南
1. 项目概述:ARIMA模型持久化的核心价值在时间序列分析领域,ARIMA(自回归综合移动平均)模型因其出色的预测能力被广泛应用于金融、气象、供应链管理等场景。但许多实践者常忽视一个关键环节——如何将训练好的模型持久化保存。模型…...
第41篇:图像分割技术解析——像素级的视觉理解(原理解析)
文章目录现象引入:为什么模型能“抠图”?提出问题:图像分割的三大核心挑战原理剖析:从全卷积网络(FCN)到编码器-解码器结构1. 全卷积网络(FCN):扔掉全连接层,…...
手把手教您 Claude 桌面端无需账号订阅,免费接入国产自定义大模型(Claude Desktop 绕过订阅限制,接入任意自定义 AI 模型)
文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 Claude桌面端接入自定义大模型教程 📒 📝 第一步:下载安装Claude桌面端 📝 第二步:启用开发者模式 🎯 操作步骤 📝 第三步:配置自定义模型 🔧 操作步骤 🎯 验证效果 📝 国产大模型API地址汇总 🌐 主流国…...
修复DETR模型输出异常问题:解决Batch内曲面形状位置一致及曲面折叠无法展开
修复DETR模型输出异常问题:解决Batch内曲面形状位置一致及曲面折叠无法展开 摘要 在利用DETR(Detection Transformer)进行3D曲面生成或参数曲面重建的任务中,常出现两类严重异常:同一Batch内不同样本生成的曲面形状与位置完全一致,以及生成的曲面存在不可接受的折叠(自…...
⚠️ Agent failed before reply: session file locked (timeout 10000ms): pid=16848
Session File Locked 错误分析与解决方案 日期: 2026-04-28 错误信息: ⚠️ Agent failed before reply: session file locked (timeout 10000ms): pid=16848 C:\Users\test\.openclaw\agents\main\sessions\6cc00f2d-04fa-401f-8b8a-523fb577e254.jsonl.lock. Please try agai…...
如何用WeChatMsg守护你的数字记忆:从聊天记录到个人AI数据中心的蜕变
如何用WeChatMsg守护你的数字记忆:从聊天记录到个人AI数据中心的蜕变 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tre…...
别光看理论!用LTSPICE亲手仿真一次MOS管的米勒效应,看完波形就懂了
从波形到本质:LTSPICE实战解析MOS管米勒效应的三重境界 当你在示波器上第一次看到那个诡异的栅极电压"小台阶"时,是否曾困惑于这个看似简单的波形背后隐藏的物理奥秘?米勒效应作为电力电子设计中最经典的"幽灵现象"&…...
团队开发环境自动化:从脚本到容器的一站式解决方案
1. 项目概述:一个团队协作的代码仓库在软件开发领域,一个名为aaurelions/my-team的仓库标题,乍一看可能平平无奇。但作为一名常年混迹于 GitHub、GitLab 等代码托管平台的老兵,我深知这类以个人或组织名称为前缀、以“team”或“m…...
