Web Skills第5号では、CSSでダークモードやハイライトモードを実装するための技術的なソリューションが具体的に説明されています。つまり、新しいメディアクエリ条件の ダークモードとライトモードとは 技術的な解決策について話す前に、まずダーク モードとハイライト モードとは何かを簡単に理解しましょう。これら 2 つの概念は macOS システムに由来しており、ユーザーにはライト スキンとダークスキンの 2 つのテーマ スキンが提供されます。この概念が生まれて以来、多くのウェブサイトがユーザーに 2 セットの肌の色を提供し、ユーザーが自分の習慣や好みに応じて簡単に切り替えられるようにしています。 ダークモードかハイライトモードかにかかわらず、黒と白の切り替えになります。このテーマスタイルは、色覚異常を持つユーザーにとって非常に使いやすいです。 同様の機能は他のシステムやソフトウェアにも存在しますが、違いは提供されるモードにあります。一部のソフトウェアでは、ユーザーにスキンのカスタマイズ機能が提供される場合があります。もちろん、ウェブサイトにも同様の機能はありますが、以前はこの機能をウェブサイトのスキニング と呼ぶことが多かったかもしれません。 このように、これら 2 つのモード間の切り替えはスキンの変更として考えることができ、ビジネス シナリオにはより適している可能性があります。次は技術的な側面、つまり、 CSS を使用して Web ページやアプリケーションのテーマの切り替えを完了する方法について説明します。 最もシンプルなモード テーマがデフォルトでハイライト モードになっていると仮定すると、ハイライト モードをダーク モードに切り替える最も簡単で強力な方法を使用できます。 Web ページにエントリがあり、ユーザーがこの document.getElementById('buttonID').addEventListener('click', function(){ document.documentElement.classList.add('ダークテーマ') }) .ダークテーマ{ 背景色: #000; 色: 白; } .dark-theme *:not(a) { 背景色: #000 !重要; 色: #fff !重要; 境界線の色: #999 !重要; } この方法は単純で大まかですが、いくつかの詳細には追加の処理が必要であり、特にコードで スタイルを2セット用意する 私の個人的な印象では、同様の効果を実現する最も古い方法は、通常、JavaScript を使用して Web ページまたは Web アプリケーションのテーマ スキンの 上図に示すように、2 つの CSS ファイルが提供されており、1 つは Web ページのデフォルトのテーマ スタイルが <link type="text/css" rel="スタイルシート" media="all" href="../theme1.css" id="theme_css" /> コード内に簡単なスクリプト関数を提供します。 document.getElementById('buttonID').addEventListener('click', function(){ document.getElementById('theme_css').href = '../theme2.css'; }) テーマに戻ると、ダーク モードとライト モードを切り替える必要がある場合は、同様の原則に従って、それぞれ 複数のスタイルセットを維持するのは面倒です。特に、製品にさらに多くのスキンを提供したい場合には面倒です。この時点で、Sass などのプロセッサを使用してテーマのスタイルを維持し、変数を宣言し、対応する変数の値を維持できます。たとえば、Bootstrap テーマの構築では Sass 変数を使用します。 Sass を使用して複数のスキンを管理する知識は、この記事の範囲を超えています。この知識に興味がある場合は、次の記事を読んでください。 Sass で複数のテーマ スタイルを整理する 要約する 以上が、CSS を使用してダーク モードとハイライト モードを切り替える方法についてご紹介しました。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。 |
>>: Mac Docker x509証明書の問題を解決する
HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...
目次1. グローバル beforeEach 1. グローバル beforeEach 2. 実装2. ...
目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...
今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...
純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...
需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...
序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...
設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...
Mysql の追加、削除、変更、クエリステートメントのシンプルな実装追加されたレコード: テーブル名...
MySQL をクリーンアンインストールします。個人的にテストしたところ、今回はようやくうまくいきま...
現在の環境は次のとおりです。セントロス7.5 docker-ce 18.06.1-ce 1. まずc...
序文MySQL 5.1.6 以降、非常にユニークな機能であるイベント スケジューラが追加されました。...
1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...
01. コマンドの概要gcc コマンドは、GNU がリリースした C/C++ ベースのコンパイラを使...
dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...