SASSで変数のデフォルト値を使用する方法

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。

$色: 赤;
$色: 青;

.btn{
    色: $color;
}

コンパイル後:

.btn{
  色: 青; }

SASS ファイルを提供する UI ライブラリを作成する場合、ユーザーが使用時にカスタマイズできるパラメーターをいくつか提供できます。 SASS コンポーネント内では、ユーザーが設定したこれらの値を適用する必要があります。ただし、ユーザーが変数の値をカスタマイズしない場合は、これらの変数には独自のデフォルト値が必要です。

これは、上記のカバレッジ メカニズムを使用して実現することはできません。 UI ライブラリを @import する前または後に設定しても、このインポートされたファイルの値に影響を与えることはできません。インポート前に値を設定すると、UI ライブラリ内の変数が上書きされ、機能しなくなります。インポート後に設定した場合は、さらに効果がなくなります。

これは UI のスタイル ファイルであると仮定します。

_lib.scss

$色: 赤;
.btn{
    色: $color;
}

別のファイルで使用して、変数の値をカスタマイズしてみます。

ページ.scss

@import 'lib';
$色: 青;

または:

ページ.scss

$色: 青;
@import 'lib';

両方のコンパイル結果は次のとおりです。

.btn{
  色: 赤; }

!デフォルト

このような状況では、SASS は !default フラグを提供します。変数値の後にこの識別子を適用すると、変数が他の場所で定義されていない場合、または定義されていても値が null の場合、ここで設定されたデフォルト値が有効になり、それ以外の場合は他の場所で設定された値が使用されます。

上記の_lib.scssを変換します。

_lib.scss

- $color: 赤;
+ $color: 赤!デフォルト;
.btn{
    色: $color;
}

使用:

$色: 青;

@import "lib";

注意: カスタム値は @import の前に配置する必要があります。そうしないと、有効になりません。

この時点で、コンパイル結果は外部カスタム変数値が適用された、希望どおりのものになります。

.btn{
  色: 青; }

関連リソース

  • SASS ドキュメント - デフォルト値
  • Sass !default の使用例

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  docker pull imageエラーの問題を解決する

>>:  ウェブサイトに最も必要なのは、ターゲットユーザーグループのエクスペリエンスを向上させることです。

推薦する

HTML と CSS に関する基本的なメモ (フロントエンドでは必読)

HTMLに触れた当初はレイアウトにいつもテーブルを使っていましたが、とても面倒で見た目も悪かったの...

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...

Vue の v-model ディレクティブと .sync 修飾子の違いの詳細な説明

目次vモデル.sync微妙な違い機能シナリオを要約します。 vモデル <!--親コンポーネント...

Dockerを使用してSpring Bootプロジェクトをデプロイする手順

目次シンプルなSpringbootプロジェクトを作成する1. pom.xmlでSpring Boot...

js でパズルゲームを実装する

この記事では、パズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容は...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

Linux で Multitail コマンドを使用するチュートリアル

MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...

リクエストを転送したり、静的リソースファイルにアクセスしたりする複数の場所への nginx の実装

この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...

vue3 コンポーネント通信方法の概要と例

vue3コンポーネントの通信モードは次のとおりです。小道具$放出$expose / 参照$属性vモデ...

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

CSSのline-heightとheightの詳細な説明

最近、CSS インターフェースに取り組んでいるときに、line-height と height とい...

CSS ピクセルとさまざまなモバイル画面適応の問題に対する解決策

ピクセル解決通常、モニター解像度と呼ばれるものは、実際にはモニターの物理的な解像度ではなく、デスクト...

ショッピングカートの計算を実現する js メソッド

この記事の例では、ショッピングカートの計算を実装するためのjsの具体的なコードを参考までに共有してい...

SSL で Nginx リバース プロキシを構成する簡単な手順

序文リバース プロキシは、Web 経由で行われたリクエスト (http と https の両方) を...

Vue+thinkphp5.1+axiosでファイルアップロードを実現

この記事では、thinkphp5.1 + Vue+axiosを使用してファイルをアップロードする方法...