Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
css预处理器是什么_创想鸟

css预处理器是什么

CSS预处理器是一种专门的编程语言,用来为CSS增加一些编程特性(CSS本身不是编程语言)。不需考虑浏览器兼容问题,因为CSS预处理器最终编译和输出的仍是标准的CSS样式。可以在CSS预处理器中:使用变量、简单逻辑判断、函数等基本编程技巧。

css预处理器是什么

本教程操作环境:windows7系统、CSS3版、Dell G3电脑。

CSS(Cascading Style Sheet)被译为级联样式表,做为一名前端从业人员来说,这个专业名词并不陌生,在行业中通常称之为“风格样式表(Style Sheet)”,它主要是用来进行网页风格设计的。通过设立样式表,可以统一地控制HTML(XHTML)中各标签的显示属性。可以使人更能有效的控制Web页面(或Web应用程序)外观,可以精确指定Web元素位置,外观以及创建特殊效果的能力。CSS拥有对网页对象和模型样式编辑能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据 不同使用者的理解能力,简化或者优化写法,针对各类人群有较强的易读性。

就CSS本身而言,对于大多数Web前端从业人员来说就不是问题。学过CSS的人都知道,它不是一种编程语言。你可以用它开发网页样式,但是没法用它编程。换句话说,CSS基本上是设计师的工具,不是程序员的工具。在程序员的眼里,CSS是很头痛的事情,它并不像其它程序语言,比如说PHP、Javascript等等,有自己的变量、常量、条件语句以及一些编程语法,只是一行行单纯的属性描述,写起来相当的费事,而且代码难易组织和维护。

很自然的,有人就开始在想,能不能给CSS像其他程序语言一样,加入一些编程元素,让CSS能像其他程序语言一样可以做一些预定的处理。这样一来,就有了“CSS预处器(CSS Preprocessor)”。

立即学习“前端免费学习笔记(深入)”;

一、什么是CSS预处理器

CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。

CSS预处理器技术已经非常的成熟,而且也涌现出了很多种不同的CSS预处理器语言,比如说:Sass(SCSS)、LESS、Stylus、Turbine、Swithch CSS、CSS Cacheer、DT CSS等。如此之多的CSS预处理器,那么“我应该选择哪种CSS预处理器?”也相应成了最近网上的一大热门话题,在Linkedin、Twitter、CSS-Trick、知呼以及各大技术论坛上,很多人为此争论不休。相比过计我们对是否应该使用CSS预处理器的话题而言,这已经是很大的进步了。

到目前为止,在众多优秀的CSS预处理器语言中就属Sass、LESS和Stylus最优秀,讨论的也多,对比的也多。本文将分别从他们产生的背景、安装、使用语法、异同等几个对比之处向你介绍这三款CSS预处理器语言。相信前端开发工程师会做出自己的选择——我要选择哪款CSS预处理器。

(学习视频分享:css视频教程)

二、Sass、LESS和Stylus背景介绍

为了能更好的了解这三款流行的CSS预处理器,我们先从其背景入手,简单的了解一下各自的背景信息。

1.Sass背景介绍

Sass是对CSS(层叠样式表)的语法的一种扩充,诞生于2007年,最早也是最成熟的一款CSS预处理器语言,它可以使用变量、常量、嵌套、混入、函数等功能,可以更有效有弹性的写出CSS。Sass最后还是会编译出合法的CSS让浏览器使用,也就是说它本身的语法并不太容易让浏览器识别,因为它不是标准的CSS格式,在它的语法内部可以使用动态变量等,所以它更像一种极简单的动态语言。

其实现在的Sass已经有了两套语法规则:一个依旧是用缩进作为分隔符来区分代码块的;另一套规则和CSS一样采用了大括号({})作为分隔符。后一种语法规则又名SCSS,在Sass3之后的版本都支持这种语法规则。

注:Sass官网地址:http://sass-lang.com

2.LESS的背景介绍

2009年开源的一个项目,受Sass的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手。LESS提供了多种方式能平滑的将写好的代码转化成标准的CSS代码,在很多流行的框架和工具中已经能经常看到LESS的身影了(例如Twitter的Bootstrap框架就使用了LESS)。

