欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS预处理器之 less和sass对比?

程序员文章站 2022-05-18 14:49:09
...

 less

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。

注释

//开头的注释,不会被显示css文件中

/**/包裹的注释会被显示css文件中

变量

使用@来申明一个变量:@pinkpink;可以作为常数来使用。

注意(如果属性值有单位一般我们都会把单位放到变量上,这样)

1.作为普通属性值只来使用:直接使用@pink

2.作为选择器和属性名URL@{selector} @{url}的形式

3.变量的延迟加载

@num: 0;
.box{
Width:@num;
Height:@num;
}

Import 引入

@import "./reset/reset.less";

好处:只请求一次

嵌套

我们可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码看起来更加的清晰。

.box{
    width: 300px;
    background: pink;
    a{
        float: left;
        &:hover{
           color: red;
        }
    }
    span{
         float: right;
    }
}

运算

运算提供了加,减,乘,除操作;我们可以做属性值和颜色的运算,这样就可以实现属性值之间的复杂关系

注意:避免编译

从语法上让编译器忽略一些操作

.box{width:~"calc(200px + 700px)";}

混合

混合就是将一系列属性从一个规则集引入到另一个规则集的方式

1、不带参数的混合 

.juzhong{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    margin: auto;
}

调用:

.box{
Width:@num;
Height:@num;
.juzhong();
}

2、带参数的混合

.juzhong(@w,@h){
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    margin: auto;
}
继承
继承是对选择器的组合而不是对样式集的复制
nav ul {
&:extend(.inline);
background: blue;
 }

循环

less本身没有循环的语法是通过递归来构建循环

.test(@n) when(@n > 0){
    .test(@n - 1);
    .box{
       width: 100px * @n;
    }
}

.test(12);


多方面对比less和sass

CSS预处理器之 less和sass对比?

预处理器总结

1.嵌套可以反映层级和约束

2.变量和计算可以减少重复代码

3.Extend Mixin可以复用代码片段

4.循环适用于复杂有规律的样式

5.import css文件模块化


 

相关标签: 预处理器 css