Sass的知识点梳理

Sass 入门(基础知识点汇总) 一、Sass简介 在学习Sass之前,我们先来介绍一下什么是CSS预处理器。因为Sass就是众多CSS预处理器中的其中一种。 1、什么是CSS预处理器? 学过CSS的小伙伴都知道,CSS只是一门描述性的语言,你只能一行一行单纯地描述,并不能像JavaScript那样使用变量、循环、运算等方式来操作。 CSS预处理器的出现,使得我们可以像操作JavaScript那样以“编程”的方式来书写CS... 阅读详情

变量

变量的声明

  • 使用$来声明,例如

    $width:200px;
    div{
      width:$width;
    }
    

    编译后为 :

    div{
        width:200px;
    }

变量的作用域

这里和 js 差不多,但是没有变量提升的概念,必须先定义,再使用。
如果变量名相同,后面定义的会覆盖前面的,但是含有default的优先级最低,就算同名的default的变量放在下面,也不会覆盖前面定义的同名变量。
示例:

$width : 200px;
$bg-color:red; // 此处优先级比有default的高。
$bg-color:#f40 !default; // 定义一个默认值。
div{
    background-color:$bg-color; // 编译后是red而不是#f40
    $width:300px;
    span{
        width:$width; // 此处不是200px , 而是 300px
    }
}

变量的数据类型

  • 数字 number : 分为带单位的,和不带单位的 , 如 : 1、 .2、 13%、 10px;
  • 字符串 string:有引号字符串或无引号字符串,如 : “foo”、 ‘bar’、 hi
  • 颜色 color:如 : blue、 #04a3f9、rgb(255,0,0)、 rgba(255,0,0,0.5);
  • 布尔型 bool ,如:true、 false;
  • 空值 null,如:null;
  • 值列表 list:用空格或者逗号分开,如,1.5em 1em 0 2em 、 Helvetica, Arial, sans-serif。

注释

// 这种注释 编译后会消失 
/* 这种注释 ,编译后存在,压缩后会消失  */
/*!  多用于类库的信息的注释  编译压缩都会存在   */

嵌套

用于节约代码,方便管理。

ul{
    color:#333;
    li{
        border:1px solid red;
        margin:{
            top:2px;
            bottom:3px;
            left:2px;
        }    
    }  
    a{
        background-color: #f1f1f1;
        &:hover{ // & 表示父级选择器 和js 中的this挺像的。
            background-color: #f3f3f3;
        }
        &::after{
            content:"aa";
        }
    } 
    > span{ // > 代表直接子代选择器
        color:blue;
    }
}

编译后为:

ul {
  color: #333;
}
ul li {
  border: 1px solid red;
  margin-top: 2px;
  margin-bottom: 3px;
  margin-left: 2px;
}
ul a {
  background-color: #f1f1f1;
}
ul a:hover {
  background-color: #f3f3f3;
}
ul a::after {
  content: "aa";
}
ul > span {
  color: blue;
}

一目了然


继承

使用@extend来继承已存在的类样式块
示例:

.btn{
    color:red;   
 }

 .btn-primary{
    border:1px solid #ddd;
    @extend .btn;  // 此处使用@extend来继承.btn类中的内容
 }

编译后为:

.btn, .btn-primary {
  color: red; 
}

.btn-primary {
  border: 1px solid #ddd; 
}

占位符 placeholder

使用%来定义占位符,不会在页面中生成btn这个类。
示例:

%mt5{
    margin-top:5px;    
}
%pt5{
    padding-top:5px;   
}

.box1{
    width:100px;   
    @extend %mt5;
    @extend %pt5;
}

编译后

.box1 {
  margin-top: 5px;
}

.box1 {
  padding-top: 5px;
}

.box1 {
  width: 100px;
}

缺点:重复的类出现代码冗余,但是定义的placeholder不会显示在编译后的代码中。


混合宏 Mixin

@mixin 声明一个混合宏
@include 调用一个混合宏

示例:

@mixin border-radius($border:10px){
    border-radius:$border;
    -webkit-border-radius:$border;    
    -ms-border-radius:$border;
    -moz-border-radius:$border;
    -o-border-radius:$border;
}

.btn{
    @include border-radius();   
}

