書式の書き込み枠における書体変更

利用者からの入力を受け取る書式の書き込み枠において、書き込まれる字の大きさを換えたいときがあります。
これがHTMLで可能であるかどうか、検討してみました。

1. FONTによる制御
ごく一般的な方法として、FONT要素に書式書き込み枠を入れることが考えられます。 しかし、FORMコントロールを、FONTに入れてしまっていいのか?
HTML 4.0 Transitional DTDで確認すると
<!ELEMENT FONT - - (%inline;)*         -- local change to font -->

 <!-- %inline; covers inline or "text-level" elements -->
 <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
実は、使えないんじゃないかと思っていたのですが… 大丈夫でした。
従って
<FONT SIZE="+3"><INPUT NAME="%name;" VALUE="一行書き込み欄を大きくします"></FONT>
<FONT SIZE=6><TEXTAREA NAME="%name;">複数行書き込み枠を大きくします</TEXTAREA></FONT>
などとするのは、
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
             "http://www.w3.org/TR/REC-html40/loose.dtd">
による限りは正当なマークアップです。
そうだ、HTML3.2では?
<!ELEMENT FONT - - (%text)*     -- local change to font -->

<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">

<!ENTITY % form "INPUT | SELECT | TEXTAREA">
ほぼ同様の扱いですね。

ただし、FONT自体がHTML 4.0 ではDeprecated となっているので、

2. STYLEによる制御
スタイルシートを用いて、次のように書く方が望ましいでしょう。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<STYLE TYPE="text/css">
<!-- 
form{
        font-size: 18pt;
}
// -->
</STYLE>
</HEAD>

<BODY>

<FORM>

<INPUT NAME="%name;" VALUE="一行書き込み欄です">

<TEXTAREA NAME="%name;">複数行書き込み枠です</TEXTAREA>

</FORM>

</BODY>
</HTML>

まとめると、


ところが、実際にやってみると、うまくいきませんでした。

 FONTSTYLE
Mac + Mozilla 3.02(PPC, EN) 無効無効
Mac + Mozilla 4.04(PPC, EN)無効無効
Mac + I.E. 3.01a(PPC, JA)無効無効

ありゃりゃ、全滅…

聞くところでは、Windows上のMozilla4では、有効なこともあるそうです。
同じ名前の製品でもWinとMacじゃ、実装が違うとったか…

結論。
FONTあるいはSTYLEを用いて、FORMコントロールを制御するマークアップは可能。
ただし、実際の効果は実装により左右される。

こんな事態を避けるために、スタイルシートができたものと理解していましたが、まだまだ不備な点が多いようです。

Copyleft:1998, 魔術幻燈
poetlabo@cap.bekkoame.or.jp