- 締切済み
テキストボックス内の一部分だけフォントを変えるには
テキストボックス内の一部分だけ、フォントを変えるような事は出来るのでしょうか。 テキストボックス内に追加した文字を赤く、削除した文字を青く、擬似履歴機能みたいにしたいのですが、何か良い方法は無いでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
>>擬似履歴機能 所謂「更新履歴」に該当するモノなのですか? どう云った事で色変更するのかは不明ですが、ソレなら「ifream」でも使えそうなのですが、それでは駄目なのでしょうか? 「textarea」の本来の役割を考えると、目的としてる事案は使うのは良くは在りません。 ifreamに表示させるHTMLで済む話だと思いますが?
- ORUKA1951
- ベストアンサー率45% (5062/11036)
テキストボックスというものはないので、何のことかわかりません。 似たようなものとしては、<form>要素内の<textarea>ですが、「追加した文字を赤く、削除した文字を青く、」どうも違うようですね。 もしHTML中の変更箇所なら、ちゃんとした要素があります。「追加した文字を赤く、削除した文字を青く、(フォントを変えるような事)」というより、きちんとマークアップして、それをスタイルシートでどのように表示するか指定するのがまともな方法です。 仕様書ぐらいは読んでおいて欲しいな。 9.4 文書の変更に目印をつける: INS要素とDEL要素( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/text.html#edef-del ) たとえば、 <p> 州知事は<DEL>3</DEL><INS>5</INS>名の副官を任命できる。 </p> だと、普通は、3に取り消し線が入り、5にアンダーラインが入るはずです。フォントなどを変えたい場合はスタイルシートで自由にどうぞ。 下記はサンプルです。そのままメモ帳にコピーしてsample.ht,lとして保存してみてください。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <title>訂正箇所を明記する</title> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"> <!-- /* スタイルシートで表示方法を変えてみる */ del{ font-style: italic; /* 斜体にして */ color:red; /* 色を赤にして */ padding-left: 0.4em; /* 見難いので前後を少し空ける */ padding-right: 0.4em; } ins{ foint-weight: bold; /* 太字にして */ color:blue; /* 色を赤にして */ font-size: 1.1em; /* 少し大きく */ background-color: yellow; /* ついでに背景も黄色に */ padding-left: 0.4em; /* 見難いので前後を少し空ける */ padding-right: 0.4em; } --> </style> </head> <body> <h1>訂正箇所を明示する</h1> <h2>INS要素とDEL要素</h2> <p> <del title="説明が適切でないので変更した">テキストボックス内</del><ins title="説明の訂正を行う" datetime="2008,12,08">文字列</ins>の一部分だけ、フォントを変えるような事は出来るのでしょうか。 </p> </body> </html>
- yambejp
- ベストアンサー率51% (3827/7415)
テキストボックスとは何のことかによりますが、 テキストエリアをそのまま使いたいならそういうものではないので 難しいですね。 divか何かで疑似的にブロック要素を定義してみるとかが妥当でしょうか?
補足
ご回答有難うございます。 また質問の内容の不備申し訳ありません。 テキストエリア内以外の場所で、行える事は存じておりました。 現在行っていたのが、HTMLの一部の部分をクリックすると、テキストエリアにその文字が表示され、そのテキストエリアを修正すると、HTMLの所にins/delが付くような事を行っていました。 それはjavascriptで修正前と修正後の文字列を比較し、追加された文字はins 削除された文字はdel情報をつけていたのですが、今回行いたかったのは、 "あなた名前はマイケルです" という文字列を "あなたの名前はマイクです" というように、マイケルをマイクに変更した場合、 修正前、修正後のテキストエリアの情報を比較すると あなたの名前はマイ<del>ケル</del><ins>ク</ins>です。 というようになってしまいますが、 あなたの名前は<del>マイケル</del><ins>マイク</ins>です。 というようにしたいのです。 この為にはwordの履歴情報のようにどの文字を直したのかをアクション等で取得する必要がありますが、そんな事は無理かなと思って質問させていただきました。 テキストエリアの文字の一部のフォントを変える事が出来れば、マウスのアクション等でどこを選択されたか、どこを修正したかの情報を取得して、テキストボックスの内容を置き換えればそんな事が出来ないかな~なんて考えておりました。 おかしな事を言っているのは存じています。駄目元ですが、 良い知恵がありましたら、お貸しください。