.btn1{
    @include border-radius(5px);   
}

编译后

.btn {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -ms-border-radius: 10px;
  -moz-border-radius: 10px;
  -o-border-radius: 10px;
}

.btn1 {
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -ms-border-radius: 5px;
  -moz-border-radius: 5px;
  -o-border-radius: 5px;
}

可以看到Mixin 中,可以传递值,作为默认的参数,同样的也可以传递多个参数,如下:

@mixin border-radius($a,$b){
    border-radius:$a;
    -webkit-border-radius:$a;    
    -ms-border-radius:$a;
    -moz-border-radius:$a;
    -o-border-radius:$a;
    width:$b;
}


.btn1{
    @include border-radius(5px,6px);   

}

编译后

.btn1 {
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -ms-border-radius: 5px;
  -moz-border-radius: 5px;
  -o-border-radius: 5px;
  width: 6px;
}

其中,形参和实参要对应,并且有多少形参,Mixin里面就要引用多少形参,不然会报错。

Sass 里面比较复杂的混合宏,这里不做讨论 ..

此时来比较一下 混合宏 , 继承 , 占位符

 混合宏继承占位符
声明方式:@mixin.classname%holdername
调用方式:@include@extend@extend
使用环境:用于相同代码块的传值会编译被继承的类占位符不被编译

Import (导入)

…

Operators (操作符 )

…

内置函数

…

指令 Directives

…

有时间再来补充

更多链接:

http://www.ruby-lang.org/zh_cn/ ruby中文官网
http://rubyinstaller.org/downloads/ ruby下载地址
http://sass.bootcss.com/docs/sass-reference/ sass参考手册
https://rubygems.org/gems/sass/versions/3.4.20 sass下载地址
http://sass-lang.com/ sass官网
http://sass-lang.com/guide sass向导
http://www.sass-zh.com/ sass中文网
http://www.sass.hk/ sass中文网
http://www.ruanyifeng.com/blog/2012/06/sass.html Sass快速入门
http://www.w3cplus.com/sassguide/syntax.html Sass语法
http://koala-app.com/ koala官网
http://www.sassmeister.com/ 在线编译scss
https://github.com/oklai/koala/wiki/%E4%B8%AD%E6%96%87wiki koala官网
http://sass.bootcss.com/docs/sass-reference/
http://www.ruanyifeng.com/blog/2012/06/sass.html
http://www.w3cplus.com/sassguide/syntax.html

高级特效开发——知识点梳理 阅读详情

相关推荐

前端面试题汇总

前端面试题

weixin_42023243的博客 8007

Sass基础知识以及常用知识整理

本文主要涉及sass的基本使用和特别注意点,比如:css功能拓展、sass数据类型、运算、@Iimport、@use、@forword、@extend、@at-root\、@mixin、@include、@if、@each、@for、@while、@function等等的具体使用,附有官网案例。最后有使用Live Sass Compiler的具体使用案例test.scss

Pluto_ssy的博客 1493

vue项目启动时报错:Failed to resolve loader: sass-loader You may need to install it.(vue sass-loader安装及解决教程)

sass-loader安装+Failed to resolve loader: sass-loader You may need to install it.解决方法,vue2 vue3启动项目时报错:Failed to resolve loader: sass-loader You may need to install it.,vue安装sass-loader运行报错解决方法,vue启动编译时报sass-loader错误,vue安装使用scss报错,在vue3里运行报错,当vue新建项目中使用scss时

✅ 精选推荐文章 3631

SASS知识点

Sass允许你定义可以在样式表中重复使用的变量。例如,你可以为主题颜色定义一个变量,然后在整个样式表中使用这个变量。:Sass提供了一些内置函数,如调整颜色、字符串处理等,并且你也可以自定义函数。:Sass允许你嵌套CSS规则,这可以减少代码的重复,并使结构更清晰。:混合是一种可以将一组CSS声明打包成可重用的模块的方式。:Sass支持基本的数学运算,如加法、减法、乘法和除法。指令,一个选择器可以继承另一个选择器的所有样式规则。等控制指令,使你能够编写更复杂的动态样式规则。

weixin_55041114的博客 191

sass思维导图(基本内容)

sass思维导图,便于初学者快速了解和上手,文中截图多引用sass中文官网,更多细节请去官网了解

