scss、less

2023-10-29

SCSS 是 Sass 3 引入新的语法,是Sassy CSS的简写,是CSS3语法的超集,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。可以简单理解为scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力。语法形式上有些许不同,最主要的就是sass是靠缩进表示嵌套关系,scss是花括号。
区别:1、Sass是以“.sass”后缀为扩展名,而SCSS是以“.scss”后缀为扩展名;2、Sass是以严格的缩进式语法规则来书写,不带大括号“{}”和分号“;”,而SCSS的语法书写和CSS语法书写方式非常类似,带大括号分号。

Less和Sass的实现原理和优点以及区别:
Less是一种动态的样式语言,使CSS变成一种动态的语言特性,如变量、继承、运算、函数。SaSS也是一种动态样式语言,Less和Scss语法更容易阅读。
实现原理: Less和SaSS都属于CSS预编译处理工具,CSS的扩展语言,所以会在编译前处理成css。

预处理器/工具是指在真正的编译开始之前由编译器调用的独立程序。预处理器可以删除注释、包含其他文件以及执行宏替代。
首先sass/less 会转换为ast(抽象语法树)语法
然后遍历转换后所有的节点
最后再形成css树

区别:

  1. Sass是在服务端上面处理的,之前是Ruby,现在是Dart-Sass或者是Node-Sass,但是Less在编译时,需要引入less.js来处理Less代码输出CSS到浏览器上,也可以在服务器上将Less语法编译成css文件,输出CSS文件到生产包目录,也有在线编译地址。(Less既可以在客户端上面运行,也可以在服务端运行,而Sass只能在服务端运行)

2.变量符,Less是@,而Sass是$

//Less-变量定义
@color: #008c8c; 
.footer {
  border: 1px solid @color; 
}
//scss-变量定义
$color: #008c8c;
.footer {
  border: 1px solid $color; 
}

优点:
1.减少CSS冗余代码
2.提高样式代码的可维护性
3. 结构清晰,便于扩展,可以方便的屏蔽浏览器私有的语法差异
4. 轻松实现多重继承,完全兼容了CSS代码,提高了开发效率。

具体说下SCSS的用法和特性:如下
1.变量声明:$变量名:值;

$a:'red';//变量声明

div{
    background-color: $a;
    font-size: 16px;
    color: $a;
}
//生成的内容
div {
  background-color: "red";
  font-size: 16px;
  color: "red";
}

2.嵌套(无限嵌套)

div{
  color:red;
  a{
  	font-size:16px
  }
}
//生成内容
div {
  color: red;
}
div a {
  font-size: 16px;
}

3.标识符&

//&
div{
    color:red;
    &:hover{  //用在伪类前面
        color: blue;
    }
}
//生成的内容
div {
  color: red;
}
div:hover {
  color: blue;
}

4.变量支持运算

$count:50;
div{
    font: $count%2+'px';
}
//生成的内容
div {
  font: "0px";
}

5.支持条件判断

$type: matador ;
p {
  @if $type == ocean {
    color: blue;
  } @else if $type == matador {
    color: red;
  } @else  {
    color: green;
  } 
}
//生成的css
p {color: red; }

6.混入器 @mixin @includ

@mixin  border($width,$color) {
    border: $width solid $color;
}
p{
    @include border(1px,red)
}
div{
    @include border(1px,blue)
}
//生成的内容
p {
  border: 1px solid red;
}

div {
  border: 1px solid blue;
}

指定默认参数时:

//指定默认参数值
@mixin  border($width:1px,$color:red,$line:solid) {
    border: $width $line $color;
}
p{
    @include border(1px,red,"double")
}
div{
    @include border(1px,blue)
}
h1{
    @include border(1px,blue)
}
img{
    @include border()
}
//生成内容
@charset "UTF-8";
/* hello 会生成到css里面去 */
p {
  border: 1px "double" red;
}

div {
  border: 1px solid blue;
}

h1 {
  border: 1px solid blue;
}

img {
  border: 1px solid red;
}

7.继承 @extend

//指定默认参数值
@mixin  border($width:1px,$color:red,$line:solid) {
    border: $width $line $color;
}
p{
    @include border(1px,red,"double")
}
div{
    //继承了p标签
    @extend p
}
//生成的内容
p, div {
  border: 1px "double" red;
}

8.导入对应的scss或者sass文件

