私はまさにこの問題の解決策を探していましたが、少なくとも同じ問題だと思います。私もそれを解決しました。説明させてください。
ブラウザーによっては、テキスト ボックスが長すぎたり短すぎたりすることがありましたが、意図したとおりに収まることもありました。コンストラクトを使用@meadia
して、クライアント ビューポートのサイズに応じて UI をスケーリングし、スケーリングが 100% の場合にのみ完全に適合することに気付きました。これにより、別の解決策にたどり着きました。むしろ、別の問題を指摘しました。
これがすべてのブラウザーに当てはまるかどうかはわかりませんが、CSS ファイルの先頭 (CSS リセット部分) にいくつかの簡単な設定を追加し、以下を追加することで解決できました。
/***************************************************/
/* Hack to make input[type='text'] fit width of
parent element */
input {font-size: 1em;} /* omitting [type=... deliberately */
textarea {font-size: 1em;}
/***************************************************/
/* Media scaling */
* {margin: 0; border: 0; padding: 0;}
html {min-width: 300px;}
body {font-size: 80%;} /* Default */
@media (min-width: 400px) {body {font-size: 80%;}}
@media (min-width: 600px) {body {font-size: 90%;}}
@media (min-width: 900px) {body {font-size: 95%;}}
@media (min-width: 1300px) {body {font-size: 100%;}}
@media (min-width: 1800px) {body {font-size: 110%;}}
@media (min-width: 2400px) {body {font-size: 120%;}}
どうやら、スケーリングの前にフォントサイズを指定する CSS リセットを使用すると、問題が解決するようです。これも実は一理あると思います。忘れがちなことは、要素が本体から常に正しく継承されているとは限らないことです。この場合、テキスト型の入力 (およびテキストエリア) です。
width: 100%;
TD または DIV でテキストボックスのスタイルを設定していること、および も設定していることを確認してくださいbox-sizing: border-box;
。それを機能させる必要があります。
お役に立てれば。