SVGと言えば、次世代Webの中核を担うとみなされている、クールな技術です(ほんとか?)。なんといっても、Webページに斜めの線が引けるのですから。
下の四角と斜めの罫線は、Webブラウザの幅を変更すると、ちゃんと追従すると思います。画像ではありません。
2007/1現在での、主要なWebブラウザの最新ヴァージョンによるサポートの状況は、以下のような状態です。当コンテンツで紹介する内容は、SVGとHTMLが混在することが前提なので、プラグインによるサポートは考慮にいれていません。
Webブラウザ | サポート状態 |
---|---|
Firefox 2.0 | なんとか実用になるレベルでサポート |
Opera 9 | なんとか実用になるレベルでサポート(らしい)※ |
Safari | あまり実用にならないレベルでサポート(らしい)※ |
IE 7 | 未サポート(将来はサポート予定?) MIMEタイプの application/xml+xhtml にも対応できていないところを見ると、対応するのはかなり難しそう。そもそも、標準に準拠したくてもできないのが、本音なのではないでしょうか。 IEとは別の、アプリケーションブラウザとでも云ったプログラムをリリースした方が、実現性があるのでは? |
なんと、75%ものWebブラウザが、なんらかのサポートをしているのです(数字ってすばらしい(^_^;)。
まだまだ、完璧というわけではありませんが、テトリスやフリーセルといったゲームなども、SVGとJavaScriptで実装されています。今後、キラーアプリが出てきて、「まともにSVGをサポートしないWebブラウザなんて、使えないね。」と言われるようになるでしょう、きっと。
※ (らしい)と言うのは、使ったことがないので、Web上で情報を集めただけということです。間違っていたらごめんなさい。
さて本題です。なぜ「HTMLとSVGを融合させ」たいかと言うと、やはりテキストの処理はHTMLに任せたいからです。もちろんSVGでも、テキストの処理はできますが、やはり「餅は餅屋」で、専門家に任せられるものは、任せたほうが安心です。
「くらすA」を継承して「くらすB」を作ってみました(笑)。簡単なサンプルですが、何か可能性を感じないでしょうか。UMLくらいは、問題なく書けそうです。
SVGで四角の中に文字をいれて、その文字をセンター合わせにすると言うのは、結構難儀なのですが、HTMLであればお手のものです。
私の環境(Linux+Gnome 2.14)では、拡張子がxhtml
のXMLファイルは、MIMEタイプがapplication/xml+xhtml
のファイルと認識されます。
Firefoxに、HTML+SVG(正確にはXHTML+SVG)のドキュメントを正しく表示させるためには、このMIMEタイプである必要があります。
Windows 2000でも、拡張子がxhtml
のXMLファイルは、MIMEタイプがapplication/xml+xhtml
のファイルと認識される様です。但し、これはFirefoxインストール時に、Firefox専用のファイルタイプとして登録されているようなので、そのほかのアプリケーションをインストールしている場合、どのような設定になっているかは定かではありません。
Windowsは、アプリケーションをインストールする度に、拡張子とファイルタイプの関連が変わるので、なんとも云えません。
最近のApacheであれば、拡張子がxhtml
のファイルは、コンテンツタイプをapplication/xml+xhtml
として、レスポンスしてくるので、問題なく表示できるはずです。
SVGの部分が正しく表示されない場合は、コンテンツタイプがtext/html
などになっている可能性があります。ページの情報を表示(Firefoxの場合は、マウス右クリックで「ページの情報を表示(I)」を選択)して、MIMEタイプが何になっているか、確認してください。
そもそもHTMLドキュメントとして表示されず、単なるテキストとして表示されてしまったり、ダウンロードされてしまう場合は、拡張子がxhtml
のファイルに、Webサーバが対応していない可能性があります。拡張子を、xml
に変更してみてください。
それでもダメな場合は、.htaccess ファイル(Apacheの場合)で設定するか、サーバの管理者に確認してみてください。