現在、セマンティクスとアクセシビリティを維持しながら、カスタムチェックボックス、ラジオボタン、トグルスイッチの構築は完全に実行可能です。 JavaScriptコードや追加のHTML要素の行も必要ありません!実際、最近よりも過去よりも簡単です。見てみましょう。
最終的な効果は次のとおりです。
以前よりもはるかに簡単です!
その理由は、最終的にできるからです<input>
::before
::after
スタイルが付けられています。これは、私たちが保持して設定できることを意味します<input>
余分な要素のないスタイル。以前は、余分に頼らなければなりませんでした<div>または<code><span></span>
カスタムデザインを実装します。
HTMLコードを見てみましょう
ここには特別なことはありません。このHTMLコードを使用して、入力をスタイリングする必要があります。
<input type="checkbox" id="c1"> <input type="radio" id="r1"> <input type="checkbox" id="s1">
これはすべてHTMLパーツに関するものです。もちろん、 name
とid
属性を追加することをお勧めします。<label></label>
要素:
<label for="c1">チェックボックス</label> <input type="checkbox" id="c1"> <label for="r1">ラジオボタン</label> <input type="radio" id="r1"> <label for="s1">スイッチ</label> <input type="checkbox" id="s1" class="switch">
スタイルの設定を開始します
まず、 appearance: none;
そのプレフィックスバージョンを含みます。 appearance
属性は、ブラウザのデフォルトスタイルを要素から削除するように設計されているため重要です。ブラウザがこのプロパティをサポートしていない場合、スタイルは適用されず、デフォルトの入力スタイルが表示されます。これは絶対に問題あり、漸進的な強化の良い例でもあります。
@supports(-webkit-appearance:none)または(-moz-appearance:none){ 入力[type = 'チェックボックス']、 input [type = 'Radio'] { -webkit-acpearance:none; -moz-acpearance:none; } }
今のところ、 appearance
まだ作業ドラフトフェーズにありますが、ここにサポートがあります。
このブラウザは、Caniuseのデータをサポートしています。これには詳細が含まれています。番号は、このバージョンでブラウザがこの機能をサポートしていることを示しています。
デスクトップ
モバイル/タブレット
リンクと同様に、フォーム要素のさまざまな相互作用状態を考慮する必要があります。要素スタイルを設定するときに、これらの状態を考慮します。
-
:checked
-
:hover
-
:focus
-
:disabled
たとえば、トグル入力のスタイル、ノブを作成し、 :checked
方法を次に示します。
/*コンテナを切り替える*/ .switch { 幅:38px; ボーダーラジウス:11px; } /*ノブを切り替える*/ .switch ::後{ 左:2px; トップ:2px; ボーダーラジウス:50%; 幅:15px; 高さ:15px; 背景:var( - ab、var( - border)); 変換:translatex(var( - x、0)); } /*選択したときに色と位置を変更します*/ .switch:checked { -ab:var( - アクティブイン); -X:17px; } /*入力が無効になっているときにトグルノブの不透明度を減らす*/ .switch:disabled:not(:checked)::後{ 不透明:.6; }
私達はします<input>
要素はコンテナとして使用されます。入力内のノブは::after
作成されます。繰り返しますが、追加のマーキングは必要ありません!
デモでスタイルを開くと、CSSカスタムプロパティを定義していることがわかります。これは、スタイルシートで再利用可能な値を管理する素晴らしい方法になっているためです。
@supports(-webkit-appearance:none)または(-moz-appearance:none){ 入力[type = 'チェックボックス']、 input [type = 'Radio'] { -active:#275efe; -active-inner:#fff; - フォーカス:2px RGBA(39、94、254、.25); - ボーダー:#BBC1E1; - ボーダーホバー:#275efe; - バックグラウンド:#fff; - 障害者:#f6f8ff; -disabled-inner:#e1e6f9; } }
しかし、カスタムプロパティを使用する別の理由があります - それらは、要素の状態に基づいて値を更新するのに非常に適しています!ここでは詳細は説明しませんが、以下はさまざまな状態に基づいてカスタムプロパティを使用する方法の例です。
/*デフォルト値*/ 入力[type = 'チェックボックス']、 input [type = 'Radio'] { -active:#275efe; - ボーダー:#BBC1E1; 境界線:1PX SOLID VAR(-BC、var( - border)); } /*デフォルト値を書き換える*/ 入力[type = 'チェックボックス']:チェックされた、 input [type = 'radio']:checked { -B:var( - アクティブ); -BC:var( - アクティブ); } /*選択されていない場合、無効になっていない場合、ホバリングするときに別の境界色の色が適用されます*/ input [type = 'チェックボックス']:not(:checked):not(:disabled):hover、 input [type = 'radio']:not(:checked):not(:disabled):hover { -BC:var( - border-hover); }
アクセシビリティのために、カスタムフォーカススタイルを追加する必要があります。デフォルトのアウトラインを削除しました。これは、設定した残りのスタイルのように丸くすることができないためです。ただし、丸い角を備えたbox-shadow
アウトラインのように機能する丸い角のスタイルを作成できます。
入力[type = 'チェックボックス']、 input [type = 'Radio'] { - フォーカス:2px RGBA(39、94、254、.25); アウトライン:なし; 遷移:Box-Shadow .2s; } 入力[type = 'チェックボックス']:フォーカス、 input [type = 'Radio']:Focus { Box-Shadow:0 0 0 var( - フォーカス); }
また、HTMLでフォローするように直接整列して設定することもできます<input>
エレメンタル<label></label>
要素スタイル:
<label for="c1">チェックボックス</label> <input type="checkbox" id="c1">
入力[type = 'チェックボックス']ラベル、 入力[type = 'Radio']ラベル{ ディスプレイ:インラインブロック。 垂直アライイン:トップ; /*その他のスタイル*/ } 入力[type = 'チェックボックス']:無効ラベル、 input [type = 'Radio']:無効ラベル{ カーソル:禁止されていません。 }
デモをもう一度見せてください:
最近、カスタムフォームスタイルを作成するのがどれほど便利かを理解できることを願っています。フォーム入力で直接擬似要素のために必要なマークアップが少なくなります。カスタムプロパティにより、スタイルスイッチが少なくなります。 @supports
のおかげで、かなり優れたブラウザのサポートがあります。
全体として、これは私たちが過去に対処しなければならなかった開発体験よりもはるかに優れています!
以上が最新のCSS機能を備えたカスタムスタイリングフォーム入力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

React Ecosystemは、すべてがドラッグアンドドロップの相互作用に焦点を合わせている多くのライブラリを提供します。 React-Dnd、React-Beautiful-Dnd、

バックグラウンドクリップをすべて頻繁に使用すると言うことができます。私は、日々のCSS作業ではほとんど使用されていない&#039; dを賭けています。しかし、私はステファン・ジュディスの投稿でそれを思い出しました、

RequestAnimationFrameでアニメーション化するのは簡単なはずですが、Reactのドキュメントを徹底的に読んでいない場合は、おそらくいくつかのことに遭遇するでしょう

おそらく、それをユーザーに提供する最も簡単な方法は、要素上のIDをターゲットにするリンクです。だから...

聞いてください、私はGraphQLの専門家ではありませんが、私はそれで働くことを楽しんでいます。フロントエンド開発者としてデータを公開する方法はかなりクールです。メニューのようなものです

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

私は最近、Codepenの興味深い変化に気づきました。ホームページにペンをホバリングすると、丸い角が背面に拡大する長方形があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
