概要
Vuetifyのv-text-field
において記入される文字が大きいと、文字の表示が隠れるバグがある。ただし、そのようなバグはSafariのみに発生する。
その解決方法を提示する。
修正前
修正後
<template> <v-app> <div> <v-text-field ></v-text-field> </div> </v-app> </template> <script> export default { data: () => ({ }), }; </script> <style scoped> .v-text-field >>> input { font-size: 1.9em; padding: 0 !important; } </style>
はじめに
Vuetifyのv-text-field
において、そこに記入される文字を大きくすると、文字の表示が隠れるバグがあります。ただし、そのようなバグはSafariのみで生じます。ChromeやFirefoxではそのようなバグは発生しません。
今回はそのようなバグを解決する方法を示します。
ソースコード
vue
ファイルのstyle
箇所に次のように追加します。
<style scoped> .v-text-field >>> input { font-size: 1.9em; padding: 0 !important; } </style>
padding: 0 !important;
を追加することで、問題はいちおう解決しますが、いくつか注意点があります。
注意点
文字の大きさについて
アルファベットなどの半角英数字でしたら、font-size: 1.9em;
ぐらいでも問題ありません。しかし、次のGIFの通り、この大きさで全角文字を入力すると、Safariでは文字は隠れてしまいます。
v-text-field
のオプションにはfull-width
というものがあります。これは「入力のタイプを全幅(full-width)として指定する」オプションです。ですが、これを追加しても問題は解決されません。
全角文字でも問題なく表示するには、大きさはfont-size: 1.7em;
ぐらいが限界だと思います。
クラス表示について
今回のコードではあるファイル内のすべてのv-text-field
で、文字が大きくなってしまいます。そうではなくて、特定のv-text-field
のみに適応させたい場合、次のようにしてクラスを作れば解決可能です。
<script> <template> <v-app> <div> <v-text-field class="class-v-text-field" ></v-text-field> </div> </v-app> </template> <script> export default { data: () => ({ }), }; </script> <style scoped> .class-v-text-field.v-text-field >>> input { font-size: 1.9em; padding: 0 !important; } </style>
終わりに
フロントエンドの開発ではブラウザに依存するバグというのもあるというのがわかりました。フロントエンドの開発も大変ですね。
僕から以上