ホームページ ウェブフロントエンド CSSチュートリアル CSSのフローティングラベル入門(ケース付き)

CSSのフローティングラベル入門(ケース付き)

Oct 15, 2018 am 11:33 AM
css css3アニメーション html5

この記事では、CSS のフローティング ラベルについて説明します (例を示します)。必要な方は参考にしていただければ幸いです。

Web プロジェクトには、ログイン/登録モジュールという非常に重要なモジュールがあります。このモジュールの主要部分はフォーム フォームであり、2 つの重要な入力グループ (ユーザー名/パスワード) が含まれています。各入力グループにはラベルと入力が含まれており、ラベル入力にはさまざまなレイアウト プランがあり、設計者によって設計スタイルが異なり、フロントエンド エンジニアによって実装方法が異なります。比較を通じて、現在のソリューションは美しさとパフォーマンスの両方に焦点を当てていることがわかりました。

それでは、ラベルと入力のレイアウト計画は何でしょうか?

ラベル入力のレイアウト計画

  1. ラベルと入力を置き換えます。 input (palcholder キーワード プロンプト) は上部と下部に分かれています。 // 昔は使用されていましたが、現在は

  2. を使用してラベルと input (palcholder キーワード プロンプト) を左と下部に分割します。右側の部分 (ラベルは一定の幅を占め、ラベル内のフォントは左揃え、右揃え、両端揃えの 3 つの一般的な解決策を採用します) // ケース: Weibo ログイン、JD WAP ログイン ページなど。

  3. ラベルと入力 (palcholder キーワード プロンプト) は依然として左側と右側の部分に分かれています。違いは、ラベル内のフォントがアイコンに置き換えられることです。フォールト コミュニティ ログイン ページなど

  4. 入力 (パルホルダー キーワード プロンプト) のみが含まれます。 // ケース: モバイル タオバオ ログイン ページ、Nuggets 開発コミュニティ ログイン ページなど

  5. 入力 (パルホルダー キー) の単語プロンプトのみを表示し、入力のフォーカス イベントがトリガーされると、ラベルがフローティングされて非表示になります。 // ケース: モバイル淘宝網の以前のログイン ページ、または JVFloatLabeledTextField などを参照してください。

これらのソリューションには、ラベル フォントの使用とアイコンへの置き換えにはそれぞれ利点と欠点があります。より鮮やかですが、アイコンが追加されています URL アクセス; ラベル内のフォントの数が一貫しておらず、見苦しいですが、単語の数は同じです。 この解決策は、ラベルを直接破棄することでのみ満足できるものと言えます。インターフェイスはシンプルで美しいですが、ラベルにはラベル (詳細は後述) とプレースホルダーの機能があります。フローティング ラベルを使用するとアニメーション効果が高まりますが、このソリューションのパフォーマンスは明らかに高くなります。 js を使用しない場合よりも優れています (js を使用しない解決策もありますが、互換性はあまり良くありません)。

label と placholder

label: 入力が一意のフィールド名であることを指定するために使用されるフォーム要素の役割を説明します。

placeholder: それユーザーにコンテンツの形式を入力するように促します。

これらは似ているように見えますが、多くの学生がここで大きな間違いを犯しています。

詳細については、MDN

アニメーション ラベル (no-js)

ユーザー インタラクション ページを参照してください。アニメーションを使用したユーザー インタラクションは、多くの場合、ユーザーに好印象を与えやすいものです。以下に、疑似クラスを使用して実装されたフローティング ラベルを紹介します。

HTML コード:

1

2

3

4

<div class="input-group">

    <input type="text" id="userName" placeholder="用户名/邮箱/卡号">

    <label for="userName">账号</label>

</div>

ログイン後にコピー

基本レイアウト CSS コード:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

.input-group {

    position: relative;

    margin: 100px 20px;

    font-size: 16px;

}

 

.input-group>input {

    display: block;

    box-sizing: border-box;

    width: 100%;

    padding: 16px;

    font-size: 16px;

    line-height: 1.0;

    border: none;

    border-bottom: 1px solid #cdcdcd;

    border-radius: 0.4em;

 

    transition: box-shadow 0.3s;

}

 

.input-group input::placeholder {

  color: #cdcdcd;

}

 

.input-group>input:focus {

    outline: none;

    box-shadow: 0.2em 0.8em 1.6em #cdcdcd;

}

 

