コピペで簡単! CSSのみで、フォームの入力時にフロートする入力欄のラベルを実装するテクニック

フォームの入力欄のラベルが入力時にふわりとフロートして移動するのをCSSのみで実装するテクニックを紹介します。

HTMLはinputlabelで非常にシンプル、余計なspanなどはありません。ラベルのフロートはCSSで実装されており、コピペで簡単に使用できます。

CSSのみで、フォームの入力時にフロートする入力欄のラベルを実装するテクニック

CSS only floating input labels

実際の動作は、下記ページからどうぞ。

See the Pen
CSS only floating input labels
by Stanko (@stanko)
on CodePen.

HTMLは、シンプルです。

入力欄をクリアするボタンは、SVGで実装されています。

CSSで実装する際のポイントは、疑似クラス:placeholder-shown:not()で使用することで入力欄に値があるかどうかを調べることができます。

:placeholder-shownはIEを除く、すべてのブラウザにサポートされています。

:placeholder-shownのサポートブラウザ

:placeholder-shownのサポートブラウザ

入力時にラベルをフロートして再配置するCSSは、下記の通りです。

クリアを除いた、CSSは下記の通りです。

Safariでは、inputplaceholder属性が明示的に定義されている場合にのみ:placeholder-shown疑似クラスが追加されます。placeholderが必要ない場合は、CSSで非表示にしておきます。

sponsors

top of page

©2024 coliss