目次
前書き: CSS 前処理言語
基本的な違い
基本構文
条件语句
循环语句
综合对比
ホームページ ウェブフロントエンド htmlチュートリアル LESS、Sass、Stylus の類似点と相違点の分析_html/css_WEB-ITnose

LESS、Sass、Stylus の類似点と相違点の分析_html/css_WEB-ITnose

Jun 24, 2016 am 11:59 AM
sass stylus 類似点と相違点

前書き: CSS 前処理言語

CSS 前処理言語は、CSS にさらにプログラミング機能を追加し、CSS をターゲットとしてファイルを生成できます。

これらの言語は、プログラミング効率を効果的に向上させ、CSS をより簡潔で、適応性があり、読みやすくし、プロジェクトの保守を容易にすることができます。

この記事では、現在主流の CSS 前処理言語である LESS、Sass、Stylus の類似点と相違点を、開発者の視点から表の水平比較を用いて客観的に分析します。

これらの言語のインストールやコンパイルなどは紹介しません。デフォルトでは、読者はすでに CSS に精通しており、上記の CSS 前処理言語の少なくとも 1 つを使用したことがある可能性があります。

Sass 言語には現在、ファイル名接尾辞として「.sass」と「.scss」を含む 2 つの文法規則セットがあるという事実を考慮して、この記事では、Scss で表される Sass3 以降のバージョンのみを紹介します。

基本的な違い

LESS Scss Stylus/sta?l?s/ サフィックス コンパイル メソッド 特別な項目
*.less *.scss *.styl

は、そのメソッドを介して渡すことができますそれぞれ *.css ファイルにローカルでコンパイルする方法

これらの形式のファイルを *.css ファイルにコンパイルできるサードパーティのコンパイル ツールが多数あります

以下を使用して、HTML ファイルにless.js ファイルを導入できます。 imports like * .css ファイルと同じ方法で *.less ファイルを導入し、ブラウザを通じてコン​​パイルします (パフォーマンスが少し消費される可能性があります)。 最初にRubyをインストールする必要があります

基本構文