根据维基百科上的介绍,其实LESS是Alexis Sellier受Sass的影响创建的一个开源项目。当时SASS采用了缩进作为分隔符来区分代码块,而不是CSS中广为使用的大括号({})。为了让CSS现有的用户使用起来更佳方便,Alexis开发了LESS并提供了类似CSS的书写功能。

注:LESS的官网:http://lesscss.org

3.Stylus背景介绍

Stylus,2010年产生,来自于Node.js社区,主要用来给Node项目进行CSS预处理支持,在此社区之内有一定支持者,在广泛的意义上人气还完全不如Sass和LESS。

Stylus被称为是一种革命性的新语言,提供一个高效、动态、和使用表达方式来生成CSS,以供浏览器使用。Stylus同时支持缩进和CSS常规样式书写规则。

注:Stylus官网:http://learnboost.github.com/stylus

三、Sass、LESS和Stylus的语法

每一种语言都有自己一定的语法规则,CSS预处理器语言也不例外,在真正使用CSS预处器语言之前还有一个不可缺少的知识点,就是对语法的理解。值得庆幸的是,这三款CSS预处理器语言的语法和CSS语法都差不多。

1.Sass语法

Sass3.0版本开始使用的是标准的CSS语法,和SCSS可以说是一样的。这样Sass代码转换成CSS代码变得更容易。默认Sass使用“.scss”扩展名。Sass语法规则可以像CSS那样书写:

/*style.sass新版语法规则*/h1{  color:#936;  background-color:#333;}

正如你所看到的,在Sass样式中,这样的代码是在简单不过的了。

重要的一点是,Sass也同时支持老的语法,老的语法和常规的CSS语法略有不同,他需要严格的语法,任何的缩进和字符的错误都会造成样式的编译错误。Sass可以省略大括号({})和分号(;),完全依靠严格的缩进和格式化代码,而且文件使用“.sass”扩展名,他的语法类似于:

/*style.sass*/h1  color:#936  background-color: #333

2.LESS语法

LESS是CSS的一种扩展形式,它并没有阉割CSS的功能,而是在现有的CSS语法上,添加了很多额外的功能。就语法规则而言,LESS和Sass一样,都是使用CSS的标准语法,只是LESS的源文件的扩展名是“.less”,其基本语法类似于:

/*style.less*/h1 {  color: #963;  background-color: #333;}

3.Stylus语法

Stylus的语法花样多一些,它的文件扩展名是“.styl”,Stylus也接受标准的CSS语法,但是他也像Sass老的语法规则,使用缩进控制,同时Stylus也接受不带大括号({})和分号的语法,如下所示:

/*style.styl*//*类似于CSS标准语法*/h1 {  color: #963;  background-color:#333;}/*省略大括号({})*/h1   color: #963;  background-color: #333;/*省略大括号({})和分号(;)*/h1  color:#963  background-color:#333

在Stylus样式中,你也可以在同一个样式文件中使用不同的语法规则,下面这样的写法也不会报错:

/*style.styl*/h1 {  color  #963}h2   font-size:1.2em

四、Sass、LESS和Stylus特性

这三款CSS预处理器语言具有一些相同的特性,例如:变量、混入、嵌套、函数等。在这一节中,我们依次来对比一下这三款CSS预处理器语言各种特性的异同之处,以及使用方法。

1.变量(Variables)

如果你是一个开发人员,变量应该是你最好朋友之一。在CSS预处理器语言中你也可以声明变量,并在整个样式表中使用。CSS预处理器语言支持任何变量(例如:颜色、数值、文本)。然后你可以在任意地方引用变量。

a)Sass的变量

Sass声明变量必须是“$”开头,后面紧跟变量名和变量值,而且变量名和变量值需要使用冒号(:)分隔开。就像CSS属性设置一样:

/*声明变量*/ $mainColor: #963;$siteWidth: 1024px;$borderStyle: dotted; /*调用变量*/                              |  /*转译出来的CSS*/------------------------------------------+------------------------------body {                                    |  body {  color: $mainColor;                      |    color: #963;  border:1px $borderStyle $mainColor;     |    border:1px dotted #963;  max-width: $siteWidth;                  |    max-width: 1024px;}                                         |  }                                       |  }

b)LESS的变量

LESS样式中声明变量和调用变量和Sass一样,唯一的区别就是变量名前面使用的是“@”字符:

/*声明变量*/@mainColor: #963;@siteWidth: 1024px;@borderStyle: dotted;/*调用变量*/                            |  /*转译出来的CSS*/----------------------------------------+-------------------------------body {                                  |  body {  color: @mainColor;                    |    color:#963;  border:1px @borderStyle @mainColor;   |    border:1px dotted #963;  max-width: @siteWidth;                |    max-width:1024px;}                                       |  }

c)Stylus的变量

Stylus样式中声明变量没有任何限定,你可以使用“$”符号开始。结尾的分号(;)可有可无,但变量名和变量值之间的等号(=)是需要的。有一点需要注意的是,如果我们使用“@”符号开头来声明(0.22.4)变量,Stylus会进行编译,但其对应的值并不会赋值给变量。换句话说,在Stylus中不要使用“@”符号开头声明变量。Stylus中调用变量的方法和LESS、Sass是完全相同的。

/*声明变量*/ mainColor = #963;siteWidth = 1024px;$borderStyle = dotted; /*调用变量*/                            |    /*转译出来的CSS*/----------------------------------------+--------------------------------body                                    | body {  color mainColor                       |   color: #963;  border 1px $borderStyle mainColor     |   border:1px dotted #963  max-width siteWidth                   |   max-width:1024px;                                        | }

Stylus还有一个独特功能,不需要分配值给变量就可以定义引用属性:

/*水平垂直居中*/                    |  /*转译出来的CSS*/------------------------------------+------------------------------------#logo                               |   #logo {  position  absolute                |     position:absolute;  top  50%                          |     top:50%;  left  50%                         |     left:50%;  width  w = 150px                  |     width:150px;  height  h = 80px                  |     height:80px;  margin-left  -(w / 2)             |     margin-left:-75px;margin-top  -(h / 2)                |     margin-top:-40px;                                    |   }

从上面的代码中我们可以看出,CSS预处理器语言中的变量是值级别的重复使用,可以将相同的值定义成变量统一管理起来。

CSS预处理器语言中变量的特性适用于定义主题(也就是我们常说的换肤),我们可以将背景颜色、字体颜色、边框属性等常规样式统一定义,这样不同的主题只需要定义不同的变量文件就可以。

2.作用域(Scope)

CSS预处理器语言中的变量和其他程序语言一样,可以实现值的复用,同样它也存在生命周期,也就是Scope(变量范围,开发人员习惯称之为作用域),简单点讲就是局部变量还是全局变量的概念,查找变量的顺序是先在局部定义中找,如果找不到,则查找上级定义,直至全局。下面我们通过一个简单的例子来解释这三款CSS预处理器的作用域使用。

a)Sass的作用域

