この記事では、: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 は詳細なコードで星座クエリ機能を実装します
プロフェッショナルな Web デザインは複雑で時間がかかります。 HTML と CSS フレームワー...
MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...
序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...
Java環境変数を設定するここで、環境変数は etc/profile に設定され、つまり、すべてのユ...
最近 redis を使っていて、とても便利だと感じているのですが、インメモリ データベースを選択する...
この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...
今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...
「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにしま...
この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...
Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...
1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...
目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...
この記事では、MySQL 5.7.18のグリーンバージョンをダウンロードしてインストールする詳細な手...
目次操作方法操作プロセス既存のテーブルにパーティション テーブルを作成し、データを新しいテーブルに移...
JavaScriptの日付エフェクトの具体的なコードは参考用です。具体的な内容は次のとおりです。コー...