序文ダーク モードの概念は、 Apple の担当者が徐々にすべての主要システム プラットフォームに 私を知っている友人は皆、私が熱烈な CSS 愛好家であることを知っているはずです。もちろん、今回も純粋な CSS を使用してこのソリューションを実装しています。はい、JS を追加しなくても、CSS の威力が再び証明されました。 アイデアアイデアはシンプルで、ボタンを使用してテーマ スタイルを切り替えるだけです。ボタンのチェックを外すと、 :checked : オプションがチェックされたフォーム要素 + : 要素の隣接する兄弟要素
<本文> <input class="ios-switch" type="checkbox"> <div class="main">ウェブサイト本文</div> </本文> セレクターの機能と分類の詳細については、私の記事「おそらく最も完全で覚えやすい CSS セレクター分類方法」を参照してください。 トグルボタン見た目の良いボタンをデザインしたいと思っていましたが、特にアイデアがなかったので、iPhoneを開いて、純粋な CSS を使用して設定に サイズと色はiPhoneのスイッチボタンと一致しています。アイデアとしては、 <input class="ios-switch" type="checkbox"> .btn{ 境界線の半径: 31px; 幅: 102px; 高さ: 62px; 背景色: #e9e9eb; } .ios-スイッチ{ 位置: 相対的; 外観: なし; カーソル: ポインタ; 遷移: すべて 100 ミリ秒; @extend .btn; &::前に { 位置: 絶対; コンテンツ: ""; 遷移: すべて 300ms cubic-bezier(.45, 1, .4, 1); @extend .btn; } &::後 { 位置: 絶対; 左: 4px; 上: 4px; 境界線の半径: 27px; 幅: 54px; 高さ: 54px; 背景色: #fff; ボックスの影: 1px 1px 5px rgba(#000, .3); コンテンツ: ""; 遷移: すべて 300ms cubic-bezier(.4, .4, .25, 1.35); } &:チェック済み{ 背景色: #5eb662; &::前に { 変換: スケール(0); } &::後 { 変換: translateX(40px); } } } オンラインデモとソースコードを表示するにはここをクリックしてください。 ダークモード4月4日にインターネット全体が追悼モードになった時のことを覚えていますか?著者は、強力な CSS 属性 html{ フィルター:グレースケール(1); } 本当にたった 1 行のコードで、今回も例外ではありません。 html{ フィルター: 反転(1) 色相回転(180度); } この invert() : 画像を反転して逆向きに出力します。0 hue-rotate() : 色相回転、画像の色を弱める、白黒以外の色を処理する、
上記の分析によると、ボタンが選択状態にある場合、 .ios-スイッチ{ ... &:チェック済み{ ... & + .main { フィルター: 反転(1) 色相回転(180度); } } } 。主要 { 背景色: #fff; 遷移: すべて 300 ミリ秒; } CodePen での効果をよりわかりやすく示すために、 最適化 注意深い生徒は、写真がすべて超音波写真のように見えることに気付くかもしれません。 設計原則によれば、スキニングはコンポーネントのみを対象とします。背景、画像、ビデオなどの一部のメディア要素は直接処理することができず、そのまま残す必要があります。 画像、 ビデオ フィルター: 反転(1) 色相回転(180度); } もう一つの疑問は、背景をどう扱うかということです。ご存知のとおり、背景は 画像、 ビデオ、 .アバター、 。画像、 .サムネイル{ フィルター: 反転(1) 色相回転(180度); } 一般的なウェブサイトでは、このクラス名は自分で定義できます。最も実現可能な方法は、特定のクラス .除外{ フィルター: 反転(1) 色相回転(180度); } 改修 コードのデモンストレーションを容易にするために、CodePen デモでは <本文> <div id="__nuxt">...</div> </本文> <本文> <input class="ios-switch" type="checkbox"> <div id="__nuxt">...</div> </本文> 次の .btn{ 境界線の半径: 31px; 幅: 102px; 高さ: 62px; 背景色: #e9e9eb; } .ios-スイッチ{ 位置: 相対的; 外観: なし; カーソル: ポインタ; 遷移: すべて 100 ミリ秒; @extend .btn; &::前に { 位置: 絶対; コンテンツ: ""; 遷移: すべて 300ms cubic-bezier(.45, 1, .4, 1); @extend .btn; } &::後 { 位置: 絶対; 左: 4px; 上: 4px; 境界線の半径: 27px; 幅: 54px; 高さ: 54px; 背景色: #fff; ボックスの影: 1px 1px 5px rgba(#000, .3); コンテンツ: ""; 遷移: すべて 300ms cubic-bezier(.4, .4, .25, 1.35); } &:チェック済み{ 背景色: #5eb662; &::前に { 変換: スケール(0); } &::後 { 変換: translateX(40px); } & + #__nuxt { フィルター: 反転(1) 色相回転(180度); 画像、 ビデオ、 .アバター、 。画像、 .サムネイル{ フィルター: 反転(1) 色相回転(180度); } } } } #__nuxt { 背景色: #fff; 遷移: すべて 300 ミリ秒; } 完了後、 .ios-スイッチ{ 位置: 絶対; 右: 0; 上: 0; zインデックス: 99999; アウトライン: なし; } または、 説明が少しわかりにくいと感じた場合は、少し整理して、上記の操作を 3 つのステップで完了することができます。 ナゲッツコミュニティのウェブサイトを開く
コピー&ペーストを容易にするために、著者は上記の分析から得られた CSS コードを圧縮しました。 <style> .btn、.ios-switch :: before、.ios-switch {border-radius:31px; width:102px; height:62px; background-color:#e9e9eb;}。ios-switch {position:relative; lative; ligate; ligate:none:none; cursor:coursor:contert:all copest: Ubic-Bezier(0.45,1,0.4,1);}。iOS-switch :: after {position:absolute; left:4px; top:4px; width:54px; MS Cubic-Bezier(0.4,0.4,0.25,1.35);}。iOS-Switch:checked {background-color:#5eb662;}。ios-switch:checked :: before {transform:scale(0);} :(1)Hue-Rotate(180Deg);}。iOS-Switch:チェック +#__nuxt img:checked +#__nuxt video、.ios-switch:checked +#_nuxt .avatar、.ios-switch:checked +#__nuxt .is-switch:hid + 0deg);} #__ nuxt {background-color:#fff; transition:すべて300ms;}。ios-switch {position:aspolute; right:0; top:0; z-index:99999; outline:none;} </style>
<本文> <input class="ios-switch" type="checkbox"> <div id="__nuxt">...</div> </本文> このように、純粋な CSS 実装により、Web サイトに 要約する
<本文> <input class="ios-switch" type="checkbox"> <div class="main">ウェブサイト本文</div> </本文> .ios-スイッチ{ ... &:チェック済み{ ... & + .main { フィルター: 反転(1) 色相回転(180度); 画像、 ビデオ、 .除外{ フィルター: 反転(1) 色相回転(180度); } } } } 。主要 { 背景色: #fff; 遷移: すべて 300 ミリ秒; } このソリューションには次の機能があります。
やってみるのもいいですよ。終わって結果が良かったと思ったら、上司に昇給をお願いしてみましょう:stuck_out_tongue_winking_eye:、ハハ! 純粋な CSS を使用して Web サイトのダーク モード切り替えを無料で有効にする方法についての記事はこれで終わりです。CSS ダーク モード切り替えの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
>>: LinuxでIPアドレスが表示されない問題の解決方法
1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...
目次背景実装のアイデア成果を達成する背景最近取り組んでいるプロジェクトは、Vue2 で構築されたプロ...
序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...
今日、突然、自分のウェブページで Google や Baidu のような強力な検索エンジンを呼び出す...
XHTML タグとは何ですか? XHTML タグ要素は、XHTML ドキュメントの基本的なコンポーネ...
文字列を動的に連結する場合、文字連結を使用することが多いです。次のような連結の引用符の意味がわかりま...
目次エラーのデモンストレーション計算により画像が変わらない場合は直接インポートするCSS変数による画...
目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...
テーブルフィールドを追加する テーブルtable1を変更し、トランザクタvarchar(10)をNu...
目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...
MySQL ストアド プロシージャ パラメータには、in、out、inout の 3 種類があります...
従来の Linux イメージで作成された ECS クラウド サーバーには、NTP と YUM が設定...
優れた HTML コードは美しい Web サイトの基礎となります。私が CSS を教えるときは、まず...
Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...
序文プロジェクト開発中、各人のコーディング習慣が異なるため、記述された CSS コードは十分に構造化...