Sass中作用域在这三款预处理器是最差的,可以说在Sass中是不存在什么全局变量。具体来看下面的代码:

/*Sass样式*/$color: black;.scoped {  $bg: blue;  $color: white;  color: $color;  background-color:$bg;}.unscoped {  color:$color;}

先看转译出来的CSS样式:

.scoped {  color:white;/*是白色*/  background-color:blue;}.unscoped {  color:white;/*白色(无全局变量概念)*/}

示例明显的告诉我们,在Sass样式中定义变量,调用变量是没有全局变量一个概念存在,因此在Sass中定义了相同变量名时,在调用之时千万要多加小心,不然会给你的样式带来错误。

b)LESS的作用域

LESS中的作用域和其他程序语言中的作用域非常的相同,他首先会查找局部定义的变量,如果没有找到,会像冒泡一样,一级一级往下查找,直到根为止,同样上面的例子,我们来看看他在LESS下所起的变化。

/*LESS样式*/@color: black;.scoped {  @bg: blue;  @color: white;  color: @color;  background-color:@bg;}.unscoped {  color:@color;}

转译出来的CSS样式:

.scoped {  color:white;/*白色(调用了局部变量)*/  background-color:blue;}.unscoped {  color:black;/*黑色(调用了全局变量)*/}

c)Stylus的作用域

Stylus虽然起步比较晚,但其作用域的特性和LESS一样,可以支持全局变量和局变量。会向上冒泡查找,直到根为止。

3.混合(Mixins)

