ホームページビルダー(v13)が吐くDOCTYPEについて

「ホームページビルダーv13でXHTMLファイルを更新するとDOCTYPE宣言が設定されているもの(デフォルトはHTML)に勝手に書き変わる」とこっちの記事で書いたけど、
最大の問題点(というかクソ仕様)はデフォルトで吐かれるDOCTYPEが後方互換モードになるやつという点だと思われる。
サイト製作初心者はレンダリングモードがどっちでも気づかないかもしれないが、
Dreamweaverユーザーが特別な事情でビルダーを使う事になった時、この罠に嵌る可能性は高いような気がした!

後方互換モードになるのはdtd(システム識別子)のないやつのこと▼

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

標準準拠モードになるDOCTYPEは最後にurlっぽい記述が入る。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

つまり、HTMLの標準準拠モードDOCTYPEで作っていても、ビルダーで更新した時点で後方互換モードに書き換えられてしまう
これが顕著に現れるのは、『IEだけ何故か左に寄っている』みたいなIEのみ現象だと思います。
そのページをビルダーで更新したならまずDOCTYPEを疑うといいでしょう。

DOCTYPEとレンダリングモードの関係については下記サイトが詳しい。
DOCTYPE スイッチについてのまとめと一覧表 (HTML 5 や IE 8 Beta 2 のモードスイッチなどの情報も含んだ 2008 年版 )

解決策

ビルダーの公式ヘルプも後方互換のDOCTYPEを紹介しているのは置いといて、
「オプション」ダイアログの [ファイル] タブにある、[DOCTYPEを出力する] のテキストエリアに入ってるソースを変更する。
で直るんだけど別の文書タイプにする際は都度変更が必要なんだと思う。

この文書型宣言は、「オプション」ダイアログで変更することも可能です。
HTML ソースで書き換えることも可能ですが、再度ホームページ・ビルダー上で当該ページを開いたときに、「オプション」ダイアログで設定されている内容に書き換えられてしまいます。フレームページで「frameset.dtd」に変更したい、など、文書型宣言内容を変更する場合は、「オプション」ダイアログで変更することをお薦めします。

どうもこの仕様はv10くらいから継承されているらしい。

Leave a Comment.