scss 实用教程

变量 $

定义变量

$link-color: 'blue';

变量名可以与css中的属性名和选择器名称相同

使用变量

a {color: $link_color;
}
$highlight-border: 1px solid $link_color;

中划线和下划线相互兼容,即中划线声明的变量可以使用下划线的方式引用,反之亦然。

$link-color: blue;
a {color: $link_color;
}

变量作用域

{}中定义的变量为局部变量,仅在{}内有效

$nav-color: #F90;
nav {$width: 100px;width: $width;color: $nav-color;
}

变量默认值

$fancybox-width: 400px !default;
.fancybox {width: $fancybox-width;
}

若导入的sass局部文件声明了$fancybox-width变量,则默认值无效,否则$fancybox-width将默认为400px

vscode中高亮显示scss代码

安装插件——Beautify css/sass/scss/less

在这里插入图片描述
新建文件 test.scss,写入代码

$link-color: 'blue';a {color: $link_color;
}

效果如下
在这里插入图片描述

vscode中实时编译scss—查看最终css效果

安装插件——Live Sass Compiler

在这里插入图片描述
点击vscode下边栏的 Watch Sass

在这里插入图片描述

此时在 test.scss 同目录下会生成文件 test.css,其内容为

在这里插入图片描述

修改 test.scss 中的代码,test.css 会同步编译,方便实时查看最终css效果

样式嵌套

<div class="diary"><h1 class="title">标题</h1><p class="content">内容</p>
</div>
.diary {.title {color: red;}.content {color: blue;}
}

使用伪类选择器时,需要配合&符号,此时&表示父元素

a{color: green;&:hover{color: yellow;}
}

属性嵌套

方式一