RTT(RT-Thread)串口设备(RTT保姆级教程)

本章主要介绍串口设备在RT-Thread操作系统中应用层如何使用。关于串口设备的使用,我们只需要在应用层找到串口设备,然后去初始化,初始化完成以后就可以读写串口设备了。操作的方法在应用层,驱动是不需要我们去完成的,驱动已经在操作系统中提供了。

qq_25218501的博客 1万+

scss知识点总结

参照:https://blog.youkuaiyun.com/pedrojuliet/article/details/72887490 1、什么是SCSS ​ Sass是成熟、稳定、强大的css预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时,也继承了Sass强大的动态功能 2、Scss和Sass区别 Scss是Sass的一个升级版本,安全兼容Sass之前的功能,又有些新增的能力 文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 Scss 是以“.scss”后缀为扩展名

weixin_45956230的博客 719

告别爆显存!手把手教你为ComfyUI+华为Atlas 300I Duo配置wan2.1视频生成工作流(含CPU-VAE参数)

本文详细介绍了华为Atlas 300I Duo与ComfyUI的深度适配实战,重点优化wan2.1视频生成工作流。从硬件散热改造到软件栈配置,再到ComfyUI专项优化,提供完整的解决方案,显著提升视频生成效率与稳定性,特别适合需要高效文生视频的应用场景。

weixin_26812607的博客 467

