この記事では、: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 は詳細なコードで星座クエリ機能を実装します
今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...
よくある質問ユーザー ''@'localhost' によるデータベー...
この記事では、参考までにMySQL8.0.11のインストールと設定方法、およびMySQL8.0の新し...
この記事の例では、ページング効果表示を実現するためのミニプログラムの具体的なコードを参考までに共有し...
テーブル ヘッダーでは、明るい境界線の色を個別に定義できます。基本的な構文<TH ボーダーカラ...
サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...
MySQL はネストされたトランザクションをサポートしていますが、それを実行する人は多くありません....
目次1. はじめに2. 直接回復2.1 mysqldumpバックアップの完全リカバリ2.2 xtra...
インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配...
最初にサーバー上に FTP サーバーをセットアップし始めたとき、接続できないことがわかったので、Fi...
Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...
(Win7 システム) VMware 仮想マシンのインストール チュートリアルVMware は仮想マ...
主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...
HTTP ステータス コードステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: ...
[LeetCode] 181.従業員の収入が管理職よりも多い従業員テーブルには、マネージャーを含む...