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 的相关文章

  • 在 Chrome 中,应用于包含图像的锚点的轮廓高度不正确

    对于我正在开发的网站 我希望当链接聚焦 悬停 活动时 链接周围会出现虚线轮廓 我希望文本和图像链接发生这种情况 我遇到的问题是 虽然我的代码在 Firefox 和 IE 中运行良好 但在 Chrome 7 0 517 41 中 虚线轮廓与我
  • 如何使用div绘制曲线?

    我需要使用 CSS 绘制两条曲线 我尝试过组装一些divs 使用CSSborder radius绘制弧形面板 但结果很糟糕 还有更好的算术吗 正如我之前在评论中提到的 请不要使用CSS用于实现复杂的曲线和形状 虽然仍然可以使用 CSS 来实
  • 简化 CSS 代码

    我怎样才能简化这段代码 user panel subscribe user panel faves user panel tags user panel title user panel calendar a user panel item
  • 获取 CSS 计算结果以设置自定义属性

    我正在测试一个 CSS 框架 用于通过微类指定数字 例如 类似的东西 div class fifty percent wide 可能会翻译成width 50 该实现使用 CSS 变量 自定义属性 考虑以下 CSS fifty number
  • 使用jquery和css点击按钮后旋转div文本

    我想使用 jquery 和 css 单击按钮后旋转 div 文本 如果用户点击Rotate Left按钮 然后文本在左侧旋转 or用户点击Rotate Right按钮然后文本在右侧旋转 Example div Happy Birthday
  • 没有嵌套容器的桌面和移动 Flexbox 布局

    我有 3 个 div 它们必须按移动布局的特定顺序排列 但我必须将第 2 个 div 作为桌面布局的侧边栏 所以对于移动设备 分区1 分区2 分区3 对于桌面 分区1 div2 分区3 在桌面布局中 div 2 有阴影背景 因此必须是父级的
  • iFrame 未扩展至 100% 高度

    我有这个下面的html 我希望 iFrame 能够 100 覆盖屏幕的其余部分 我在高度属性中尝试了 100 和 但不起作用 这是为什么 谢谢 div img height 35 width 84 alt Kucku src Content
  • 在打印 CSS 上在每个页面周围绘制边框?

    打印时我需要在每个页面周围绘制边框 我最初是使用带有分页符的 div 来完成此操作 例如 media print contentContainer position inline height 98 width 100 top 0px le
  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • React Native 上的文本缩进

    我需要缩进 React Native 段落的第一行 但使用常见的csstext indent财产 textIndent 与 React Native 不兼容 伪元素选择器也不兼容 例如 first line 有什么方法可以做到这一点而不用将
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • 如何在 Bootstrap 列中使用文本溢出?

    假设我有一行具有固定高度 并且我在其列中插入了一些文本 如果太长 我希望将其剪掉 并在行尾添加三个点 如下所示 我在用着文本溢出 省略号 我的行中有此属性 但无法使其工作 JsFiddle http jsfiddle net Alexnot
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • 将样式添加到 mat-autocomplete 的 mat-option

    我有这个 HTML代码在这里 https stackblitz com edit angular mat autocomplete with selected value vx1uqg file src 2Fapp 2Fautocomple
  • IE7 显示问题:菜单中的表格

    我写了一个菜单样式 在 IE8 FF3 6 GC7 中运行良好 现在的问题是 我的老板希望它甚至可以在 IE7 上运行 我真的很努力地让它在 IE7 上运行 但无法获得相同的外观 menu css a outline none menu m
  • 如何动态打破 FlexBox 列以开始新列

    I have a dynamic list of items containing text placed column wise which I need to break after every 5th item 我只有两个限制 每个
  • 如何将背景图像仅应用于一个反应页面而不是整个应用程序?

    注册页面示例 register background image linear gradient to right ff5722 0 ff9800 100 margin top 150px important div div div div
  • FireFox 中的“contenteditable = true”高度问题

    当有空的时候div with contenteditable true CSS contenteditable true border 1px dashed dedede padding 3px HTML div div 在 IE 和 Ch

随机推荐

  • 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之前的功能 又有了些新增