Inhaltsverzeichnis
前言:CSS预处理语言
基本差别
基本语法
变量与作用域
混合(Mixins)
嵌套实现后代选择器
继承
条件语句
循环语句
综合对比
Heim Web-Frontend HTML-Tutorial 表析LESS、Sass和Stylus的异同_html/css_WEB-ITnose

表析LESS、Sass和Stylus的异同_html/css_WEB-ITnose

Jun 24, 2016 am 11:59 AM
sass stylus Ähnlichkeiten und Unterschiede

前言:CSS预处理语言

CSS预处理语言可为CSS增加更多编程特性,以CSS作为目标生成文件。

这些语言可有效提高编程效率,使CSS更加简洁、适应性更强、可读性更加,并使项目更易于维护。

本文将在开发者角度使用表格横向对比的方式客观分析目前主流的CSS预处理语言LESS、Sass、Stylus的异同之处。

不介绍这些语言的安装、编译等内容。默认读者已熟悉CSS并可能已用过以上至少一种CSS预处理语言。

鉴于目前Sass语言有分别以“.sass”和“.scss”为文件名后缀的两套语法规则,本文只介绍Sass3之后的版本,即以Scss表示。

基本差别

  LESS Scss Stylus/sta?l?s/ 后缀名 编译方法 特别项
*.less *.scss *.styl

均可以通过各自方式在本地编译成*.css文件

有很多第三方编译工具可以将这些格式的文件编译为*.css文件

可以在HTML文件中引入less.js文件与像引入*.css文件一样的方式引入*.less文件,通过浏览器进行编译(可能损耗一点点性能)。 需要先安装Ruby  

基本语法