//使用sass的@import规则并不需要指明被导入文件的全名。你可以省略.sass或.scss文
//件后缀。这样,在不修改样式表的前提下,你完全可以随意修改你或别人写的被导入的
//sass样式文件语法,在sass和scss语法之间随意切换
@import"sidebar";
//这条命令将把sidebar.scss文件中所有样式添加到当前样式表中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scss、less 的相关文章

  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 为什么网格项目不居中?

    由于某种原因 两个输入范围使网格中的前两项偏离中心 我假设这是因为它们的影子 DOM 样式 事实真的是这样吗 有谁知道为什么范围使项目 A 和 B 偏离中心 这是一个代码笔 https codepen io tOkyO1 pen QOeKL
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 如何防止弹性项目高度因其内容而溢出[重复]

    这个问题在这里已经有答案了 我刚刚开始学习 Flex 到目前为止我印象深刻 但是 我对包含页眉 页脚和三列的全页应用程序遇到了问题 第一列包含一个项目列表 由于我无法为其父级设置固定高度 因此每次列表增长时 它都会将页脚向下推 这是一个带有
  • 将输入中每个单词的第一个字符设为大写

    我想知道如何在输入区域自动生成单词的第一个字符 目前我的代码是 Name
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • 根据变量值将 LESS 编译为多个 CSS 文件

    有一个指定颜色的变量variables less文件 例如 themeColor B30F55 和一个 json构成实体列表的文件 其中每个键是一个实体 ID 键的值是该实体的颜色 例如 8ab834f32 B30F55 3cc734f31
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • 覆盖并重置 CSS 样式:auto 或 none 不起作用

    我想覆盖为所有表定义的以下 CSS 样式 table font size 12px width 100 min width 400px display inline table 我有一个特定的表 其类名为 other 最后的餐桌装饰应该是这
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d
  • 无法更改 SVG 元素的类名

    我想通过单击按钮来更改应用于 SVG 的类 代码是here http jsfiddle net p19rnmev 我的 SVG 看起来像
  • 如何使按钮在表格单元格内居中

    我试图通过以下方式将按钮置于表格内的中心 text align center 然而 它似乎对我不起作用 注 我用过Display table cell结合Vertical align middle将按钮的文本居中 正如您所看到的 第一个按钮
  • h2 设置背景颜色和下划线

    我需要帮助解决这个 CSS 问题 我想要风格 h2 元素的背景颜色仅适用于文本 并且还有边框底部 这是预览 我可以自己做这件事 这并不难 但问题是我无法添加额外的元素 比如 span 标签 内 h2 标签 所以我正在寻找一种纯CSS方式来实
  • Ionic 2 占位符文本样式

    我正在使用 Ionic 2 rc0 开发一个应用程序 并且整个应用程序中有几个仍然需要样式设置的输入字段
  • 如何淡化循环背景图像?

    这里的菜鸟 我试图让我的静态背景变成一个轮播 我当前的html看起来像这样 div class pageContent div 和我的CSS body background url http placehold it 1600x1200 n

