この記事では、: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 は詳細なコードで星座クエリ機能を実装します
目次テクノロジースタックバックエンドビルドAPIフロントエンドウェブ構築ゲートウェイ建設ゲートウェイ...
sed は Unix の文字ストリーム エディタ、つまりストリーム エディタです。行指向であり、行単...
MySQL では lastIndexOf に似た関数を使用する必要がある場合もありますが、すぐに使用...
1. エフェクトHTMLを送信する <div id="送信ボタン">...
この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...
イベントの説明onactivate: オブジェクトがアクティブ要素として設定されたときに発生します。...
成果を達成する実装コードhtml <input type="radio" ...
この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...
Web プロジェクトがどんどん大きくなると、CSS は天文学的な大きさと複雑さを増します。この問題を...
典型的なレイアウト例上の写真のように、正方形の真ん中に一定の隙間があり、その隙間は固定されています。...
みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...
クラスタリングは、実際には InnoDB データベース エンジンに関連しています。したがって、インデ...
シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...
序文この記事は主に Linux C でのログ出力コード テンプレートに関する関連コンテンツを紹介し、...
順序なしリストのアプリケーションネストコードをコピーコードは次のとおりです。 <!DOCTYP...