stylus、sass、less区别
stylus、sass、less区别
stylus、sass、less区别一、变量
1、less:/*以“@”开头*/ ,@var: value
2、sass:/*以“$”开头*/,$var: value
3、stylus:/*可以以“$”开头,也可无前缀符号直接声明变量*/,var=10
二、后缀名
1、less:*.less
2、sass:*.scss
3、stylus:*.styl
三、混合(Mixins)
Mixins是CSS预处理器中语言中最强大的特性。Mixins可以将一部分需重用的样式抽出,只需定义一次,就可被很多选择器重复使用。
1、less:LESS中声明Mixins和CSS定义样式非常类似,可以将Mixins看成是一个选择器,当然Mixins也可以设置参数,并给参数设置默认值。不过设置参数的变量名是使用“@”开始,同样参数和默认参数值之间需要使用冒号(:)分开。
2、sass:在Sass定义Mixins和LESS、Stylus有所不同,在声明Mixins时需要使用“@mixin”开头,然后后面紧跟Mixins的名,他也可以定义参数,同时可以给这个参数设置一个默认值,但参数名是使用“$”符号开始,而且和参数值之间需要使用冒号(:)分开。另外在Sass中调用Mixins需要使用“@include”开头,然后在其后紧跟你要调用的Mixins名。
3、stylus:Stylus和前两者也略有不同,他可以不使用任何符号,就是直接定义Mixins名,然后在定义参数和默认值之间用等号(=)来连接。
例如
1、less:
/*声明混合*/
.setColor(@mainC:#000){
color:@mainC;
}
/*直接以默认值调用混合*/
.sBox{
.setColor();
}
/*调用混合且传入自定义参数值*/
.bBox{
.setColor(#fff);
}
2、sass:
/*声明混合*/
@mixin setColor($mainC:#000){
color:$mainC;
}
/*直接以默认值调用混合*/
.sBox{
@include setColor();
}
/*调用混合且传入自定义参数值*/
.bBox{
@include setColor(#fff);
}
3、stylus:
/*声明混合*/
setColor(mainC=#000){
color:mainC;
}
/*直接以默认值调用混合*/
.sBox{
setColor();
}
/*调用混合且传入自定义参数值*/
.bBox{
setColor(#fff);
}
四、嵌套实现后代选择器
嵌套语法是相同的,可以通过大括号“{}”之间的层次关系实现嵌套。也可以使用“&”符号来引用父选择器。
例如
li{
margin:10px 5px;
a{
color:red;
&:hover{
color:blue;
}
}
}
编译后的CSS
li{
margin:10px 5px;
}
li a{
color:red;
}
li a:hover{
color:blue;
}
五、继承
当我们需要为多个元素定义相同样式的时候,我们可以考虑使用继承的做法。
1、less:无需明确的前缀
2、sass:使用“@extend”开始,后面紧跟被继承的选择器
3、stylus:使用“@extend”开始,后面紧跟被继承的选择器
例如
1、在 sass 和 stylus 中:
.block {
margin: 10px 5px;
padding: 2px;
}
p {
@extend .block; /* Inherit styles from '.block' */
border: 1px solid #EEE;
}
ul, ol {
@extend .block; /* Inherit styles from '.block' */
color: #333;
text-transform: uppercase;
}
编译后的CSS
.block, p, ul, ol {
margin: 10px 5px;
padding: 2px;
}
p {
border: 1px solid #EEE;
}
ul, ol {
color: #333;
text-transform: uppercase;
}
2、在 Less 中:
.block {
margin: 10px 5px;
padding: 2px;
}
p {
.block; /* Inherit styles from '.block' */
border: 1px solid #EEE;
}
ul, ol {
.block; /* Inherit styles from '.block' */
color: #333;
text-transform: uppercase;
}
编译后的CSS
.block {
margin: 10px 5px;
padding: 2px;
}
p {
margin: 10px 5px;
padding: 2px;
border: 1px solid #EEE;
}
ul,
标签:css
- js和css哪个重要(js与css的阻塞问题详析)
- css flex布局教程(详解CSS3伸缩布局盒模型Flex布局)
- css3中过渡动画的属性(css3 中实现炫酷的loading效果)
- css3边框讲解(详解css3 object-fit属性)
- css3动画平移代码(利用CSS3实现炫酷的飞机起飞动画)
- css导航栏字怎么分开设置(纯CSS实现导航栏Tab切换效果)
- css中:first-child
- css中好看的渐变颜色代码(CSS Tips:段落每行渐变色文本效果的实现方法)
- web前端快速入门之html(Web前端开发规范2017HTML/JavaScript/CSS)
- css样式表中border在哪(CSS中使用border来创建三角形的基本方法讲解)
- css长度单位px、em、pt
- csstable元素设置(CSS设置table下tbody的滚动条的实现)
- CSS块级元素和行内元素
- css3实现凸起效果(CSS3轻松实现圆角效果)
- css设置超链接样式
- border和background区别(css中background-origin属性的使用解析)
- 怎么做好SEO(怎么做好seo内容优化)
- 冬季钓鱼子线用 长 还是 短(冬季钓鱼子线用)
- 鱼竿 夏钓短,冬钓长 ,一定是这样 认清优缺点在选竿(鱼竿夏钓短冬钓长)
- 鲢鳙钓底还是钓浮 流水的水域应怎样做钓(鲢鳙钓底还是钓浮)
- 入秋后的第二场苹果发布会来了 全新M1系列芯片登场(入秋后的第二场苹果发布会来了)
- 苹果正式发布自研芯片M1 5nm 32核心 彻底放弃Intel(苹果正式发布自研芯片M1)