.input-group>label {

    position: absolute;

    bottom: 50%;

    left: 0;

    z-index: -1;

     

    visibility: hidden;

    color: #050505;

    opacity: 0;

}

ログイン後にコピー

まず、ラベルの位置 (位置: 絶対) を設定し、そのレベル (z-インデックス: -1)、可視性: 非表示、透明度 (不透明度: 0);

次に、入力のプレースホルダー スタイルが設定され、擬似要素::プレースホルダーを使用してそのスタイルを設定できます。

最後に、入力要素のラベルがフォーカスを取得すると、擬似クラス:focus を使用して影のスタイル (box-shadow) と輪郭のスタイル (outline) が定義されます。集中。

ラベル フローティング エフェクト スタイル

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

 .input-group>label {

      ...

 

      -webkit-transform-origin: 0 0;

              transform-origin: 0 0;

      -webkit-transform: translate3d(0, 0, 0) scale(0);

              transform: translate3d(0, 0, 0) scale(0);

      -webkit-transition:

          opacity 0.3s,

          visibility 0.3s,

          transform 0.3s,

          z-index 0.3s;

           

              transition:

                  opacity 0.3s,

                  visibility 0.3s,

                  transform 0.3s,

                  z-index 0.3s;

 }

 

.input-group>input:focus ~ label {

    z-index: 1;

    visibility: visible;

    opacity: 1;

    -webkit-transform: translate3d(0, -36px, 0) scale(1);

        transform: translate3d(0, -36px, 0) scale(1);

}

ログイン後にコピー

ラベル スタイルを定義するコレクションで、その初期トランスフォーム デフォメーション エフェクトを追加し、トランジション トランジション エフェクト スタイルを設定して、入力がフォーカスを取得するタイミングを定義します。兄弟要素のラベルのスタイルを使用するだけです。

このラベルのフローティングの効果は、JVFloatLabeledTextField の効果とは異なります。前者はフォーカスを取得してラベルがすぐにフロートし始めますが、後者はユーザーがコンテンツを入力したとき (つまり、プレースホルダーが消えたとき) に開始します。

この 2 つを同じ効果にするために、疑似クラスをネストできる機能を使用し、 .input-group>input:focus ~ label を .input-group>input:focus:not( :placeholder -shown) ~ label、ここ: placeholder-shown はプレースホルダーの表示効果と非表示効果を定義できますが、その互換性はあまり良くありません。ie/edge はそれをまったくサポートしませんが、chrome、safari、Firefox はサポートします。ケース: デモ

以上がCSSのフローティングラベル入門(ケース付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

ブートストラップに写真を挿入する方法 ブートストラップに写真を挿入する方法 Apr 07, 2025 pm 03:30 PM

ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

ブートストラップのフレームワークをセットアップする方法 ブートストラップのフレームワークをセットアップする方法 Apr 07, 2025 pm 03:27 PM

Bootstrapフレームワークをセットアップするには、次の手順に従う必要があります。1。CDNを介してブートストラップファイルを参照してください。 2。独自のサーバーでファイルをダウンロードしてホストします。 3。HTMLにブートストラップファイルを含めます。 4.必要に応じてSASS/LESSをコンパイルします。 5。カスタムファイルをインポートします(オプション)。セットアップが完了したら、Bootstrapのグリッドシステム、コンポーネント、スタイルを使用して、レスポンシブWebサイトとアプリケーションを作成できます。

HTML:構造、CSS:スタイル、JavaScript:動作 HTML:構造、CSS:スタイル、JavaScript:動作 Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

H5はHTML5と同じですか? H5はHTML5と同じですか? Apr 08, 2025 am 12:16 AM

「H5」と「HTML5」はほとんどの場合同じですが、特定の特定のシナリオでは異なる意味を持つ可能性があります。 1。「HTML5」は、新しいタグとAPIを含むW3C定義標準です。 2。 "H5"は通常、HTML5の略語ですが、モバイル開発では、HTML5に基づくフレームワークを参照する場合があります。これらの違いを理解することは、プロジェクトでこれらの用語を正確に使用するのに役立ちます。

H5は何を参照していますか?コンテキストの探索 H5は何を参照していますか?コンテキストの探索 Apr 12, 2025 am 12:03 AM

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

See all articles