目次
Sass (Syntactical Awesome Style Sheets) は、CSS の機能を拡張し、より柔軟で効率的な CSS 開発方法を提供する CSS プリプロセッサです。Sass を使用すると、変数、ネスト、ミキシング、その他の関数を使用して、より保守しやすく再利用可能な CSS コードを作成できます。このブログでは、Sass の基本的な使用法を紹介し、CSS 開発効率を向上させるためにプロジェクトに Sass を適用する方法を例を通して示します。
1. 準備
始める前に、Sass をインストールし、サンプル用の HTML ファイルと Sass ファイルを準備する必要があります。
1.1 Sassのインストール
Sass は npm 経由でインストールできます。コマンドラインターミナルを開き、次のコマンドを実行して Sass をグローバルにインストールします。
npm install -g sass
インストールが完了したら、コマンドラインでコマンドを使用してsass
Sass ファイルをコンパイルできます。
1.2 HTMLファイルとSassファイルの作成
Sass コードを表示および記述するためのindex.html
ファイルとファイルをプロジェクトのルート ディレクトリに作成します。styles.scss
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Sass实战</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>Sass实战</h1>
</header>
<section>
<p class="primary-text">这是一个Sass实例。</p>
<button class="primary-button">点击按钮</button>
</section>
</body>
</html>
// styles.scss
$primary-color: #007bff;
header {
background-color: $primary-color;
color: white;
text-align: center;
padding: 20px;
}
section {
padding: 20px;
text-align: center;
.primary-text {
font-size: 18px;
color: $primary-color;
}
.primary-button {
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
}
上記のコードでは、$primary-color
テーマの色を保持する変数を定義しました。次に、その変数をheader
and要素section
のスタイルで使用しました。さらに、スタイルをより明確で読みやすくするために、ネストされた構文を使用してセレクター内にセレクター.primary-text
を入れ子にします。.primary-button
section
2. 変数とネスト
Sass の最も基本的な機能の 2 つは、変数とネストです。変数を使用すると、CSS で一般的に使用される値を定義して再利用できるため、コードの保守が容易になります。また、ネストすることで、子セレクターを親セレクターの中にネストすることができ、スタイルの階層をより明確にします。
2.1 変数
Sass では、変数は$
シンボルで始まり、変数名と値の間にコロンとセミコロンが続きます。たとえば、変数を使用してテーマの色とフォント サイズを定義できます。
// 定义变量
$primary-color: #007bff;
$font-size: 16px;
// 使用变量
header {
background-color: $primary-color;
font-size: $font-size;
}
2.2 ネスティング
ネストすることで、スタイルをより明確に整理し、コードの繰り返しを減らすことができます。たとえば、セレクター内にセレクター.primary-text
をネストできます。.primary-button
section
section {
padding: 20px;
text-align: center;
.primary-text {
font-size: 18px;
color: $primary-color;
}
.primary-button {
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
}
ネストするとスタイルの階層が明確になり、セレクターの重複も減らすことができます。
3.混ぜる
Sass は、スタイル ルールのセットを再利用するためのミックス (Mixins) 関数を提供します。ミックスインを定義すると、一連のスタイル ルールを再利用可能なコード ブロックにカプセル化し、必要に応じて呼び出すことができます。
3.1 ミックスの定義
ミックスインは、@mixin
キーワードに続いてミックスイン名と中括弧のペアを使用して定義されます。中括弧内に一連のスタイル ルールを記述できます。
// 定义混合
@mixin rounded-corners {
border-radius: 5px;
-webkit-border-radius: 5px;
}
上記のコードでは、プロパティと属性rounded-corners
を含む という名前のミックスインを定義します。border-radius
-webkit-border-radius
3.2 コールミックス
ミックスインを使用するには、@include
キーワードの後にミックスイン名を付けて呼び出します。
// 使用混合
button {
@include rounded-corners;
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
上記のコードでは、@include
キーワードを使用してrounded-corners
ミックスインを呼び出し、要素border-radius
にプロパティを適用しましたbutton
。
4. 継承
Extend 関数を使用すると、あるセレクターのスタイルを別のセレクターに継承できます。継承を通じてスタイルの再利用を実現し、コードの冗長性を減らすことができます。
4.1 継承の定義
@extend
継承を定義するには、キーワードの後に継承元のセレクターを使用します。
// 定义继承
.button-base {
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
.primary-button {
@extend .button-base;
}
.secondary-button {
@extend .button-base;
background-color: #6c757d;
}
上記のコードでは、まず、.button-base
ボタンの基本スタイルを含む というセレクターを定義します。次に、@extend
キーワードを使用して.primary-button
セレクターからスタイルを継承します.button-base
。同時に、.primary-button
背景色の変更など、スタイルを調整することもできます。同様に、スタイル.secondary-button
を継承させたり.button-base
、背景色を変更したりすることもできます。
4.2 継承に関する考慮事項
継承を使用する場合は、次の点に注意する必要があります。
- 過度の継承を避ける: 過度の継承により、生成される CSS ルールが複雑になり、パフォーマンスと保守性に影響します。
- 汎用セレクターを継承しない: 汎用すぎるセレクターへのスタイルの継承は避けてください。望ましくないスタイル汚染につながる可能性があります。
5. 条件とループ
Sass は条件ステートメントとループステートメントもサポートしており、スタイル処理をより柔軟かつ効率的にします。
5.1 条件文
条件文を使用すると、特定の条件に基づいて特定のスタイルを適用するかどうかを決定できます。たとえば、ボタンの種類に応じて異なるスタイルを設定できます。
// 条件语句
@mixin button-style($type) {
@if $type == "primary" {
background-color: $primary-color;
color: white;
} @else if $type == "secondary" {
background-color: #6c757d;
color: white;
} @else {
background-color: #f8f9fa;
color: #343a40;
}
border: none;
padding: 10px 20px;
cursor: pointer;
}
// 使用条件语句
button {
@include button-style("primary");
}
a.button {
@include button-style("secondary");
}
input.button {
@include button-style("default");
}
上記のコードでは、button-style
1 つのパラメーターを取る という名前のミックスインを定義します$type
。$type
値に応じて、異なるスタイルを適用します。次にbutton
、a.button
およびセレクターinput.button
でこのミックスインを呼び出し、さまざまな$type
パラメーターを渡します。
5.2 ループ文
ループ ステートメントを使用すると、スタイル内に一連のスタイル ルールを繰り返し適用できます。たとえば、ループを使用して複数のボタンのスタイルを生成できます。
// 循环语句
@for $i from 1 through 5 {
.button-#{$i} {
font-size: 14px + $i * 2;
padding: 5px + $i * 2;
}
}
上記のコードでは、@for
1 から 5 までのループを使用して 5 つのボタン スタイルを生成します。各ボタンfont-size
の合計はpadding
の値だけ$i
増加します。
6. 輸入とモジュール化
Sass は他の Sass ファイルのインポートをサポートしており、スタイル ファイルの管理がより柔軟かつモジュール化されています。スタイルを複数のファイルに分割し、これらのファイルをメイン ファイルにインポートできます。
6.1 ファイルのインポート
_variables.scss
変数用のファイルとミックスイン用のファイルを使用し、_mixins.scss
これらstyles.scss
のファイルを次の場所にインポートするとします。
// _variables.scss
$primary-color: #007bff;
$font-size: 16px;
// _mixins.scss
@mixin rounded-corners {
border-radius: 5px;
-webkit-border-radius: 5px;
}
// styles.scss
@import "variables";
@import "mixins";
header {
background-color: $primary-color;
color: white;
text-align: center;
padding: 20px;
}
section {
padding: 20px;
text-align: center;
.primary-text {
font-size: 18px;
color: $primary-color;
}
.primary-button {
@include rounded-corners;
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
}
キーワードを使用して、ファイルをにインポート@import
できます。このようにして、これらの変数とミックスインを で直接使用できます。_variables.scss
_mixins.scss
styles.scss
styles.scss
6.2 モジュール性
インポートしてモジュール化することで、スタイルを複数のファイルに分割できるため、スタイル ファイルがより明確になり、管理が容易になります。たとえば、ボタンのスタイルを別のファイルに置くことができます。
// _button.scss
@import "variables";
@import "mixins";
.button-base {
background-color: $primary-color;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
.primary-button {
@extend .button-base;
}
.secondary-button {
@extend .button-base;
background-color: #6c757d;
}
次に、styles.scss
このファイルを次の場所にインポートします。
// styles.scss
@import "variables";
@import "mixins";
@import "button";
header {
background-color: $primary-color;
color: white;
text-align: center;
padding: 20px;
}
section {
padding: 20px;
text-align: center;
.primary-text {
font-size: 18px;
color: $primary-color;
}
}
このようにして、スタイル ファイルを複数の小さなモジュールに分割し、スタイルの構成をより明確かつモジュール化することができます。
7. ネストのルール
Sass では、スタイル ルール内でシンボルを使用して&
親セレクターを参照できます。このネスト ルールにより、スタイルの記述がより簡潔かつ柔軟になります。
// 嵌套规则
.button {
font-size: 16px;
&:hover {
color: $primary-color;
}
&::before {
content: ">";
}
&.primary {
background-color: $primary-color;
color: white;
}
}
上記のコードでは、&
という表記法を使用して.button
セレクターを参照し、それぞれ&:hover
、 、&::before
およびスタイル ルールを定義します。このようにして、に関連するすべてのスタイル ルールを一元化&.primary
できます。.button
8. 計算する
Sass は単純な数学的計算もサポートしているため、スタイルの記述がより柔軟になります。加算、減算、乗算、除算などの演算をスタイルで実行できます。
// 计算
.container {
width: 100%;
padding: 20px;
}
.item {
width: 50%;
margin: 0 auto;
padding: 10px;
}
.total {
width: 100% - 40px;
padding: 10px * 2;
}
上記のコードでは、スタイルで減算を行い、.total
幅とパディングを計算しました。
9. 注意事項
Sass はさまざまなアノテーション方法をサポートしているため、スタイルのドキュメントがより明確になり、保守が容易になります。
// 单行注释
/* 多行注释 */
10. ネストによるレベルが深すぎる
Sass のネスト機能を使用する場合は、ネストレベルが深すぎないように注意する必要があります。ネストが深すぎると、生成される CSS ルールが複雑になり、パフォーマンスと保守性に影響します。適度なネストを維持するには、過度のネストを避けてください。
11.Sassのコンパイル
Sass ファイルを作成した後、Sass コードを CSS コードにコンパイルし、生成された CSS ファイルを HTML にインポートする必要があります。
コマンド ライン ターミナルを開き、Sass ファイルが保存されているディレクトリを入力し、次のコマンドを実行して Sass ファイルをコンパイルします。
sass styles.scss styles.css
上記のコマンドは、styles.scss
ファイルをstyles.css
ファイルにコンパイルします。
12. まとめ
Sass を利用することで、CSS 開発の効率と保守性を大幅に向上させることができます。Sass 変数、ネスト、ミキシング、継承、条件、ループの機能により、スタイルをより柔軟に記述し、コードの冗長性を削減し、スタイルのモジュール化と再利用を実現できます。このブログが、プロジェクトで CSS をより効率的に開発するのに役立つ実践的な Sass のヒントと例を提供できれば幸いです。