随机推荐

  • Android9.0 mm编译失败:ninja: error: 'xxx', needed by 'xxx', missing and no known rule to make it

    Android系统源码环境下使用mm命令单独编译某一个模块 如果该模块依赖其它模块 可能会报如下错误 解决此问题的方法就是改成mma命令编译 mma命令会构建所需要的关联模块 编译命令简单总结 mm 编译当前目录下的模块 当前目录下要有An
  • 获取成员函数地址及获取函数地址

    首先我们定义一个类Ctest 类里面包含三个不同形式的成员函数 静态成员函数statFunc 动态成员函数dynFunc 和虚拟函数virtFunc 在main函数中我们利用cout标准输出流分别输出这三个函数的地址 程序如下所示 incl
  • WebSocket协议深度解析

    WebSocket协议深度解析 1 WebSocket简介 WebSocket相比于Http协议 它有如下几个优点 支持双向通信 更灵活 更高效 可扩展性更好 支持双向通信 实时性更强 更好的二进制支持 较少的控制开销 连接创建后 ws客户
  • NER相关技术

    实体词典匹配 优点 缺点 模型原理 优点 缺点 模型输入 模型输出 实体词典匹配 模型预测两路结果是怎么合并输出的 目前我们采用训练好的CRF权重网络作为打分器 来对实体词典匹配 模型预测两路输出的NER路径进行打分 在词典匹配无结果或是其
  • 随机生成六位不重复数值

    在 Core JAVA 中有个随机生成六位不重复数值的算法 大二用过一次 今天在写 Algorithms 的练习题遇到类似的问题 特贴出 1 随机生成六位不重复的数字 2 private static int generate6BitInt
  • Mybatis的四种分页方式详解

    LIMIT关键字 mapper代码 select from tb user limit pageNo pageSize 业务层直接调用 public List findByPageInfo PageInfo info return user
  • 关于微信小程序在部分PC设备无法打开的问题

    目前为止微信小程序PC端仍处于灰度测试阶段 部分设备无法打开微信小程序 这个问题在启用分包能力后尤为明显 由于我们不能去控制用户通过PC端访问小程序的行为 仍需对PC端兼容性进行测试 下面我们来介绍测试方式 一 安装微信客户端大于3 4 5
  • 【LeetCode75】第五十四题 咒语和药水的成功对数

    目录 题目 示例 分析 代码 题目 示例 分析 题目给我们两个数组 要我们找出第一个数组中每个元素能和另一个数组的元素匹配的数量 匹配的条件是乘积大于特定的值 那么要乘积大于某个值 就需要乘数越大越好 我们可以把表示药水的数组升序排序 接着
  • aircrack-ng 介绍、功能测试及部分源码分析

    aircrack ng 介绍 功能测试及部分源码分析 实验目的 1 理清aircrack ng的总体设计框架 包括各模块的功能与联系 2 核心模块的实现原理 aircrack ng aireplay ng airodump ng 实验要求
  • C++中按引用传递参数

    C 中按引用传递参数 实参通常是通过值传递给函数的 这意味着形参接收的只是发送给它们的值的副本 它们存储在函数的本地内存中 对形参值进行的任何更改都不会影响原始实参的值 然而 有时候可能会希望一个函数能够改变正在调用中的函数 即调用它的函数
  • linux中的命令 参数 对象,Linux 系统命令、命令参数及命令对象之间,普遍应该使用()间隔? (5.0分)...

    对于实用新型和外观设计专利申请 我国专利法规定实行 是自然界的雷云直接对地面物体 建筑物 放电 它的破坏作用十分大 在标杆管理最佳企业管理实践的阶段 企业只有向同行业标杆企业学习最佳做法 才能提高企业竞争力 经济订购批量 外压容器设计采用的
  • Pytorch版本的BERT使用学习笔记

    一 Google BERT BERT地址 https github com google research bert pytorch版本的BERT https github com huggingface pytorch pretraine
  • 软件设计师---数据结构下

    数据结构下 静态查找 顺序查找 平均查找长度 折半查找 二分查找 折半查找补充 平均查找长度 真题 动态查找 哈希表 哈希表函数构造 哈希表解决冲突 另外一种处理冲突的方法 二次探测在散列 另外一种处理冲突的方法 链地址法 哈希表装填因子
  • spring底层核心原理解析

    目录 一 Spring如何创建一个对象 二 Bean的创建生命周期 三 推断构造方法 四 Spring的构造方法设计 五 利用cglib进行Aop的流程 六 spring判断对象要不要进行aop 一 Spring如何创建一个对象 Annot
  • 阿里云轻量应用服务器和云服务器ECS区别(终于懂了)

    阿里云服务器ECS和轻量应用服务器有什么区别 云服务器ECS是明星级云服务器 轻量应用服务器可以理解为简化版的云服务器ECS 轻量适用于单机应用 云服务器ECS适用于集群类高可用高容灾应用 阿里云百科来详细说下阿里云轻量应用服务器和云服务器
  • 腾讯云服务器ubuntu18.04搭建FastDFS文件服务器

    腾讯云服务器ubuntu18 04搭建FastDFS文件服务器 FastDFS简介 FastDFS是用c语言编写的一款开源的分布式文件系统 FastDFS为互联网量身定制 充分考虑了冗余备份 负载均衡 线性扩容等机制 并注重高可用 高性能等
  • 华为OD机试 - 消消乐游戏(Java)

    题目描述 游戏规则 输入一个只包含英文字母的字符串 字符串中的两个字母如果相邻且相同 就可以消除 在字符串上反复执行消除的动作 直到无法继续消除为止 此时游戏结束 输出最终得到的字符串长度 输入描述 输入原始字符串 str 只能包含大小写英
  • 2022西山居seed游戏开发训练营笔试复盘

    1 c基础 char arr1 a b c b char arr2 abcd int arr3 10 0 arr1和arr2的区别 cout lt lt sizeof arr1 lt lt endl cout lt lt sizeof ar
  • gcc 选项

    1 c选项 gcc命令后直接跟源文件会对源文件进行预处理 编译 链接生成默认名为a out的可执行文件 而 c选项会处理到编译环节终止 生成一个目标文件 默认名为filename o 它必须再经过链接才最终生成可执行文件 2 g选项 创建符
  • scss、less

    SCSS 是 Sass 3 引入新的语法 是Sassy CSS的简写 是CSS3语法的超集 其语法完全兼容 CSS3 并且继承了 Sass 的强大功能 可以简单理解为scss是sass的一个升级版本 完全兼容sass之前的功能 又有了些新增