CSS変数を使用してダークモードを実装するためのサンプルコード

CSS変数を使用してダークモードを実装するためのサンプルコード

最近、WeChatはAppleによってダークモードの開発を強制されました。ますます多くのウェブサイトやアプリケーションがダークモードをサポートし始めています。ウェブサイトにダークモードを選択する人も多くいます。この見た目を好むのかもしれませんし、目の疲れを防ぎたいのかもしれません。 この投稿では、訪問者のテーマに基づいて変化する自動 CSS ダーク モードを実装する方法を説明します。

私は自分のブログページMy Shop [1]でCSS變量@media查詢を使用してダークモードを実装してみました。

CSS ダークモード

テーマの色を設定するための変数を定義しました。プロセスがはるかに簡単になるので、同じことをすることをお勧めします。デフォルトのカラー変数は次のとおりです。

:根 {
  --アクセント: #226997;
  --メイン: #333;
  --ライト: #666;
  --ライター: #f3f3f3;
  --境界線: #e6e6e6;
  --bg:#ffffff;
}

これらの変数をスタイルシートで使用する場合は、次のようにします。

p {
  色: var(--main);
}

この方法では、テーマの色を変更したい場合は、定義された変数を変更するだけで、その変数を使用するすべてのものが更新されます。

ここで、CSS ダーク モードを呼び出すときに使用する新しい変数のセットを定義する必要があります。

/* ダークモードの色を定義します */
:根 {
  --アクセント: #3493d1;
  --メイン: #f3f3f3;
  --light: #ececec;
  --ライター: #666;
  --境界線: #e6e6e6;
  --bg: #333333;
}

ダークサポートを追加

これで 2 セットの変数が定義されたので、残っているのはpreferences -color-schemeメディア クエリをdark変数に追加することだけです。

Dark カラー変数を取得し、次の@media 查詢を追加します。

/* ダークモードの色を定義します */
@media (優先カラースキーム: 暗い) {
  :根 {
    --アクセント: #3493d1;
    --メイン: #f3f3f3;
    --light: #ececec;
    --ライター: #666;
    --境界線: #e6e6e6;
    --bg: #333333;
  }
}

それでおしまい!ダーク OS テーマを使用しているユーザーが Web サイトにアクセスすると、Web サイトは自動的にダーク モードに切り替わります。

この変更が機能するかどうかをテストしたいと思うでしょう。これを行うには、iOS ダーク テーマなど、オペレーティング システムでダーク テーマを有効にするだけです。

あるいは、OS のテーマ設定に時間を無駄にしたくない場合は、Firefox でこのテストを強制することもできます。方法は次のとおりです。

Firefox を開き、アドレスバーにabout:configと入力して Enter キーを押します。

リスクを負って、それを受け入れるよう求められます。

検索バーで、 ui.systemUsesDarkThemeを検索します。 チェックボックスをnumberに変更し、 +記号をクリックします。 値を1に変更し、チェックボタンをクリックします。

ページは黒くなるはずです。

ウェブサイトに戻ると、テーマが自動的にダーク モードに更新されているはずです。

元に戻るかどうかをテストしたい場合は、値を0に変更します。

テストが終了したら、ゴミ箱をクリックしてオプションを削除します。

CSS 変数を使用してダーク モードを実装するサンプル コードに関するこの記事はこれで終了です。CSS ダーク モードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  html-cssタグのスタイル設定が機能しない2つの理由

>>:  JS配列メソッドの詳細な説明

推薦する

MySQL で固定されていない位置から文字列要素を抽出する方法

序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...

HTMLフォーム要素の詳しい解説(パート1)

HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。 HTML フォー...

HTMLはフォームタグを使用して登録ページのサンプルコードを実装します。

ケースの説明: - ページ効果を実現するためにテーブルを使用する- ハイパーリンクを機能させたくない...

HTML と CSS を書くための 6 つの最も効果的な方法

この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...

MySQLのバックアップとリカバリの詳細な説明

序文:前回の記事では、さまざまな MySQL ステートメント構文の使用法とユーザー権限に関する知識を...

血の写輪眼と輪廻眼の特殊効果コードを実現するためのHTML+CSS

結果 (完全なコードは下部にあります): 実装は難しくありませんが、繰り返しコードが多くなります。実...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

MySQL 8.0.21 無料インストール版 設定方法 グラフィックチュートリアル

MySQLをインストールする6つの手順(インストールパッケージのみがインストール場所を選択できます)...

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現しま...

Nginx の書き換え正規マッチング書き換え方法の例

Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...

MySQLのルートパスワードをリセットする最も簡単な方法

私の MySQL バージョンは MYSQL V5.7.9 です。古いバージョンを使用してください: ...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

MySQL の主キーとトランザクションの詳細な説明

目次1. MySQLの主キーとテーブルフィールドに関するコメント1. 主キーと自動増分2. テーブル...

VMware での Ubuntu と Windows 間のファイル共有

この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...