【React】Material-UIのTextField要素のラベルを常にfloatさせる

Material-UI という React コンポーネントライブラリを使用しているのですが、今回はテキスト入力欄の TextField 要素のラベルを常に float させる方法についてです。

公式サイトの TextField のページを見てもらえれば分かるのですが、TextField のラベルはデフォルト状態だと、下記の画像のように Placeholder のように表示され、フォーカスが当たるとヌルっと動いて入力欄の上部に移動する、という挙動です。

が、個人的にはラベルは最初から入力欄の上部にいてほしいし、フォーカスが当たったときに動くのがあまり好みではなかったので修正しました。

 

修正方法ですが、TextFieldInputLabelProps プロパティに shrink: true を追加するだけです。
サンプルコードは下記のとおりです。

<TextField
  label="Label float"
  InputLabelProps={{ shrink: true }} />

3行目に InputLabelProps プロパティを追加し、shrink: trueを指定しました。
こちらを実際に表示したところ、ラベルが常に入力欄上部に固定されるようになりました!
なお、variant="filled"variant="outlined" 等を追加し、入力欄を枠線で囲むようなデザインの場合でも、問題なかったです。

 

以上、Material-UI の TextField 要素のラベルを常に float させる方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG