2007.11.26

HTMLのバージョン宣言の違い

HTMLでは、バージョンごとに使用できる要素や属性、
要素の配置の仕方について厳密に定義されています。
これはDTD(Document Type Definition 文書型定義)をDOCTYPE宣言で
指定することで、そのバージョンの規則に合わせて表示します。

そこで、以前から開発を行っていたシステムをVisual Studioのバージョンを
変えてカスタマイズをするといった場合、注意が必要です。

新規でaspxファイルを作成する場合に、あらかじめ記述されている
HTMLのバージョン宣言がVisual Studioのバージョンによって異なります。

●Visual Studio .NET 2003
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

●Visual Studio 2005
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

たいていは以前のシステムのファイルを持ってきて、
新バージョンのプロジェクトに追加し、改修すると思いますが、
新規で作成する必要がある機能は、新規でファイルを追加して作ると思います。
その場合に、画面によって違うHTMLのバージョンが宣言されていることになります。

私が上記のような開発を行っていて、以下のようなことがありました。
隠しコントロールをTextBoxで配置する際に、widthとheightを0pxに設定しますが、
Visual Studio 2005で作成したファイルで行うと、TextBoxの枠線が見えてしまいます。
これを回避するには、styleでborder-widthを0px指定する必要がありました。

<asp:TextBox id="txtHidden" runat="server" tabindex="-1" width="0px" height="0px">
 ※このように表示される → 

<asp:TextBox id="txtHidden" runat="server" tabindex="-1" width="0px" height="0px" style="border-width:0px;">
 ※消える

他にJavaScript使用部分でもエラーが起こることがありました。
開発環境が変わる場合は、このような対策も考える必要がありますね。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
admin