目次
以前よりもはるかに簡単です!
HTMLコードを見てみましょう
スタイルの設定を開始します
デスクトップ
モバイル/タブレット
ホームページ ウェブフロントエンド CSSチュートリアル 最新のCSS機能を備えたカスタムスタイリングフォーム入力

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

Apr 11, 2025 am 11:45 AM

最新の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 までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

スティッキーヘッダーとフッターにCSSグリッドを使用する方法 スティッキーヘッダーとフッターにCSSグリッドを使用する方法 Apr 02, 2025 pm 06:29 PM

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

See all articles