入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋な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タグオーバーフロー処理アプリケーション

推薦する

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...

MySQL無料インストール版のパスワードの設定と変更に関するチュートリアル

ステップ 1: 環境変数を構成する (解凍パス: G:\mysql\mysql-5.7.21-win...

macOS での MySQL 8.0.16 のインストールと設定のグラフィック チュートリアル

この記事では、macOSでのMySQL 8.0.16のインストールと設定のチュートリアルを参考までに...

Dockerは1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...

Mysql ファジークエリが大文字と小文字を区別するかどうかの詳細な調査

序文最近、私は小さな個人ブログ プロジェクトを書くのに忙しくしています。 「グローバル検索」機能を実...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...

この記事では、CSSのようなJSモジュールをインポートする方法を説明します。

目次序文構築可能なスタイルシートとは何ですか? CSSモジュールスクリプトの使用インポートアサーショ...

MySQLへの外部ネットワークアクセスを許可し、MySQLアカウントのパスワードを変更する方法

mysqlのrootアカウント、普段はlocalhostか127.0.0.1で接続しています。会社の...

Docker クロスサーバー通信オーバーレイソリューション (パート 1) Consul 単一インスタンス

目次シナリオタスクアイデア分析するコンセプトと選択ちょっとしたテスト環境説明予防実践テスト引用シナリ...

Vueプロジェクトのパッケージ化の詳細な説明

目次1. 関連構成ケース1(使用ツールはvue-cil)ケース2(使用するツールはwebpack) ...

JavaScript のマイクロタスクとマクロタスクの説明

序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...

色の16進数カラーコード表表示と16進値の比較表示で簡単に検索できます

さまざまな色の16進コード表[パート1] 赤とピンク、およびそれらの 16 進コード。 #99003...

JavaScript 履歴オブジェクトの説明

目次1. ルートナビゲーション2. 履歴状態管理API (1)ハッシュチェンジイベント(2)ポップス...