序文ダーク モードの概念は、 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. Dockerをインストールするyum -y install docker-ioインストールが完...
本日は、Web 開発で使われる基本的な概念と技術を初心者向けに紹介します。A から Z まで合計 2...
まずは違いについて話しましょう最後に、書き換えられたルールは、次の場所と一致させるために書き換えられ...
まず、公式ウェブサイト http://dev.mysql.com/downloads/mysql/ ...
私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...
目次背景分析する方法背景MySQL は 26 日の 16:23:49 に大量のスロー クエリを生成し...
目次序文Lua スクリプトnignx.conf の設定Dockerfileの設定序文データベースやそ...
* 住所 - 住所* blockquote - ブロック引用* center - 中央揃えブロック*...
MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...
1 MySQL5.6 1.1 関連パラメータMySQL 5.6 では、innodb_undo_dir...
目次ステップ1: フレームワークを構築するステップ2 構築されたPromiseフレームワークに入力す...
データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...
この記事では、ドラッグアンドドロップやクリックによる画像のアップロードを実現するためのVueの具体的...
目次序文1. どのような変数が促進されますか? 2. 可変プロモーションがあるのはなぜですか? (1...