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エラーの問題を解決する

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

推薦する

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

CentOS 7 で Apache (httpd) サービスをインストールおよびアンインストールする詳細な手順

アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...

Tomcat クラスローダーの実装方法とサンプルコード

Tomcat は内部的に複数の ClassLoader を定義し、アプリケーションとコンテナーが異な...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

Webリクエストと処理のTomcatソースコード分析

目次序文1. エンドポイント2. 接続ハンドラ3. コヨーテ4. コンテナ責任チェーンパターン序文T...

JS ES の新機能、変数分離割り当て

目次1. 配列の分離割り当て1.1 配列分離割り当てとは何ですか? 1.2 配列分離割り当てに失敗し...

Node.js でのブレークポイント再開の実装

序文通常のビジネスニーズ: 写真、Excel などをアップロードします。結局のところ、数 MB のサ...

Docker で lnmp をデプロイする詳細な手順

目次Centosイメージを取得するCentos ベースの nginx コンテナを生成するCentos...

MySqlのインストールとアンインストールに関する詳細なチュートリアル

この記事では、MySqlのインストールとアンインストールのチュートリアルを参考までに紹介します。具体...

Mysql5.7でのスケジュールバックアップの実装

1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...

Vueプロジェクトの支払い機能コードの詳細な説明

1. Alipay方式: Alipay メソッド: Alipay をクリックして支払い、バックエンド...

ネイティブJSは非常に見栄えの良いカウンターを実装します

今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...

MySQL デッドロックのトラブルシューティングの全プロセス記録

【著者】 Liu Bo: Ctrip テクニカル サポート センターのシニア データベース マネージ...

Linuxカーネルの浮動小数点演算のサポートに関する簡単な説明

現在、ほとんどの CPU は浮動小数点ユニット (FPU) をサポートしています。FPU は、プロセ...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...