検索
ホームページウェブフロントエンドCSSチュートリアル最新のCSS機能を備えたカスタムスタイリングフォーム入力

最新のCSS機能を備えたカスタムスタイリングフォーム入力

現在、セマンティクスとアクセシビリティを維持しながら、カスタムチェックボックス、ラジオボタン、トグルスイッチの構築は完全に実行可能です。 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パーツに関するものです。もちろん、 nameid属性を追加することをお勧めします。<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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Draggin&#039;ドロップピン&#039;反応でDraggin&#039;ドロップピン&#039;反応でApr 17, 2025 am 11:52 AM

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

高速ソフトウェア高速ソフトウェアApr 17, 2025 am 11:49 AM

最近、高速ソフトウェアについて素晴らしい相互接続されたことがいくつかありました。

バックグラウンドクリップ付きのネストされたグラデーションバックグラウンドクリップ付きのネストされたグラデーションApr 17, 2025 am 11:47 AM

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

ReackAnimationFrameを使用してReact Hooksを使用しますReackAnimationFrameを使用してReact Hooksを使用しますApr 17, 2025 am 11:46 AM

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

ページの上部にスクロールする必要がありますか?ページの上部にスクロールする必要がありますか?Apr 17, 2025 am 11:45 AM

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

Best(GraphQL)APIはあなたが書くものですBest(GraphQL)APIはあなたが書くものですApr 17, 2025 am 11:36 AM

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

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーターApr 17, 2025 am 11:26 AM

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

ボーダー半径を保存しながら箱を拡張するためのさまざまな方法ボーダー半径を保存しながら箱を拡張するためのさまざまな方法Apr 17, 2025 am 11:19 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境