Mixins是CSS预处理器中语言中最强大的特性,简单点来说,Mixins可以将一部分样式抽出,作为单独定义的模块,被很多选择器重复使用。平时你在写样式时肯定有碰到过,某段CSS样式经常要用到多个元素中,这样你就需要重复的写多次。在CSS预处理器语言中,你可以为这些公用的CSS样式定义一个Mixin,然后在你CSS需要使用这些样式的地方直接调用你定义好的Mixin。这是一个非常有用的特性,Mixins被当作一个公认的选择器,还可以在Mixins中定义变量或者默认参数。

a)Sass的混合

Sass样式中声明Mixins时需要使用“@mixin”,然后后面紧跟Mixins的名,他也可以定义参数,同时可以给这个参数设置一个默认值,但参数名是使用“$”符号开始,而且和参数值之间需要使用冒号(:)分开。

在选择器调用定义好的Mixins需要使用“@include”,然后在其后紧跟你要调用的Mixins名。不过在Sass中还支持老的调用方法,就是使用加号“+”调用Mixins,在“+”后紧跟Mixins名。

一起来看个简单的例子,比如说在你的Sass样式中定义了一个名叫“error”的Mixin,这个“error”设置了一个参数“$borderWidth”,在没特别定义外,这个参数的默认值设置为“2px”:

/*声明一个Mixin叫作“error”*/@mixin error($borderWidth:2px){  border:$borderWidth solid #f00;  color: #f00;}/*调用error Mixins*/.generic-error {  @include error();/*直接调用error mixins*/}.login-error {  @include error(5px);/*调用error mixins,并将参数$borderWidth的值重定义为5px*/}

b)LESS的混合

在LESS中,混合是指将定义好的“ClassA”中引入另一个已经定义的“Class”,就像在当前的“Class”中增加一个属性一样。

不过LESS样式中声明Mixins和Sass声明方法不一样,他更像CSS定义样式,在LESS可以将Mixins看成是一个类选择器,当然Mixins也可以设置参数,并给参数设置默认值。不过设置参数的变量名是使用“@”开头,同样参数和默认参数值之间需要使用冒号(:)分隔开。

正如Sass混合是的示例,同样在LESS样式中定义一个名叫“error”的Mixin,这个“error”设置了一个参数“@borderWidth”,在没有特别定义外,这个参数的默认值是“2px”:

/*声明一个Mixin叫作“error”*/.error(@borderWidth:2px){  border:@borderWidth solid #f00;  color: #f00;}/*调用error Mixins*/.generic-error {  .error();/*直接调用error mixins*/}.login-error {  .error(5px);/*调用error mixins,并将参数@borderWidth的值重定义为5px*/}

c)Stylus的混合

Stylus中的混合和前两款CSS预处理器语言的混合略有不同,他可以不使用任何符号,就是直接声明Mixins名,然后在定义参数和默认值之间用等号(=)来连接。

