相关文章推荐
坐怀不乱的山羊  ·  [C++][CGAL]CGAL安装配置后测试 ...·  7 月前    · 
一直单身的跑步鞋  ·  sql server 2008 ...·  1 年前    · 
英姿勃勃的烤面包  ·  你还在使用Dialog?赶紧把DialogF ...·  2 年前    · 
玩篮球的海龟  ·  运行触发器,调用另一个数据库的存储过程·  2 年前    · 
乖乖的砖头  ·  未使用 import语句from lxml ...·  2 年前    · 
Code  ›  Sass和Less(预处理器)「建议收藏」开发者社区
架构师 嵌套 sass less
https://cloud.tencent.com/developer/article/2123846
绅士的啤酒
1 年前
Java架构师必看

Sass和Less(预处理器)「建议收藏」

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
Java架构师必看
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > Sass和Less(预处理器)「建议收藏」

Sass和Less(预处理器)「建议收藏」

作者头像
Java架构师必看
发布 于 2022-09-26 21:32:10
4K 0
发布 于 2022-09-26 21:32:10
举报
文章被收录于专栏: Java架构师必看

​

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Sass和Less(预处理器)「建议收藏」,希望能够帮助大家进步!!!

Sass和Less(预处理器)

  • 一、了解Sass和Less
  • 二、Sass和Less 语法
    • 2.1 注释
    • 2.2 语法
      • 赋值
      • 插值
      • 作用域
      • 选择器嵌套、伪类嵌套、属性嵌套(Sass)
      • 运算
      • 函数
      • 混合、命名空间(Less)、继承
      • 合并、媒体查询
      • 条件判断、循环
      • 引入

一、了解Sass和Less

Sass 对自己的定位首先是一个预处理器。其最主要的竞争对手包括 LESS,一个基于 Node.js 的预处理器,因著名 CSS 框架 Bootstrap 的使用而声名鹊起。此外还有 Stylus ,一种对形式无所限制的 LESS 版本。它是一种无论你想怎么样使用,大都能顺利转换成 CSS 的程序语言。

Sass和Less都属于预处理器。Less文件以 .less 结尾,Sass文件新版的以 .scss 结尾,老版的以 .sass 结尾。

Less文件和Sass文件都会生成css文件。

二、Sass和Less 语法

​

​

2.1 注释

在less文件中,单行注释不会再css文件中显示出来,多行注释就是css的注释方式,会在css文件中显示出来。

2.2 语法

赋值

在Less文件中,定义变量用 @ 。

在Sass文件中,定义变量用 $ 。

代码语言: javascript
复制
@number:123px;
$number:123px;
/* 普通变量声明:直接用 $ 声明 变量执行顺序是自上而下,当下面对变量重新赋值时,会用下面的新值 */
$width:200px;
$width:100px;
/* 默认变量:在后面添加 !default 变量在执行的时候,不会根据位置执行,执行不是默认变量的值 */
$width:230px;
$width:300px !default;
/* 全局变量和局部变量 在局部变量后添加 !global ,局部变量作用域为全局变量 */
$color:red; #div1{ 
    color: $color;  //使用全局变量,结果 red
    // $color:orange;  //局部变量,结果是 orange
   $color:orange !global; //添加 !global 后,局部变量 变成全局变量,div2的值为 orange .box{ 
        background-color: $color;   //在本作用域下颜色是 orange
#div2{ 
    background-color: $color;//
}

只听到从架构师办公室传来架构君的声音:

郑国游人未及家,洛阳行子空叹息。 有谁来对上联或下联?

插值

在Less文件中定义一个值,插入进去用 @{} ,将定义的值放入括号中


在Less中的编译和结果

​

​


特殊变量 #{} 在Sass中,用定义值后,用#{}进行插值和值一起写入括号中。

作用域

采用就近原则,在大括号里有已经创建的变量,优先使用大括号里面的变量值。


在Less文件中,在大括号内先取值,在定义,最后显示的都是大括号内的变量值

​

​


在Sass文件中,如果先取值,在定义新变量,定义新变量之前的会使用之前的值,定义新变量后的代码会取更改后的值。Sass作用域有顺序。

​

选择器嵌套、伪类嵌套、属性嵌套(Sass)

在Less和Sass中,可以对标签嵌套,在里面写各个层级写相应的样式,编译完成后,会自动写好对应的选择器。减少复杂的编译选择器代码。

伪类嵌套,需要在伪类的冒号前面加 & ,不然会有空格。

属性嵌套只有在Sass中有,Less没有。

代码语言: javascript
复制
此代码由Java架构师必看网-架构君整理
/* 选择器嵌套 */
#div3{ 
    width: 300px;
    .name{ 
        color: aqua;
        background: azure;
        // & 父类元素选择器,添加伪类选择器
        &:hover{ 
            color: blue;
}

​

​

​

​

运算

在Less加减乘除都可以做。如果进行不同单位的计算,会按照第一个单位进行计算,只计算值。


在Sass中不同单位不能进行计算,默认 / 是分割,不会像Less一样会认为是除号。

函数

Sass和Less有的函数可以通用,有的不行,需要去官网查询API。

round()取整,percentage()小数点换成百分数。


Sass可以自定义函数中,用function定义。Less中不能使用自定义函数

代码语言: javascript
复制
/* 函数 */
$colors:(light:white,dark:black);	//map映射
//根据key获取值
@function color($key){ 
    @if not map-has-key($colors,$key){ 
        //警告@warn不会中断 sass 监听
        @warn  "在映射中没有#{$key}这个键";
        //错误@error 会中断 sass 监听
        @error "在映射中没有#{$key}这个键";
    @return map-get($colors,$key);
//使用函数color
body{ 
    background: color(light);
}

​

​

混合、命名空间(Less)、继承

混入在Less中使用。样式可以单独显示,也可以在其他的杨使用混入,如果不想选择器编译出来可以在样式后面加一个(),就不会编译出来,可以在括号中进行传参。


在Sass中混入,用 @mixin 方法定义要混入的样式,用 @include 将方法混入。就是编写代码块和使用代码块。

代码语言: javascript
复制
此代码由Java架构师必看网-架构君整理
/* 混合:@mixin 名称{} 引用混合: @include 名称 */
//无参混合
@mixin clear { 
    width: 100px;
#div4{ 
    @include clear;
//有参混合
@mixin col($color:red,$border:1px solid black) { 
    background: $color;
    border:$border ;
 
推荐文章
坐怀不乱的山羊  ·  [C++][CGAL]CGAL安装配置后测试代码_cgal源码-CSDN博客
7 月前
一直单身的跑步鞋  ·  sql server 2008 删除架构_mob649e8153b214的技术博客_51CTO博客
1 年前
英姿勃勃的烤面包  ·  你还在使用Dialog?赶紧把DialogFragment用起来-腾讯云开发者社区-腾讯云
2 年前
玩篮球的海龟  ·  运行触发器,调用另一个数据库的存储过程
2 年前
乖乖的砖头  ·  未使用 import语句from lxml import etree ?-编程语言-CSDN问答
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号