- 締切済み
フォントサイズの変更(CSS、Javascript)
いつもお世話になっております。 スタイルシートで設定しているフォントサイズを、 <select>タグによるメニューにて、 任意のサイズに変更させる機能をつけたいと 考えています。 (メニューからフォントサイズを指定する) IEは問題ないのですが、NNだと、 まったくだめです。 NNで同じようにフォントサイズを変更するには、 どうすればよろしいのでしょうか? 問題点*********************************** IE5.01、5.5だと、問題なく変更できました。 NN4.75で行うと、だめでした。 OSはWindows(98、2000、Me)です。 記述:*********************************** <head>タグ内 <script language = "javascript"> <!-- //親フレームから、現在のフォントサイズを取得。 var changeSize = parent.fontSize; var str = "<style type=\"text/css\">"; str += "body{font-size:" + changeSize + "}"; str += "</style>"; document.write(str); function changeFontSize(TargetFont){ var Sel=TargetFont.selectedIndex; var lclFontSize = TargetFont.options[Sel].value; //親フレームに変更後のサイズを格納 parent.fontSize = lclFontSize; location.reload(); } //--> </script> <body>タグ内 <select name="OP1" onChange="changeFontSize(this);"> <OPTION value="10">10pt</option> <OPTION value="20">20pt</option> <OPTION value="20">30pt</option> </select> ****************************************** 補足: メニューで選択されたフォントサイズを取得して、 ページをreloadします。 親フレームにフォントサイズを一度格納するのは、 他の子フレームすべてにフォントサイズを対応させるためです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- selene_pl
- ベストアンサー率49% (102/207)
回答ではありませんが、少し気になったので。 >(メニューからフォントサイズを指定する) >IEは問題ないのですが、NNだと、 >まったくだめです。 これは、サイズ指定にptを使い、絶対指定しているからだと思います。 ptではなく%を使えば、わざわざスクリプトで変えさせなくても メニューから変えられるはずですよ。 ちょっと大きくしたいのであれば、font-size:110%; とかすればいいです。
ちょっと気になるのですが、質問文の中のスタイル要素の記述ではフォントサイズの値に単位が付属しないように見えますが、CSSでのフォントサイズの指定は単位をつける必要があったと思います。 正確を期すのであれば、 str += "body{font-size:" + changeSize + "pt}"; などとするか、<option>タグのvalueの値に単位を付加した方が良いと思います。 これが直接解決策になるかどうかはわかりませんが… 失礼しました。
お礼
試してみたところ、解決まではいたりませんでしたが、 単位の付加は必要だと思います。 ありがとうございます。
お礼
ありがとうございます。 >これは、サイズ指定にptを使い、 >絶対指定しているからだと思います。 NNでもpt、%、両者ともに指定できるはずです。 実際にやってみました。 >メニューから変えられるはずですよ。 ですよね~? そうしたいところなんですが、 コンテンツの仕様として、 メニュー非表示でやらなくては、 ならないんです。 結果的にうまくいきました。 body要素ってNNは対応していないんでしたっけ? body要素をはずして、 classで指定するとうまくいきました。 みなさまヒントをいただきありがとうございました。