フローティングラベル(v2)

UI コンポーネント Medium #css #form #label #floating

フローティングラベル v2 は、入力欄が空のときはラベルが枠内のプレースホルダ位置に、フォーカスや入力があると上へ小さく浮き上がるフォームです。動きは JavaScript ではなく :focus と :not(:placeholder-shown) という CSS の状態セレクタで制御しています。

▶ プレビュー

解説

フローティングラベル v2 は、入力欄が空のときはラベルが枠内のプレースホルダ位置に、フォーカスや入力があると上へ小さく浮き上がるフォームです。動きは JavaScript ではなく :focus:not(:placeholder-shown) という CSS の状態セレクタで制御しています。プレースホルダを半角スペースにしておくことで、未入力かどうかを判定しているのが要点です。

使う場面

  • 会員登録やログインのメールアドレス・パスワード欄
  • 項目数を抑えたいランディングページの問い合わせフォーム
  • マテリアルデザイン風の見た目に統一したい管理画面

ラベルが浮くときの色は :focus 時の border-color やラベルの color で、浮き上がる位置や大きさは transformfont-size で調整できます。ラベルが枠線に重なる部分は背景色で隠しているため、入力欄の背景色を変えたらラベルの background も合わせて変更します。labelforinputid を必ず対応させ、ラベルをタップしても入力欄にフォーカスできる状態を保つと操作性が上がります。

使用例・適したシーン

  • お問い合わせフォーム
  • ニュースレター登録
  • 資料請求フォーム
  • ログイン・新規登録

よくある質問

ラベルが浮く動きに JavaScript は必要ですか
不要です。:focusと:not(:placeholder-shown)というCSSのセレクタだけで制御しています。プレースホルダに半角スペースを入れて未入力判定をしている点がポイントです。
入力欄の背景色を変えると表示が崩れます
ラベルは枠線に重なる部分を背景色で隠しています。入力欄の背景を変えたら、ラベルのbackgroundも同じ色にそろえると重なりがきれいに保てます。
inspired by common pattern / 追加日:2026-05-12
← すべてのスニペットへ戻る