Scss Stylus サポートされていません
/*支持不包含花括号与分号的编写风格,仅通过缩进表示嵌套*/h1  color: #000
ログイン後にコピー
サポートされていません
/*支持省略冒号*/h1  color #000
ログイン後にコピー
/*均支持CSS风格语法*/h1{  color:#000;}
ログイン後にコピー

変数とスコープ

LESS Scss スタイラス
/*以“@”开头*/@maxWidth:1024px;
ログイン後にコピー
/*以“$”开头*/$maxWidth:1024px;
ログイン後にコピー
/*可以以“$”开头,也可无前缀符号直接声明变量*/maxWidth=1024px;
ログイン後にコピー
変数を定義する場合は、コロン「:」を使用して変数名と変数値を区切りますで区切ります"= 変数名と変数値 は他の言語スコープの概念に似ており、変数を見つけるために湧き出てきます グローバル変数の概念はなく、後で定義された同じ名前の変数は変数を完全に上書きします最初に定義 LESS と同じ

Mixins

Mixins は、CSS プリプロセッサの言語で最も強力な機能です。

ミックスインは、再利用する必要があるいくつかのスタイルを抽出できます。それらは一度定義するだけでよく、多くのセレクターで再利用できます。

LESS Scss Stylus クラスまたは ID セレクター名を直接呼び出して、特別な宣言をせずにセレクター内の属性を再利用できます ミックスの定義は「@mixin」で始める必要があります。リファレンスミックスは「@include」で始まる必要がありますプレフィックスは必要ありませんパラメータを定義し、パラメータのデフォルト値を設定できます
/*声明混合*/.setColor(@mainC:#000){  color:@mainC;}/*直接以默认值调用混合*/.sBox{  .setColor();}/*调用混合且传入自定义参数值*/.bBox{  .setColor(#fff);}
ログイン後にコピー
/*声明混合*/@mixin setColor($mainC:#000){  color:$mainC;}/*直接以默认值调用混合*/.sBox{  @include setColor();}/*调用混合且传入自定义参数值*/.bBox{  @include setColor(#fff);}
ログイン後にコピー
/*声明混合*/setColor(mainC=#000){  color:mainC;}/*直接以默认值调用混合*/.sBox{  setColor();}/*调用混合且传入自定义参数值*/.bBox{  setColor(#fff);}
ログイン後にコピー
りー

子孫セレクターのネストされた実装

LESS Scss Stylus ネスト構文は同じで、中括弧 "{}" 間の階層関係によってネストを実現できます。 「&」記号を使用して親セレクターを参照することもできます。
/*编译成CSS后*/.sBox{  color:#000;}.box{  color:#fff;}
ログイン後にコピー
div{  margin:10px 5px;  a{    color:red;    &:hover{      color:blue;    }  }}
ログイン後にコピー

継承

SSS スタイラス を削減
明示的なプレフィックスは必要ありません 「@extend」で始まり、その後に継承されたセレクターが続きます
div{  margin:10px 5px;}div a{  color:red;}div a:hover{  color:blue;}
ログイン後にコピー
れー
れー れー

条件语句

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;}
ログイン後にコピー
$type: link;p {  @if $type == link {    color: blue;  } @else {    color: black;  }}
ログイン後にコピー
type: link;p{  if type==linkcolor:blue;  else    color:black;}
ログイン後にコピー
/*编译后的CSS*/p {color:blue;}
ログイン後にコピー

循环语句

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);
ログイン後にコピー
@for &i from 1 through 3{  .item-#{$i} {    width:2em*$i;  }}
ログイン後にコピー
for i in 1 2 3  .item-{i}    width 2em*i
ログイン後にコピー
/*编译后的CSS*/.item-1{  width:2em;}.item-2{  width:4em;}.item-3{  width:6em;}
ログイン後にコピー
  还支持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”文件,就可以通过浏览器进行解析。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

sass ソフトウェアとはどういう意味ですか? sass ソフトウェアとはどういう意味ですか? Aug 15, 2022 am 11:39 AM

SASSの正式名称は「Software as a Service」、つまり「サービスとしてのソフトウェア」を意味し、サードパーティのサプライヤーがクラウドインフラ上にアプリケーションを構築し、インターネット経由で顧客に提供するソフトウェア導入モデルです。顧客が基盤となるインフラストラクチャを事前に構築する必要のないアプリケーション。これは、ローカル マシンにのみインストールできる従来のソフトウェアとは異なり、インターネット接続と Web ブラウザがあればどのデバイスからでもソフトウェアにアクセスできることを意味します。

プログラミングにおけるC言語とPythonの類似点と相違点を詳しく解説 プログラミングにおけるC言語とPythonの類似点と相違点を詳しく解説 Mar 18, 2024 pm 12:09 PM

C 言語と Python は一般的に使用される 2 つのプログラミング言語であり、多くの点で明らかな類似点と相違点があります。この記事では、構文、パフォーマンス、使いやすさなどの観点から C 言語と Python を詳細に比較し、それらの違いを示す具体的なコード例を示します。構文の類似点と相違点: C 言語はプロセス指向のプログラミング言語であり、その構文は比較的厳密で複雑であるため、開発者はメモリとデータ型を自分で管理する必要があります。 Python は簡潔で読みやすい構文を持つ高級言語であり、変数の型を明示的に宣言する必要はありません。サンプルコード

Golang と Go の相違点と類似点の詳細な分析 Golang と Go の相違点と類似点の詳細な分析 Jan 23, 2024 am 08:05 AM

Golang と Go の類似点と相違点: 1 つの記事で読む Go は、オープンソース プログラミング言語として 2007 年に Google によって開発され、効率的で信頼性が高く、簡潔なソフトウェアを構築するために広く使用されています。 Go 言語は C 言語をベースにしたプログラミング言語ですが、より単純な構文とより強力な同時実行サポートを備えています。ただし、Go 言語には Golang という別名もあるため、多くの人はこれらが 2 つの異なる言語であると考えています。では、Golang と Go は同じなのでしょうか?

C++ と C 言語の類似点と相違点についての深い理解 C++ と C 言語の類似点と相違点についての深い理解 Mar 26, 2024 am 09:36 AM

C++ と C は、多くの点で似ている 2 つの人気のあるプログラミング言語ですが、多くの大きな違いもあります。この記事では、C++ と C 言語の類似点と相違点を詳しく掘り下げ、具体的なコード例を通じてそれらの相違点を説明します。 1. 基本構文と構造の違い 1.1 データ型の定義 C 言語では、変数を定義するときに、最初にデータ型を宣言する必要があります (例: intnum)。C++ では、変数の定義と同時に変数を初期化できます。例: intnum=10; 1.2 関数定義

vue がプロジェクトを作成するとき、sass は何を意味しますか? vue がプロジェクトを作成するとき、sass は何を意味しますか? Jun 21, 2022 am 10:33 AM

Vue がプロジェクト作成時に使用する sass は css 補助ツールを強化するものであり、css を拡張したもので、sass は buby 言語で書かれた css 前処理言語で、html と同じ厳密なインデント形式を持ち、css の記述と一貫性があります。中括弧とセミコロンは使用されません。

C 言語と Python の類似点と相違点についての詳細な説明 C 言語と Python の類似点と相違点についての詳細な説明 Mar 22, 2024 am 08:57 AM

C 言語と Python は、それぞれの分野で独自の利点を持つ 2 つの非常に人気のあるプログラミング言語です。この記事では、C と Python の類似点と相違点を詳しく説明し、特定のコード例と比較します。 1. 構文と構造の違い まず、C言語とPythonの構文と構造の違いを見てみましょう。 C 言語の例: #includeintmain(){inta=10;

C言語とPythonの類似点と相違点を見てみる C言語とPythonの類似点と相違点を見てみる Mar 19, 2024 am 08:39 AM

C 言語と Python は、ソフトウェア開発の分野で重要な役割を果たし、広く使用されている 2 つのプログラミング言語です。この記事では、構文構造、データ型、オブジェクト指向、関数などの観点から、C 言語と Python の類似点と相違点について説明し、具体的なコード例を通じてそれらの相違点と関連性を示します。まずは文法構造からC言語とPythonを比較していきます。 C 言語は明確なコード構造を持つ構造化言語であり、さまざまなコード ブロックを区別するために中括弧が使用されます。 Python はスクリプト言語です

vue プロジェクトで SASS をコンパイルするときにエラーが発生した場合の対処方法 vue プロジェクトで SASS をコンパイルするときにエラーが発生した場合の対処方法 Jan 05, 2023 pm 04:20 PM

Vue プロジェクトのコンパイル Sass エラーの解決策: 1. イメージ ソース「cnpm install node-sass sass-loader --save-dev」を使用して Sass をインストールします; 2. 「package.json」の「sass-loader」バージョンを変更します。 to " "sass-loader": "^7.3.1","; 3. ページ内で直接使用するか、src の代わりに @ を使用します。

See all articles