/*声明一个Mixin叫作“error”*/error(borderWidth=2px){  border:borderWidth solid #f00;  color: #f00;}/*调用error Mixins*/.generic-error {  error();/*直接调用error mixins*/}.login-error {  error(5px);/*调用error mixins,并将参数$borderWidth的值重定义为5px*/}

三个示例都将会转译成相同的CSS代码:

.generic-error {  border: 2px solid #f00;  color:#f00;}.login-error {  border:5px solid #f00;  color: #f00;}

4.嵌套(Nesting)

CSS预处理器语言中的嵌套指的是在一个选择器中嵌套另一个选择器来实现继承,从而减少代码量,并且增加了代码的可读性。比如说,我们在CSS中多个元素有一个相同的父元素,那么写样式会变得很乏味,我们需要一遍一遍的在每个元素前写这个父元素,除非给特定的元素添加类名“class”或者ID。

section {  margin:10px;}section nav {  height:25px;}section nav a {  color: #0982c1;}section nav a:hover {  text-decoration: underline;}

相反,使用CSS预处理器语言的嵌套特性,我们可以在父元素的大括号({})里写这些元素。同时可以使用“&”符号来引用父选择器。对于Sass、LESS和Stylus这三款CSS预处理器语言的嵌套选择器来说,他们都具有相同的语法:

section {  margin:10px;  nav {    height:25px;    a {      color:#0982c1;      &:hover {        text-decoration:underline;      }    }  }}

上面的预处理器转译出来的CSS代码和我们开始展示的CSS代码是相同的,非常的方便吧!

5.继承(Inheritance)

对于熟悉CSS的同学来说,对于属性的继承并不陌生。平时在写CSS样式常碰到多个元素应用相同的样式时,我们在CSS中通常都是这样写:

p,ul,ol{/*样式写在这里*/}

这样做非常的好,但往往我们需要给单独元素添加另外的样式,这个时候我们就需要把其中选择器单独出来写样式,如此一来我们维护样式就相当的麻烦。为了应对这个问题,CSS预处理器语言可以从一个选择继承另个选择器下的所有样式。

a)Sass和Stylus的继承

Sass和Stylus的继承是把一个选择器的所有样式继承到另个选择器上。在继承另个选择器的样式时需要使用“@extend”开始,后面紧跟被继承的选择器:

.block {  margin: 10px 5px;  padding: 2px;}p {  @extend .block;/*继承.block选择器下所有样式*/  border: 1px solid #eee;}ul,ol {  @extend .block; /*继承.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;}

b)LESS的继承

LESS支持的继承和Sass与Stylus不一样,他不是在选择器上继承,而是将Mixins中的样式嵌套到每个选择器里面。这种方法的缺点就是在每个选择器中会有重复的样式产生。

.block {  margin: 10px 5px;  padding: 2px;}p {  .block;/*继承.block选择器下所有样式*/  border: 1px solid #eee;}ul,ol {  .block; /*继承.block选择器下所有样式*/  color: #333;  text-transform: uppercase;}

转译出来的CSS代码:

.block {  margin: 10px 5px;  padding:2px;}p {  margin: 10px 5px;  padding:2px;  border: 1px solid #eee}ul,ol {  margin: 10px 5px;  padding:2px;  color:#333;  text-transform:uppercase;}

正如所看到的,上面的代码“.block”的样式将会被插入到相应的你要继承的选择器中,但需要注意的是优先级的问题。

6.运算符(Operations)

CSS预处理器语言还具有运算的特性,其简单的讲,就是对数值型的Value(如:数字、颜色、变量等)进行加减乘除四则运算。这样的特性在CSS样式中是想都不敢想的,但在CSS预处理器语言中对样式做一些运算一点问题都没有了,例如:

@base_margin: 10px;@double_margin: @base_margin * 2;@full_page: 960px;@half_page: @full_page / 2;@quarter_page: (@full_page / 2) / 2;

上面代码是LESS的运算示例,声明一下,在取得“@quarter_page”变量时,我们可以直接除以4,但是在这里,我们只是想演示一下圆括号组成的“运算顺序”(这个运算顺序小学生也知道)。在复合型运算中,小括号也是很有必要的,例如:

border: (@width / 2) solid #000;

Sass在数字运算上要比LESS更专业,他可以直接换算单位了。Sass可以处理无法识别的度量单位,并将其输出。这个特性很明显是一个对未来的尝试——证明W3C作出的一些改变。

Stylus的运算是三款预处理器语言中最强大的一款,他拥有其他程序语言一样的运算功能,简单点的加减乘除,复杂的有关系运算、逻辑运算等。受限于篇幅,感兴趣的同学可以到官网上仔细阅读。

7.颜色函数

颜色函数是CSS预处理器语言中内置的颜色函数功能,这些功能可以对颜色进行处理,例如颜色的变亮、变暗、饱和度控制、色相控制,渐变颜色等处理十分的方便。

a)Sass颜色函数

lighten($color, 10%); /* 返回的颜色在$color基础上变亮10% */darken($color, 10%);  /* 返回的颜色在$color基础上变暗10% */saturate($color, 10%);   /* 返回的颜色在$color基础上饱和度增加10% */desaturate($color, 10%); /* 返回的颜色在$color基础上饱和度减少10% */grayscale($color);  /* 返回$color的灰度色*/complement($color); /* 返回$color的补色 */invert($color);     /* 返回$color的反相色 */mix($color1, $color2, 50%); /* $color1 和 $color2 的 50% 混合色*/

这只是Sass中颜色函数的一个简单列表,更多详细的介绍可以阅读Sass文档。

颜色函数可以运用到任何一个元素上,只要其有颜色的属性,下面是一个简单的例子:

$color: #0982C1;h1 {  background: $color;  border: 3px solid darken($color, 50%);/*边框颜色在$color的基础上变暗50%*/}

b)LESS颜色函数

lighten(@color, 10%); /* 返回的颜色在@color基础上变亮10% */darken(@color, 10%);  /* 返回的颜色在@color基础上变暗10%*/saturate(@color, 10%);   /* 返回的颜色在@color基础上饱和度增加10% */desaturate(@color, 10%); /* 返回的颜色在@color基础上饱和度降低10%*/spin(@color, 10);  /* 返回的颜色在@color基础上色调增加10 */spin(@color, -10); /* 返回的颜色在@color基础上色调减少10 */mix(@color1, @color2); /* 返回的颜色是@color1和@color2两者的混合色 */

LESS的完整颜色函数功能,请阅读LESS文档。

下面是LESS中如何使用一个颜色函数的简单例子:

@color: #0982C1;h1 {  background: @color;  border: 3px solid darken(@color, 50%);}

c)Stylus的颜色函数

lighten(color, 10%); /* 返回的颜色在'color'基础上变亮10% */darken(color, 10%);  /* 返回的颜色在'color'基础上变暗10% */saturate(color, 10%);   /* 返回的颜色在'color'基础上饱和度增加10% */desaturate(color, 10%); /* 返回的颜色在'color'基础上饱和度降低10% */

有关于Stylus的颜色函数介绍,请阅读Stylus文档。

下面是Stylus颜色函数的一个简单实例:

color = #0982C1h1  background color  border 3px solid darken(color, 50%)

从上面展示的部分颜色函数可以告诉我们,Sass、LESS和Stylus都具有强大的颜色函数功能,功能特性上都大同小异,只是在使用方法上略有不同。而且他们都具有相同的一个目的,就是方便操作样式中的颜色值。

8.导入(Import)

在CSS中,并不喜欢用@import来导入样式,因为这样的做法会增加http的请求。但是在CSS预处理器中的导入(@import)规则和CSS的有所不同,它只是在语义上导入不同的文件,但最终结果是生成一个CSS文件。如果你是通赤“@import ‘file.css’”导入“file.css”样式文件,那效果跟普通CSS导入样式文件一样。注意:导入文件中定义了变量、混合等信息也将会被引入到主样式文件中,因此需要避免他们的相互冲突。

Sass、LESS和Stylus三款CSS预处理器语言,导入样式的方法都是一样:

被导入文件的样式:

/* file.{type} */body {  background: #EEE;}

需要导入样式的文件:

@import "reset.css";@import "file.{type}";p {  background: #0982C1;}

转译出来的CSS代码:

@import "reset.css";body {  background: #EEE;}p {  background: #0982C1;}

9.注释(Comment)

CSS预处理器语言中的注释是比较基础的一部分,这三款预处理器语言除了具有标准的CSS注释之外,还具有单行注释,只不过单行注释不会被转译出来。

a)Sass、LESS和Stylus的多行注释

多行注释和CSS的标准注释,他们可以输出到CSS样式中,但在Stylus转译时,只有在“compress”选项未启用的时候才会被输出来。

/* *我是注释*/body  padding 5px

b)Sass、LESS和Stylus的单行注释

单行注释跟JavaScript语言中的注释一样,使用双斜杠(//),但单行注释不会输出到CSS中。

//我是注释@mainColor:#369;//定义主体颜色

在Stylus中除了以上两种注释之外,他还有一种注释,叫作多行缓冲注释。这种注释跟多行注释类似,不同之处在于始的时候,这里是”/*!”。这个相当于告诉Stylus压缩的时候这段无视直接输出。

/*!*给定数值合体*/add(a, b)  a + b

上面从九个常用的特性对Sass、LESS和Stylus三款CSS预处理器语言的使用做了对比,在某些特性上可以说是一模一样,而有一些特性上功能其实一样,只是在部分书写规则上有所不同。当然有些特性是完全不同。在这里几是从使用方法上做为一个比较,主要目的是让大家经过对比之后,使自己选择哪一款CSS预处理器语言有所方向和帮助。

更多编程相关知识,请访问:编程视频!!

以上就是css预处理器是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1618998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
css如何设置渐变色
上一篇 2025年12月24日 06:29:09
css斜体样式怎么写
下一篇 2025年12月24日 06:29:25

相关推荐

  • VSCode中怎么使用REM_VSCode移动端REM布局编写与换算教程

    答案:REM_VSCode插件可自动将像素转换为REM,需配置rootFontSize和precision,支持自动与手动转换,确保与html的font-size一致,配合media query适配不同屏幕,若插件异常可检查配置、重启或重装,替代工具有postcss-pxtorem、在线转换工具及浏…

    2026年9月21日
    100
  • VSCode侧边栏怎么去掉_VSCode侧边栏隐藏教程

    隐藏VSCode侧边栏可通过Ctrl + B(Windows/Linux)或Cmd + B(macOS)快捷键快速切换,也可通过菜单栏“视图 > 外观 > 切换侧边栏可见性”或命令面板执行“View: Toggle Sidebar Visibility”实现。推荐使用快捷键操作,效率最高…

    2026年9月21日
    100
  • 自定义组件(Component)的开发方法

    开发自定义组件的步骤包括:1. 使用html和css定义组件结构和样式;2. 用javascript实现动态效果和状态管理;3. 确保跨浏览器和设备兼容性;4. 采用模块化设计和外部状态管理工具;5. 进行性能优化和测试驱动开发。通过这些步骤,可以创建出优雅且高效的自定义组件,提升用户体验。 在开发…

    2026年9月21日
    100
  • Laravel与Vue.js/React前端框架集成

    laravel可以与vue.js或react集成。1) 使用命令“php artisan preset vue”或“php artisan preset react”设置开发环境。2) 在laravel视图中引入编译后的javascript文件。3) 通过laravel的api路由和前端框架的htt…

    2026年9月21日
    100
  • 如何制作抖音点单小程序:全面指南与实用技巧

    引言: 随着移动互联网的飞速发展,抖音已不仅仅是短视频平台,更成为商家连接用户的重要入口。越来越多企业开始关注抖音点单小程序的搭建,以提升服务效率和用户体验。本文将为您系统讲解抖音点单小程序的制作流程,并分享实用技巧与真实案例,助您快速打造专属的小程序,实现流量变现与销售增长。 1. 明确核心需求与…

    2026年9月21日
    200
  • VSCode有哪些必备的插件?

    EditorConfig for VS Code统一代码风格,2. Prettier自动格式化多语言代码,3. ESLint检查JS/TS错误并集成Prettier,4. GitLens增强Git可视化,5. Path Intellisense补全文件路径,6. 括号高亮提升嵌套识别,7. Auto…

    2026年9月20日
    1000
  • 为什么VSCode的CSS代码提示不全?

    答案:VSCode CSS提示不全通常由配置或环境问题导致。1. 确保文件语言模式为CSS并正确关联扩展名;2. 更新VSCode以支持现代CSS特性,自定义属性需插件辅助;3. 安装IntelliSense、Tailwind或PostCSS等插件增强提示功能;4. 检查settings.json中…

    2026年9月20日
    000
  • edge浏览器无法打开本地HTML文件或显示空白怎么办_Edge浏览器打开本地HTML文件失败解决方法

    1、检查文件路径并选择Edge打开,确保路径为纯英文;2、在edge://flags中启用“Allow file access from files”;3、使用开发者工具排查资源加载错误;4、通过命令行启动Edge绕过安全限制;5、推荐使用npx live-server搭建本地服务器运行HTML文件…

    2026年9月20日
    000
  • 如何在Laravel中配置HTTPS支持

    配置https支持主要分为以下步骤:1.获取ssl证书,可通过购买或使用let’s encrypt免费证书;2.配置服务器(nginx或apache),设置443端口及证书路径;3.强制https重定向,通过服务器配置或laravel中间件实现;4.配置laravel的url生成为htt…

    2026年9月20日
    100
  • VSCode的Markdown预览功能好用吗?

    VSCode的Markdown预览功能支持实时渲染,通过Ctrl+Shift+V(或Cmd+Shift+V)开启,自动刷新,可显示标题、列表、代码块、图片及LaTeX数学公式,并可通过插件扩展目录生成、PDF导出等功能,还能自定义CSS样式,集成于开发环境,适合技术写作,轻量高效,稳定实用。 VSC…

    2026年9月20日
    200
  • 如何为VSCode配置一个自定义的文件编码检测策略?

    VSCode无直接自定义编码检测API,需通过files.encoding设默认编码,files.autoGuessEncoding启自动识别,files.associations按文件类型指定编码,.editorconfig统一项目规范,辅以扩展处理特殊需求,组合实现自定义策略;编码误判主因包括B…

    2026年9月20日
    000
  • 如何在Laravel中使用Blade模板

    blade模板引擎是laravel框架的核心组件,用于创建动态视图。它允许在html中嵌入php代码,同时保持代码简洁易读。其使用步骤包括:1. 在resources/views目录下创建以.blade.php为扩展名的模板文件;2. 使用blade指令如@if、@foreach控制逻辑与渲染;3.…

    2026年9月20日
    000
  • VSCode怎么把代码整齐_VSCode代码格式化与自动排版功能设置教程

    VSCode代码格式化可显著提升代码可读性与质量,通过内置功能及Prettier、ESLint插件实现。安装Prettier和ESLint插件后,需在设置中配置默认格式化工具、保存时自动格式化(Format On Save)、粘贴时格式化(Format On Paste)及保存时修复ESLint问题…

    2026年9月20日
    100
  • 如何在Laravel中实现数据导出

    在laravel中实现数据导出,核心思路是根据具体需求选择合适方法。1. 使用maatwebsite/laravel-excel处理excel或csv导出;2. 通过队列优化大量数据导出性能;3. 结合分块读取降低内存占用;4. 利用lazy collections控制内存使用;5. 支持多种格式如…

    2026年9月20日
    000
  • huARdb:单细胞水平克隆型-转录组分析的人类抗原受体数据库

    前言 摘要 人类的适应性免疫系统是免疫反应的一个重要分支,负责识别和清除特定抗原。通过与特定抗原的结合,适应性免疫系统被激活,并能保存对目标抗原的长期免疫记忆。因此,具有高特异性的长期免疫记忆能够在后续抗原暴露中引发更强烈的反应。适应性免疫反应的激活需要T细胞或B细胞上的受体识别抗原,这些受体分别称…

    2026年9月20日
    000
  • windows怎么查看系统体系结构(32位或64位)_Windows系统体系结构查看方法

    通过系统设置可快速查看:进入“设置-系统-关于”,在“系统类型”中查看是否为64位或32位操作系统;2. 使用系统信息工具:运行msinfo32,查看“系统类型”项明确标注x64或x86架构;3. 命令提示符查询:执行wmic cpu get DataWidth,值为64表示支持64位系统,或使用e…

    2026年9月20日
    100
  • 如何在Laravel中管理静态资源

    在laravel中管理静态资源的核心方法是使用public目录结合vite或laravel mix等构建工具实现高效加载和版本控制。1. public目录作为所有公开访问资源的根目录,由web服务器直接提供服务;2. 使用asset()、vite()或mix()辅助函数生成带版本哈希的url,确保浏…

    2026年9月13日
    100
  • VSCode写HTML怎么写_VSCode编写HTML代码的基础与高效技巧教程

    VSCode写HTML怎么写_VSCode编写HTML代码的基础与高效技巧教程VSCode写HTML怎么写_VSCode编写HTML代码的基础与高效技巧教程VSCode写HTML怎么写_VSCode编写HTML代码的基础与高效技巧教程VSCode写HTML怎么写_VSCode编写HTML代码的基础与高效技巧教程

    VSCode写HTML的核心在于利用其高效工具与扩展提升开发效率。首先,保存文件为.html后,语法高亮与Emmet自动补全即刻生效,输入!+Tab可生成HTML5骨架,div、p等标签输入后按Tab即可扩展为完整标签对。Emmet支持复杂缩写如div.container>ul>li*3…

    2026年9月13日 用户投稿
    200
  • 如何为VSCode配置自动补全(Auto Complete)?

    VSCode默认启用自动补全,通过LSP提供智能建议,可手动触发或设置自动弹出;2. 安装Pylance、Rust Analyzer等语言扩展提升各语言补全准确性;3. 调整editor.quickSuggestions、延迟时间和参数提示优化体验。 VSCode 的自动补全功能默认已启用,大多数情…

    2026年9月12日
    300
  • 什么是ThinkPHP框架?ThinkPHP如何安装配置?

    什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?

    thinkphp的安装配置主要包括下载框架、配置服务器环境、进行初始化设置。1. 下载框架可通过composer安装或手动下载;2. 配置服务器环境需设置apache虚拟主机、启用url重写、配置.htaccess文件并重启服务器;3. 初始化设置包括修改数据库配置、定义应用目录并测试访问。 Thi…

    2026年9月12日 用户投稿
    100

发表回复

登录后才能评论
关注微信