この記事では、:placeholder-shown 疑似クラスを使用して、純粋な CSS で浮動疑問符効果を作成します。 フローティングテキストラベル 入力ボックスを扱う際には、ユーザーにより良い体験を提供できるよう最善を尽くします。よく使用されるタグ属性は 2 つあります。 ラベル タグは、フォーム要素に関連付けられた説明情報を提供するのに最適な要素です。 まず、ユーザーには、いくつかのサンプルの質問を表示するプレースホルダー属性を持つ入力タグが表示されます。ラベル要素はデフォルトでは非表示になっています。 フローティングラベルテキストを実現するための純粋なCSS フォーカス イベントを登録し、入力に値があるかどうかを判断し、要素を非表示にし、入力ボックスにコンテンツがあるかどうかに基づいて要素を表示するかどうかを決定します。これは JavaScript の仕事のように思えますね。あまり!上記の効果を実現できる CSS 疑似クラス: placeholder-shown があるためです。 MDN はこの疑似クラスを次のように説明しています。 :placeholder-shown CSS 疑似クラスは、<input> または <textarea> 要素にプレースホルダー テキストを表示します。 つまり、入力ボックスに値がある場合は、:placeholder-shown 疑似クラスはトリガーされないと想定できます。 この疑似クラスを使用してフローティング ラベルを実装する方法は次のとおりです。 HTML コードを作成し、隣接する兄弟セレクターを通じて入力要素に対応するラベル タグを選択し、2 つの要素を div でラップします。 上記のアイデアに従って HTML と CSS を完成させましょう。 HTMLとCSS HTML の構造は実際には非常にシンプルで、次のようになります。 <div class="入力"> <input type="text" id="input" class="Input-text" placeholder="あなたの名前、例:Nicholas"> <label for="input" class="Input-label">名</label> </div> CSSコード: .入力{ /** * コンテナの相対的な配置は重要です。ラベル要素のフロート位置はコンテナに対して計算されるからです。*/ 位置: 相対的; } .入力テキスト{ /** * 入力ボックスのスタイルを設定します。 フォントサイズと行の高さは、ラベルの正確な位置を決定するために非常に重要です */ 表示: ブロック; マージン: 0; 幅: 100%; /** * この例では、カスタム プロパティを使用してこれらのプロパティが 1 回設定されます。 * * パディング * フォントサイズ * 行の高さ */ } .入力テキスト:フォーカス{ /** * フォーカスを取得した際の入力ボックスのスタイル */ } .入力ラベル{ /** * ラベル要素は絶対位置に設定されており、その位置と移動距離は親要素と入力ボックスに基づいて計算されます*/ 表示: ブロック; 位置: 絶対; 不透明度: 0; /** * この例では、カスタム プロパティを使用してこれらのプロパティが 1 回設定されます。 * * 底 * 左 * フォントサイズ * 行の高さ * 変身 * 変換元 * 遷移 */ } .Input-text:プレースホルダー表示 + .Input-label { /** * プレースホルダーテキストが表示されている場合は、ラベルは非表示になります */ 可視性: 非表示; Zインデックス: -1; } .Input-text:not(:placeholder-shown) + .Input-label, .Input-text:focus:not(:placeholder-shown) + .Input-label { /** * プレースホルダーが消えると、たとえば入力中は、ラベル要素が表示され、入力ボックスの上に浮かび上がります*/ 可視性: 可視; zインデックス: 1; 不透明度: 1; /** * これらのプロパティは、カスタムプロパティを使用する例では一度設定されます* * 変身 * 遷移 */ } 完全なデモンストレーション効果 完全な HTML および CSS コードは、以下のデモ リンクで確認できます。 効果リンク ブラウザのサポート ブラウザのサポートは、Edge を除いて、これまでのところかなり良好です。 要約する 上記は、CSS の placeholder-shown 疑似クラスを使用して入力ボックスでフローティング テキスト効果を実現する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。 |
>>: JavaScript は詳細なコードで星座クエリ機能を実装します
まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...
序文Github にある以前のコードには、CUDA 8.0 環境が必要なものもあります。初心者の場合...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...
この記事では、ウェブページのスネークゲームを実装するためのJavaScriptの具体的なコードを参考...
エラーの説明: 1. Linux (CentOS 7 64) システムに Nginx (1.18.0...
問題の説明html <iframe id="h5Content" src=...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
mongoイメージを取得する sudo docker pull mongo mongodbサービスを...
目次1. はじめに2. タブバーのスタイルをカスタマイズする3. カスタムタブバーと関連設定を導入す...
前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...
プロットレビュー前回の記事では、ロケーション命令の解析プロセスを分析しました。この内容を簡単に確認し...
結果:実装コード: html <link href='https://fonts.go...
目次01 非表示の列を作成する02 非表示の列に対する基本操作03 非表示の列メタデータ04 主キー...
目次マルチ環境構成とは何ですか? また、なぜそれが必要なのですか? .env ファイルはどこで設定さ...