LESS Scss Stylus
/*均支持CSS风格语法*/h1{  color:#000;}
Nach dem Login kopieren
不支持
/*支持不包含花括号与分号的编写风格,仅通过缩进表示嵌套*/h1  color: #000
Nach dem Login kopieren
不支持
/*支持省略冒号*/h1  color #000
Nach dem Login kopieren

变量与作用域

LESS Scss Stylus
/*以“@”开头*/@maxWidth:1024px;
Nach dem Login kopieren
/*以“$”开头*/$maxWidth:1024px;
Nach dem Login kopieren
/*可以以“$”开头,也可无前缀符号直接声明变量*/maxWidth=1024px;
Nach dem Login kopieren
定义变量时,以冒号“:”分隔变量名与变量值 以“=”分隔变量名与变量值
与其它语言作用域概念雷同,向上冒泡查找变量 无全局变量的概念,后定义的同名变量会完全覆盖先定义的变量 同LESS

混合(Mixins)

Mixins是CSS预处理器中语言中最强大的特性。

Mixins可以将一部分需重用的样式抽出,只需定义一次,就可被很多选择器重复使用。

LESS Scss Stylus
可以无需特别声明,直接调用某一class或id选择器名即可重用该选择器内属性 定义混合需要以“@mixin”开头。引用混合需要以“@include” 开头 无需前缀
均可定义参数与设置参数默认值
/*声明混合*/.setColor(@mainC:#000){  color:@mainC;}/*直接以默认值调用混合*/.sBox{  .setColor();}/*调用混合且传入自定义参数值*/.bBox{  .setColor(#fff);}
Nach dem Login kopieren
/*声明混合*/@mixin setColor($mainC:#000){  color:$mainC;}/*直接以默认值调用混合*/.sBox{  @include setColor();}/*调用混合且传入自定义参数值*/.bBox{  @include setColor(#fff);}
Nach dem Login kopieren
/*声明混合*/setColor(mainC=#000){  color:mainC;}/*直接以默认值调用混合*/.sBox{  setColor();}/*调用混合且传入自定义参数值*/.bBox{  setColor(#fff);}
Nach dem Login kopieren
/*编译成CSS后*/.sBox{  color:#000;}.box{  color:#fff;}
Nach dem Login kopieren

嵌套实现后代选择器

LESS Scss Stylus
嵌套语法是相同的,可以通过大括号“{}”之间的层次关系实现嵌套。也可以使用“&”符号来引用父选择器。
div{  margin:10px 5px;  a{    color:red;    &:hover{      color:blue;    }  }}
Nach dem Login kopieren
div{  margin:10px 5px;}div a{  color:red;}div a:hover{  color:blue;}
Nach dem Login kopieren

继承

LESS Scss Stylus
无需明确的前缀 使用“@extend”开始,后面紧跟被继承的选择器
/*继承示例*/.block{  display:block;  margin:10px;}p{  .block;  padding:5px;}
Nach dem Login kopieren
/*继承示例*/.block{  display:block;  margin:10px;}p{  @extend .block;  padding:5px;}
Nach dem Login kopieren
/*编译成CSS,相同样式依旧会在每个选择器中重复出现*/.block{  display:block;  margin:10px;}p{  display:block;  margin:10px;  padding:5px;}
Nach dem Login kopieren
/*编译成CSS,相同样式会被合并*/.block,p{  display:block;  margin:10px;}p{  padding:5px;}
Nach dem Login kopieren

条件语句

LESS Scss Stylus
使用关键字“when”实现条件语句 可以使用@if、@else、@else if语句实现判断 与其它编程语言类似,不过可以省略大括号
@type: link;.mixin(@type) when ( @type == link ){  color:blue;} .mixin(@type) when not ( @type == link ){  color:black;}
Nach dem Login kopieren
$type: link;p {  @if $type == link {    color: blue;  } @else {    color: black;  }}
Nach dem Login kopieren
type: link;p{  if type==linkcolor:blue;  else    color:black;}
Nach dem Login kopieren
/*编译后的CSS*/p {color:blue;}
Nach dem Login kopieren

循环语句

LESS Scss Stylus
通过when模拟循环功能 使用@for关键字,配合“from”和“through” 使用for/in对表达式进行循环
.funClass (@i) when (@i>0){  .item-@{i}{    width:2em*@i;}/*递归*/.funClass(@i-1);}/*停止循环*/.funClass (0) {}/*输出*/.funClass (3);
Nach dem Login kopieren
@for &i from 1 through 3{  .item-#{$i} {    width:2em*$i;  }}
Nach dem Login kopieren
for i in 1 2 3  .item-{i}    width 2em*i
Nach dem Login kopieren
/*编译后的CSS*/.item-1{  width:2em;}.item-2{  width:4em;}.item-3{  width:6em;}
Nach dem Login kopieren
  还支持each循环语句、while循环语句  

综合对比

  1. 均具有“变量”、“混合”、“嵌套”、“继承”、“颜色混合”五大基本特性;
  2. Scss和LESS语法较为严谨,LESS要求一定要使用大括号“{}”,Scss和Stylus可以通过缩进表示层次与嵌套关系;
  3. Scss无全局变量的概念,LESS和Stylus有类似于其它语言的作用域概念;
  4. Scss和Stylus就具有类似其它语言的条件语句、循环语句等,而LESS需要通过When等关键词模拟这些功能;
  5. Sass是基于Ruby语言的,而LESS和Stylus可以基于NodeJS NPM下载相应库后进行编译;
  6. 使用LESS时,还可以在引用它的HTML文件中引入从官网下载的“less.js”文件,就可以通过浏览器进行解析。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet Sass-Software? Was bedeutet Sass-Software? Aug 15, 2022 am 11:39 AM

Der vollständige Name von SASS lautet „Software as a Service“, was „Software as a Service“ bedeutet. Dabei handelt es sich um ein Softwarebereitstellungsmodell, bei dem Drittanbieter Anwendungen auf einer Cloud-Infrastruktur erstellen und diese den Kunden über das Internet bereitstellen von Abonnements, die nicht erfordern, dass Kunden die zugrunde liegende Infrastruktur im Voraus aufbauen. Dies bedeutet, dass auf die Software von jedem Gerät mit Internetverbindung und Webbrowser zugegriffen werden kann, im Gegensatz zu herkömmlicher Software, die nur auf Ihrem lokalen Computer installiert werden kann.

Mar 18, 2024 pm 12:09 PM

C-Sprache und Python sind zwei häufig verwendete Programmiersprachen und weisen in vielen Aspekten offensichtliche Ähnlichkeiten und Unterschiede auf. In diesem Artikel wird ein detaillierter Vergleich zwischen C-Sprache und Python hinsichtlich Syntax, Leistung, Benutzerfreundlichkeit usw. durchgeführt und spezifische Codebeispiele bereitgestellt, um die Unterschiede zwischen ihnen zu veranschaulichen. Ähnlichkeiten und Unterschiede in der Syntax: Die Sprache C ist eine prozessorientierte Programmiersprache mit relativ strenger und umständlicher Syntax, die es Entwicklern erfordert, Speicher und Datentypen selbst zu verwalten. Python ist eine Hochsprache mit prägnanter und leicht lesbarer Syntax, und es besteht keine Notwendigkeit, Variablentypen explizit zu deklarieren. Beispielcode

Eingehende Analyse der Unterschiede und Gemeinsamkeiten zwischen Golang und Go Eingehende Analyse der Unterschiede und Gemeinsamkeiten zwischen Golang und Go Jan 23, 2024 am 08:05 AM

Ähnlichkeiten und Unterschiede zwischen Golang und Go: Lesen Sie es in einem Artikel. Go wurde 2007 von Google entwickelt und wird häufig zum Erstellen effizienter, zuverlässiger und prägnanter Software verwendet. Die Go-Sprache ist eine auf der C-Sprache basierende Programmiersprache, verfügt jedoch über eine einfachere Syntax und eine leistungsfähigere Parallelitätsunterstützung. Die Go-Sprache hat jedoch auch einen Pseudonym, Golang, was viele Menschen zu der Annahme verleitet, dass es sich um zwei verschiedene Sprachen handelt. Sind Golang und Go also dasselbe?

Vertieftes Verständnis der Gemeinsamkeiten und Unterschiede zwischen C++ und C-Sprachen Vertieftes Verständnis der Gemeinsamkeiten und Unterschiede zwischen C++ und C-Sprachen Mar 26, 2024 am 09:36 AM

C++ und C sind zwei beliebte Programmiersprachen, die sich in vielerlei Hinsicht ähneln, aber auch viele wesentliche Unterschiede aufweisen. Dieser Artikel befasst sich mit den Gemeinsamkeiten und Unterschieden zwischen C++ und C-Sprachen und veranschaulicht die Unterschiede zwischen ihnen anhand spezifischer Codebeispiele. 1. Grundlegende Syntax- und Strukturunterschiede 1.1 Datentypdefinition In der Sprache C müssen Sie beim Definieren einer Variablen zuerst den Datentyp deklarieren, zum Beispiel: intnum; in C++ können Sie ihn beim Definieren der Variablen initialisieren, zum Beispiel: intnum= 10; 1.2 Funktionsdefinition

Was bedeutet Sass, wenn Vue ein Projekt erstellt? Was bedeutet Sass, wenn Vue ein Projekt erstellt? Jun 21, 2022 am 10:33 AM

Das von Vue beim Erstellen eines Projekts verwendete Sass dient der Stärkung des CSS-Hilfstools und ist eine CSS-Vorverarbeitungssprache, die in der Buby-Sprache geschrieben ist. Sie hat den gleichen strengen Einrückungsstil wie HTML und stimmt mit dem CSS-Schreiben überein Es werden keine geschweiften Klammern und Semikolons verwendet.

Eine ausführliche Diskussion der Ähnlichkeiten und Unterschiede zwischen der C-Sprache und Python Eine ausführliche Diskussion der Ähnlichkeiten und Unterschiede zwischen der C-Sprache und Python Mar 22, 2024 am 08:57 AM

C-Sprache und Python sind zwei sehr beliebte Programmiersprachen, die in ihren jeweiligen Bereichen einzigartige Vorteile bieten. In diesem Artikel werden die Gemeinsamkeiten und Unterschiede zwischen der C-Sprache und Python eingehend untersucht und mit spezifischen Codebeispielen verglichen. 1. Syntax- und Strukturunterschiede Schauen wir uns zunächst die Unterschiede zwischen der Syntax und Struktur der Sprache C und Python an. C-Sprachbeispiel: #includeintmain(){inta=10;

Ein Blick auf die Ähnlichkeiten und Unterschiede zwischen der C-Sprache und Python Ein Blick auf die Ähnlichkeiten und Unterschiede zwischen der C-Sprache und Python Mar 19, 2024 am 08:39 AM

C-Sprache und Python sind zwei weit verbreitete Programmiersprachen, die im Bereich der Softwareentwicklung eine wichtige Rolle spielen. In diesem Artikel werden die Ähnlichkeiten und Unterschiede zwischen der C-Sprache und Python in Bezug auf Syntaxstruktur, Datentypen, Objektorientierung, Funktionen usw. erörtert und die Unterschiede und Verbindungen zwischen ihnen anhand spezifischer Codebeispiele demonstriert. Zunächst beginnen wir mit der grammatikalischen Struktur, um die Sprache C und Python zu vergleichen. Die C-Sprache ist eine strukturierte Sprache mit klarer Codestruktur und zur Unterscheidung verschiedener Codeblöcke werden geschweifte Klammern verwendet. Python ist eine Skriptsprache

Was tun, wenn beim Kompilieren von SASS im Vue-Projekt ein Fehler auftritt? Was tun, wenn beim Kompilieren von SASS im Vue-Projekt ein Fehler auftritt? Jan 05, 2023 pm 04:20 PM

Lösung für den Sass-Fehler bei der Vue-Projektkompilierung: 1. Verwenden Sie die Bildquelle „cnpm install node-sass sass-loader --save-dev“, um sass zu installieren. 2. Ändern Sie die „sass-loader“-Version in „package.json“. zu „ „sass-loader“: „^7.3.1“, 3. Verwenden Sie es direkt auf der Seite oder verwenden Sie @ anstelle von src.

See all articles