入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free-resources をご覧ください。

背景

さっそく、純粋な CSS を使用して次の効果を実現してみましょう。

答えはイエスです。

これは、css:placeholder-shown:valid:invalid疑似クラスとhtml5入力パターン属性の助けを借りて実現できます。

:placeholder-shown 疑似クラスの現在の互換性は次のとおりです。

:placeholder-互換性を表示

コードに直接! ☺️

ソースコード

https://jsbin.com/qenucaz/edit?html、css、出力

html:

<!DOCTYPE html>
<html>
<ヘッド>
  <メタ文字セット="utf-8">
  <meta name="ビューポート" content="width=デバイス幅">
  <title>JS ビン</title>
</head>
<本文>
  <div class="入力ボックス">
    <input class="input-fill" placeholder="メール" pattern="^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" 必須>
    <a href="javascript:" class="clear">閉じる</a>
    <label class="input-label">メール</label>
</div>
</本文>
</html>

css:

.入力フィル{
  幅: 100%;
  マージン: 0;
  フォントサイズ: 16px;
  行の高さ: 1.5;
  アウトライン: なし;
  パディング: 20px 16px 6px;
  境界線: 1px 透明の実線;
   背景: #f5f5fa;
  境界線の半径:10px;
  トランジション: 境界線の色 .25s;
}
.input-fill:placeholder-shown::placeholder {
    色: 透明;
    
}
.入力ボックス{
  幅: 50%;
    位置: 相対的;
}
.入力ラベル {
    位置: 絶対;
    左: 16px; 上: 14px;
    ポインタイベント: なし;
    色:#BEC1D9;
   パディング: 0 2px;
    変換の原点: 0 0;
    ポインタイベント: なし;
    移行: すべて .25;
}
.input-fill:not(:placeholder-shown) ~ .input-label,
.input-fill:focus ~ .input-label {
    変換: スケール(0.75) 移動(0px, -14px);    
}
.input-fill:フォーカス{
  境界線: 2px実線 #1d31aa;
}

。クリア{
  位置:絶対;
  上:10px;
  右:-20px;
   表示: なし;
    移行: すべて .25;
}
.input-fill::-ms-clear { 表示: なし; }
.input-fill:not(:placeholder-shown) + .clear { display: inline; }

.input-fill:有効{
 境界線の色: 緑;
 ボックスシャドウ: インセット 5px 0 0 緑;
}
.input-fill:not(:placeholder-shown):invalid {
 境界線の色: 赤;
 ボックスシャドウ: インセット 5px 0 0 赤;
}

もっと

さらに興味深いコンテンツについては、https://github.com/abc-club/free-resources をご覧ください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  MySQL テーブルスペースの断片化の概念と関連する問題の解決策

>>:  HTMLタグオーバーフロー処理アプリケーション

推薦する

CSSは親コンテナのdivをimg画像で埋め、コンテナのサイズに適応します。

ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...

JavaScriptタイマーとボタン効果設定の詳細な説明

タイマー効果: <div> <font id='timeCount'...

より人気がありクリエイティブなダーク背景のウェブデザインの例

暗い背景スタイルのページ デザインは非常に人気があり、シックでエレガント、そして非常にクリエイティブ...

Jsモジュール化の動作原理とソリューションの詳細な説明

目次1. モジュラーコンセプト2. モジュール化3. モジュール化プロセス1. 通常の記述(グローバ...

MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

パスワード入力後にMySQLデータベースがクラッシュする問題と解決策1 ケースの説明最近、基本的な機...

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

MySQL 最適化 query_cache_limit パラメータの説明

クエリキャッシュ制限query_cache_limit は、単一のクエリで使用できるバッファ サイズ...

MySQLのデフォルトのソートルールに基づく落とし穴

MySQL のデフォルトの varchar 型は大文字と小文字を区別しません (insensitiv...

MySQL 増分バックアップとブレークポイントリカバリスクリプトの例

導入増分バックアップとは、完全バックアップまたは最後の増分バックアップの後、後続の各バックアップでは...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

VMware Workstation での VMware vSphere のセットアップ (グラフィック チュートリアル)

VMware vSphere は、業界をリードする最も信頼性の高い仮想化プラットフォームです。 v...

Tomcat プロセスの CPU 使用率が高い場合の解決策

目次場合コンテキスト切り替えのオーバーヘッド?要約するCPU は多くの場合、システム パフォーマンス...

Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

目次必要回避策1. ツールチップを設定する2. hookToolTip変数を定義する3. メソッド内...

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

Linux でユーザー アカウントをロックおよびロック解除する 3 つの方法

組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...