CSS変数を使用してスタイルを変更する方法の例

CSS変数を使用してスタイルを変更する方法の例

質問

js を使用して CSS 疑似クラス スタイルを変更するにはどうすればよいでしょうか?しかし、js には疑似クラスセレクターがないので、どうすればよいでしょうか?要素クラスを切り替えたり、スタイルに新しいスタイルを動的に挿入したりするなど、インターネット上にはさまざまな方法があります。

次に別の方法を紹介します。これは、CSS 変数 (var) を設定し、この変数を JS を通じて変更してこれを実現する方法です。

例: div のホバー背景色を変更する

<!-- css -->
<スタイル タイプ="text/css">
    :根 {
        --divHoverColor: 赤;
    }
    div {
        幅: 100ピクセル;
        高さ: 100px;
        背景:素焼き。
    }
    div:ホバー{
        背景: var(--divHoverColor);
    }
</スタイル>
<!-- html -->
<div onClick="onDivClick('green')"/>
<!-- js -->
<script type="text/javascript">
    関数onDivClick(値){
        document.documentElement.style.setProperty('--divHoverColor', 値);
    }
</スクリプト>

それでは、CSS 変数について理解しましょう。

1. 基本的な使い方

ローカル変数

div {
    --masterColor: 赤;
    背景: var(--masterColor);
}

グローバル変数

/* HTML の場合、:root は <html> 要素を参照します */
:根 {
    --masterColor: 赤;
}
div {
    背景: var(--masterColor);
}

2. 構文

var( <カスタムプロパティ名> [, <宣言値> ]? )

<custom-property-name> : カスタムプロパティ名

<宣言値> : 宣言値(フォールバック値)

例:

div {
    /*
    --masterColor は未定義なので、背景色は赤になります 
    カンマで区切られた複数の宣言値を定義できます。var(--masterColor, red, green)
    */
    背景: var(--masterColor, red);
}

変数はvar()を使用して参照できます

例:

div {
    --masterColor: 赤;
    --bgColor:var(--masterColor)
}

注意: 属性名には変数は使用できません。

エラー例:

div {
    --bg: 背景;
    var(--bg): 赤;
}

3. ブラウザのサポート

使えますか

@support検出の使用

@supports ( (--masterColor: 赤)) {
  /* サポートされています */
}
@supports ( not (--masterColor: red)) {
  /* サポートされていません */
}

JS検出の使用

定数 isSupported = window.CSS && window.CSS.supports 
    && window.CSS.supports('--masterColor', '赤');

サポートされている場合
  /* サポートされています */
} それ以外 {
  /* サポートされていません */
}

参照する

翻訳
CSS 変数の仕様

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

<<:  HTML&CSS&JS 互換性ツリー (IE、Firefox、Chrome)

>>:  MySQL 上級学習インデックスの長所と短所、使用ルール

推薦する

デザインリファレンス 美しく独創的なブログデザイン

以下にリストされているすべてのブログはオリジナルであり、独自にデザインされています。これらは、他者が...

aタグ疑似クラスの機能と記述順序は何ですか?

a タグ疑似クラスの役割: 「:link」: 訪問されていないタグの状態。 「:visited」: ...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

子コンポーネントを通じて親コンポーネントのプロパティを変更するための Vue のさまざまな実装方法

目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...

HTML での Li タグの使用例

タイトルを左に、日付を右に揃えたいのですが、日付の範囲に float:right を直接追加すると、...

MySQLサーバのスレッド数を表示する方法の詳細な説明

この記事では、例を使用して、MySQL サーバーのスレッド数を表示する方法について説明します。ご参考...

vueはEle.me UIを使用してteambitionのフィルタリング機能を模倣します

目次問題の説明一般的な機能効果は次のとおりです。思考分析完全なコード要約する問題の説明Teambit...

Vue で @person 関数を実装する方法

この記事ではvueを使用し、マウスクリックイベントといくつかの小さなページの最適化を追加します。 基...

Linux での Jenkins の詳細なインストール手順

目次1. JDKをインストールする2. Jenkinsをインストールする3. Jenkinsの設定を...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

この記事では、Docker を使用して MySQL をデプロイし、データを保持する方法について簡単に...

Linux スレッド間の同期と排他制御の知識ポイントのまとめ

スレッドが同時に実行される場合、スレッドがリソースを競合してデータの曖昧さが生じるのを防ぐために、重...

MySQL 8.0.12 インストール グラフィック チュートリアル

MySQL8.0.12 インストールチュートリアルをみんなで共有します。 1. インストール1.イン...

mysql 5.7.11 winx64.zip インストールと設定方法のグラフィックチュートリアル

MySql データベース システムをインストールして構成します。 1. ダウンロード http://...

MySQL 8.0.23 無料インストールバージョンの設定詳細チュートリアル

最初のステップは、MySQL 8.0.23の無料インストールバージョンをダウンロードすることです。 ...