nav {border: {style: solid;width: 1px;color: #ccc;}
}

转化为css后,效果如下:

nav {border-style: solid;border-width: 1px;border-color: #ccc;
}

方式二

nav {border: 1px solid #ccc {left: 0px;right: 0px;}
}

转化为css后,效果如下:

nav {border: 1px solid #ccc;border-left: 0px;border-right: 0px;
}

静默注释 //

静默注释是一种内容不会出现在生成的css文件中的注释

body {color: #333; // 这种注释内容不会出现在生成的css文件中padding: 0; /* 这种注释内容会出现在生成的css文件中 */
}

当/* … */注释出现在原生css不允许的地方,如在css属性或选择器中,这些注释也会被抹掉。

body {color /* 这块注释内容不会出现在生成的css中 */: #333;padding: 1; /* 这块注释内容也不会出现在生成的css中 */ 0;
}

循环 @for

@for $i from 1 to 4 {.pd#{$i} {padding: $i*10 + px;}
}

转化为css后,效果如下:

.pd1 {padding: 10px;
}.pd2 {padding: 20px;
}.pd3 {padding: 30px;
}

@for 内可同时循环生成多个样式

@for $i from 1 to 4 {.pd#{$i} {padding: $i*10 + px;}.mr#{$i} {margin: $i*10 + px;}
}

from to 改为 from through 则包含边界

@for $i from 1 through 4 {.pd#{$i} {padding: $i*10 + px;}
}

得到

.pd1 {padding: 10px;
}.pd2 {padding: 20px;
}.pd3 {padding: 30px;
}.pd4 {padding: 40px;
}

混合器 @minxin

用于给一大段样式赋予一个名字,方便样式的复用

和CSS类名的区别是,CSS类名是在html中使用,混合器是在样式代码中使用。

定义混合器 @mixin

@mixin mark {color: red;background: yellow;
}

使用混合器 @include

.note {font-weight: bold;@include mark
}

最终css效果

.note {font-weight: bold;color: red;background: yellow;
}

可传参的混合器

类似JavaScript里的function

@mixin link-colors($normal, $hover, $visited) {color: $normal;&:hover { color: $hover; }&:visited { color: $visited; }
}

调用时直接传参

a {@include link-colors(blue, red, green);
}

最终生成的css效果如下

a { color: blue; }
a:hover { color: red; }
a:visited { color: green; }

如果记不清参数的顺序,可以通过语法$name: value的形式指定每个参数的值。

a {@include link-colors($normal: blue,$visited: green,$hover: red);
}

指定默认参数值

@mixin link-colors($normal,$hover: $normal,$visited: $normal)
{color: $normal;&:hover { color: $hover; }&:visited { color: $visited; }
}

继承 @extend

跟混合器相比,继承生成的css代码相对更少。因为继承仅仅是重复选择器,而不会重复属性,所以使用继承往往比混合器生成的css体积更小。

//通过标签继承样式(默认的浏览器样式不会被继承,因为它们不属于样式表中的样式)
.disabled {color: gray;@extend a;
}
//通过选择器继承样式
.error {border: 1px solid red;background-color: #fdd;
}
.seriousError {@extend .error;border-width: 3px;
}

.seriousError不仅会继承.error自身的所有样式,任何跟.error有关的组合选择器样式也会被.seriousError以组合选择器的形式继承

//.seriousError从.error继承样式
.error a{  //应用到.seriousError acolor: red;font-weight: 100;
}
h1.error { //应用到hl.seriousErrorfont-size: 1.2rem;
}

在class="seriousError"的html元素内的超链接也会变成红色和粗体。

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

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

相关文章

find和grep命令的简单使用

find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find find 命令在指定的目录下查找对应的文件。 find [path] [expression]● path 是要查找的目录路径&#xff0c;可以是一个目录或文件名…

Rust图形界面egui初步

文章目录 下载和演示配置文件源代码 下载和演示 首先下载其源代码egui&#xff0c;然后进入其example文件夹&#xff0c;进入之后&#xff0c;使用cargo命令进行编译 cargo run --release -p hello_worldrust会自动下载一些相关的包和库&#xff0c;编译运行后&#xff0c;结…

移动端模型部署框架

移动端模型部署框架 1. MNN整体特点轻量性通用性高性能易用性架构设计主体工具致谢移动端模型部署框架 1. MNN https://www.yuque.com/mnn/cn/about MNN是全平台轻量级高性能深度学习引擎,广泛支持了阿里巴巴在计算机视觉、语音识别技术、自然语言处理等领域的70多个AI应用…

快速修复因相机断电导致视频文件打不开的问题

3-5 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在日常工作中&#xff0c;有时候需要使用相机拍摄视频&#xff0c;比如现在有不少短视频拍摄的需求&#xff0c;如果因电池突然断电的原因&#xff0c;导致拍出来的视频播放不了&#xff0c;这时候就容易出大…

CHM Viewer Star 6.3.2(CHM文件阅读)

CHM Viewer Star 是一款适用于 Mac 平台的 CHM 文件阅读器软件&#xff0c;支持本地和远程 CHM 文件的打开和查看。它提供了直观易用的界面设计&#xff0c;支持多种浏览模式&#xff0c;如书籍模式、缩略图模式和文本模式等&#xff0c;并提供了丰富的功能和工具&#xff0c;如…

亲身体验告诉你:亚马逊云科技海外服务器是否值得一试?

前言 在当今数字化时代&#xff0c;云计算已经成为企业和个人发展的重要支撑。亚马逊云科技作为全球领先的云计算服务提供商&#xff0c;其海外服务器备受瞩目。然而&#xff0c;对于一些用户来说&#xff0c;是否值得一试亚马逊云科技的海外服务器仍然是一个疑问。本文将通过亲…

电脑小Tip---外接键盘F1-F12快捷键与笔记本不同步

当笔记本外接一款非常好用的静音键盘后&#xff0c;会出现一些问题。例如&#xff1a;外接键盘F1-F12与笔记本不同步。具体一个例子就是&#xff0c;在运行matlab程序时&#xff0c;需要点编辑器—运行&#xff0c;这样就很麻烦&#xff0c;直接运行的快捷键是笔记本键盘上的F5…

Llama2通过llama.cpp模型量化 WindowsLinux本地部署

Llama2通过llama.cpp模型量化 Windows&Linux本地部署 什么是LLaMA 1 and 2 LLaMA&#xff0c;它是一组基础语言模型&#xff0c;参数范围从7B到65B。在数万亿的tokens上训练的模型&#xff0c;并表明可以专门使用公开可用的数据集来训练最先进的模型&#xff0c;而无需求…

计算机视觉中目标检测的数据预处理

本文涵盖了在解决计算机视觉中的目标检测问题时&#xff0c;对图像数据执行的预处理步骤。 首先&#xff0c;让我们从计算机视觉中为目标检测选择正确的数据开始。在选择计算机视觉中的目标检测最佳图像时&#xff0c;您需要选择那些在训练强大且准确的模型方面提供最大价值的图…

MySQL数据库实验记录

输入密码 显示数据库 mysql命令以分号;结束 创建数据库 建表 写错了就会报错 没选数据库也会报错

数据分析实战 | 逻辑回归——病例自动诊断分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 一、数据及分析对象 CSV文件——“bc_data.csv” 数据集链接&#xff1a;https://download.csdn.net/d…

js删除json数据中指定元素

delete 删除数组方法&#xff1a; function removeJSONRows() {var tab {"dataRows": [{"id": 1,"name": "使用部门"},{"id": 2,"name": "车辆走行路线"},{"id": 3,"name": &quo…