sass常用知识点总结

  这次将sass学习了一下,将最常用的进行总结,将比较好的写法运用到项目当中。 sass有两种语法格式,扩展名为.sass和.scss的,在此只总结scss格式。scss是在css3基础上进行扩展的,所以完全兼容css3的语法,此外还拥有自己的特色功能。 1、可嵌套 div { color: red; a { font-size: 14px; }...

weixin_40769065的博客 384

Unity雷达图效果实现

unity雷达图源码

a604263644的博客 1026

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1504

bootstrap:Sass与Less知识点梳理

24/100保存草稿发布文章 博文管理我的博客退出加粗 斜体 标题 删除线 无序 有序 待办 引用 代码块 BashCC++C#CLikeCSSGoHandlebarsJavaJavaScriptKotlinMarkupObjective-CPerlPHPShellPythonRubySQLSwiftVB.NetYAML图片 视频 表

qq_42453751的博客 505

鸿蒙手机卸载内置应用 adb连接

**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。**

JJDXBT的博客 3万+

Sass、Less、PostCSS

主要总结了sass、less、postcss的基本概念、使用方式、实践案例等内容,以及在项目中实现时的合理应用等。

热爱前端的大宝同学。 570

2024最新版:MacOS Sonoma系统下CocoaPods安装全攻略(解决Ruby版本冲突)

本文详细介绍了在MacOS Sonoma系统下安装CocoaPods的全过程,重点解决Ruby版本冲突问题。通过HomeBrew安装最新Ruby版本,配置环境变量,并正确安装CocoaPods,帮助iOS开发者顺利管理项目依赖。文章还提供了常见问题的解决方案和优化配置建议,确保开发环境的稳定性和高效性。

lll78的博客 1042

ABAP 大规模数据并行处理实战,六套 Parallel Processing Framework 如何选,性能调优真正该盯住什么

如果今天真的面对那份执行 14 个小时的生产报表,我不会马上把原来的 Loop 改成 50 个aRFC。我会先用 SAT、ST12、SQL Monitor 和 HANA 侧工具确认时间到底花在哪里。如果 90% 时间其实消耗在一条低效 SQL 上,Parallel Processing 只是让 50 个 Worker 同时执行那条低效 SQL,数据库会比原来更痛苦。应该先把串行逻辑本身优化到合理水平。该做 Set-based Processing 的地方先交给 HANA。该避免SELECT。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 152

Web前端面试题

为了满足面试问题,以下就是各面试问题的总结: 请点击链接打开:http://blog.poetries.top/FE-Interview-Questions/base/#_29-stylus-sass-less%E5%8C%BA%E5%88%AB:

Web_front的博客 318

QT6实现USB摄像头接入显示与抓拍功能实现

QT实现USB摄像头接入显示 一、UVC协议简介 UVC全称是USB Video Class(USB视频类),是一种标准化的USB视频设备通信协议,它定义了摄像头与主机之间的数据传输协议和格式。 UVC协议的出现,解决了摄像头厂商之间互不兼容,以及摄像头应用开发与平台之间的散乱问题。 UVC标准是由USB-IF主导制定的,目前最新的版本是UVC 1.5,UVC的缺省设置类容易实现,不需要额外的驱动程序。

热土程序园,利他愉己~ 3417

[持续更新] HPC高性能计算CUDA/C++面试知识点

CUDA实现尽量做到和C++实现做到bit对齐,有些公司会考察这个能力。

YoungHong1992 550

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Sass & SCSS 核心概念梳理

本文系统梳理了Sass和SCSS的核心概念:Sass是CSS预处理器工具,SCSS是其主流语法格式,完全兼容原生CSS。文章详细介绍了Sass的核心价值,包括变量复用、样式封装、嵌套语法和逻辑控制等编程特性,能显著提升开发效率。同时提供了环境安装、新版规范(@use替代@import)等实用建议,帮助开发者避免常见陷阱。理解"Sass是工具,SCSS是语法"这一核心关系,掌握关键特性,即可将CSS代码从静态样式升级为结构化程序。

2401_83539958的博客 565

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

别再乱升级了!梳理Vue项目中sass-loader、node-sass与Node版本的兼容性矩阵

本文深入解析Vue项目中sass-loader、node-sass与Node.js版本的兼容性矩阵,帮助开发者避免常见的构建错误如`this.getOptions is not a function`。通过详细的版本对照表和升级策略,指导开发者选择正确的依赖版本,确保项目稳定运行。

weixin_28718755的博客 225

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Bootstrap Sass迁移实战:从sass-bootstrap-defunct到twbs/bootstrap-sass的最佳实践

如果你正在使用`sass-bootstrap-defunct`项目开发前端应用,那么这篇迁移指南将帮助你平稳过渡到官方维护的`twbs/bootstrap-sass`版本。本文将通过**3个核心步骤**和**5个避坑技巧**,让你的迁移过程既安全又高效,确保项目样式和功能不受影响。 ## 为什么需要迁移?了解sass-bootstrap-defunct的现状 `sass-bootstrap-d

gitblog_00227的博客 455

sass less css

项目CSSSassLESS类型样式语言CSS 预处理器CSS 预处理器原理直接由浏览器解析编译成 CSS 后使用编译成 CSS 后使用本质静态语言动态样式语言动态样式语言结论内容新项目建议推荐使用Sass(SCSS),功能更强大,社区支持好,兼容主流构建工具(如 Vite/Webpack)老项目兼容如果已有项目用了 LESS,可以继续用,不必强制迁移个人偏好如果追求更清晰的结构和强逻辑控制,选 Sass;如果只想快速增强 CSS,LESS 也不错?

r8577的博客 636

SASS的知识体系构建

虽然已经在多个项目中使用过sass,但在研究element sass搭建UI框架的源码中,发现很多自己没用过的高级用法,借着这次总结对sass的知识体系进行详细的梳理。 Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理.

qq_35897953的博客 426

ES6与Sass:现代Web开发主流程全解析

ES6提升了 JS 表达力、可维护性,模块化与解构极大简化开发流程。Sass则让 CSS 具备了编程能力,变量、嵌套、mixin 让样式工程化成为可能。主流程各环节紧密配合,自动化工具链(Webpack、Babel、Sass-loader)让开发效率与产出质量大幅提升。与主流框架(React/Vue)无缝集成,支持高阶应用场景(SSR、动态主题、原子化CSS)。调试优化手段丰富,底层原理和架构演进不断创新。

IT技术学习与工作笔记分享 820

CSS(样式层叠表) 要点

# Webpack是什么? webpack是一个静态的模块化打包工具,为现代的javascript应用程序。 可以将帮助我们进行打包,所以是一个打包工具,最终可以将代码打包 成最终的静态资源 。 webpack默认支持各种模块化,ES Module CommonJS Amd等 正是因为现代前端开发面临各种各样的问题 才催生了webpack的出现和发展、 ...

ClassWuTeng的博客 334
上一篇: Sass 环境调试
下一篇: gulp构建工具整理
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值