HTMLのinputタグのsize属性の値の算出法がよく分かりません。

<input type='text' name='code' size='16' maxlength='12' value='AAAAAAAAAAAA'>
のようにmaxlengthで12を指定したテキストボックスに、12文字ちょうど入力した際、適切な横幅を得る(ボックス内がスクロールせず、文字列が全て見える)ためににはsizeの値をどのように算出すればよいでしょうか。「size=文字数」と書いているサイトは多いですが、12だとアウトですよね。よろしくお願いします。(ブラウザ依存ならIEが特に知りたいです)

回答の条件
  • 1人2回まで
  • 登録:2006/12/05 19:55:25
  • 終了:2006/12/12 20:00:04

回答(3件)

id:kazu1107 No.1

kazu1107回答回数199ベストアンサー獲得回数142006/12/05 21:39:04

ポイント35pt

これ完璧に合わせるのは難しいかも・・・。

デフォルトのフォント(WindowsならMS UI Gothicかな?)はプロポーショナルフォントと呼ばれる物で、文字によって幅が違います。

たとえば「i」を12個を並べても半分ぐらいしか埋まりません。


sizeの言う1文字の幅はi最短から最長までの中間値か平均値なので、「maxlength×3÷4=size」とすると大体改善されるんじゃないでしょうか?

id:medeski_001

なるほど。

「zeの言う1文字の幅は最短から最長までの中間値か平均値」といっても、size=maxlengthだと「A」でもはみ出すので半角の中間値・平均値あたりでしょうかね。

「maxlength×3÷4=size」って減ってるじゃないデスか!「maxlength×4÷3=size」でも幅が足りないです・・・

半角「A」なら「maxlength×1.5=size」

全角「あ」なら「maxlength×2+1=size」

くらい?

2006/12/06 10:25:19
id:kazu1107 No.2

kazu1107回答回数199ベストアンサー獲得回数142006/12/06 12:31:49

ポイント35pt

すみません。。。計算式で書きたかったのはmax×4÷3です。。。

それもでだめっぽいですね。。。


多分半角文字だと「W」が一番幅を取ります。

MS UI Gothicで12文字表示するのに最適なサイズは"22"。

1文字あたりのsizeが1.8333....なので、size=max×1.8~9を適応すれば大丈夫そうです。

このサイズなら全角でも12文字入るようです。

id:medeski_001

なるほど、「W」を基準にするとよさそうですね

2006/12/08 09:07:07
id:itochan No.3

itochan🙈🙊🙉回答回数20ベストアンサー獲得回数12006/12/12 02:18:12

ポイント10pt

スタイルシートを利用するのは不可なのでしょうか?

<input type='text' name='code' size='16' maxlength='12' value='AAAAAAAAAAAA' style="width:200px;">

ピクセル単位で指定できます。

当然ですが、font-family、またfont-sizeの指定なども視野に入れないといけないと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません