• ベストアンサー

Shift-JISでxml宣言するべき?

独学でサイト作成に挑戦しています。 ネットと書籍しか知識を得る手段がなく、つまずくとなかなか進めません。どなたか教えて下さい。  現在の状況 XHTML 1.0 Strictで記述 文字コードはShift-JIS(Windowsのメモ帳使用) ブラウザはIntrenet Explorer6のみ xml宣言ありである程度レイアウトを進めてきましたが、 >XML は文字コードのデフォルトが UTF-8 で、その場合 XML宣言を記述しなくてもよく、それ以外の文字コードを利用する場合は、原則として XML 宣言に charset 記述が必要。ただし、xhtml1.0 の場合、仕様書の第2版で "上位のプロトコルで文字コードを指定すれば XML宣言はなくてもよい" となったそうです。 という記述を見て、xml宣言のありなしを悩んでいます。 ○できればIE6でも標準準拠モードで表示させたい。 ○UTF-8対応のエディタもいまいち分からないので出来ればShift-JISで記述したい。 今の状態から単純にxml宣言を消して表示させてみると全くレイアウトがちがうのですが、現在の表示が過去互換モード、標準準拠モードのどちらにスイッチされているか分かる方法はありますか? どなたか教えて下さい。お願いします。

  • HTML
  • 回答数2
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • hepin
  • ベストアンサー率50% (2/4)
回答No.2

XHTMLで制作するつもりであれば、文法的にXML宣言はあった方がいいです。 その場合は <?xml version="1.0" encoding="shift_jis"?>としてあげます これでSJISでの記述が可能です 問題は宣言した後の挙動についてなんですが、yoopingさんが感じているように、IE6ではドキュメントタイプ宣言より前に文字がある場合、後方互換モードになるバグがあります。 つまりXML宣言をすると強制的にIE6の後方互換モードになってしまうわけですね それで何故レイアウトが全く違うのかというと、IE6の後方互換モードには、更にボックスモデルに対する解釈にバグがあり 幅にボーダーとパディングを含んでしまいます。 つまり標準準拠モードでCSSレイアウトを行うと、根本的なボックスモデル解釈が異なる為、レイアウトが著しく崩れます。 これはIE6のバグなので、FireFoxなど比較的CSS準拠のブラウザで見た場合は問題ありません。 逆にIEで問題ないように作成すると正常のレンダリングを行うブラウザではレイアウトが崩れます。 この対応策としては、widthとborderやmarginやpaddingを同時に指定しないという方法が一般的ですが、その状態でウェブ標準を突き詰めると幾つもの壁にぶちあたります・・・ なので、XML宣言を捨てて標準準拠モードで記述するか 頑張ってXML宣言をした状態で各ブラウザで標準表示されるようにするかといった選択になると思います。 趣味レベルでしたらXML宣言は気にしなくても大丈夫だとは個人的には考えてますが賛否両論でしょうね

yooping
質問者

お礼

くわしい説明をありがとうございます。大変勉強になります。 先ほどFireFoxをダウンロードしてみました。IE6で見たxml宣言なしの場合の表示どほぼ同じレイアウトで見えました。つまり標準準拠モードという事ですね。 hepinさんのアドバイスを受け、XML宣言なしで、標準準拠モードにそったレイアウトにやり直してみようかなという気になりました。 ありがとうございました。

その他の回答 (1)

noname#39970
noname#39970
回答No.1

きれいに書きたいなら必須。 ただ、エディタがメモ帳というのは1ファイルの文字数が大きくなったら使えなくなるから違うのを探した方がいい。 オススメは K2Editor http://k2top.jpn.org/

yooping
質問者

お礼

>メモ帳というのは1ファイルの文字数が大きくなったら使えなくなるから 知りませんでした。 K2Editor調べてみます。ありがとうございました。

関連するQ&A

  • XHTML1.1でのXML宣言とDTD宣言の書き方

    XML宣言によるレイアウトの崩れ等の質問はありましたが今回の質問と同じ内容は私には見当たらなかったため質問させて頂きます。 XHTMLでのXML宣言を <?xml version="1.0" encoding="utf-8"?> と記述しています。 上記の記述と <?xml version="1.0" encoding="UTF-8"?> とで、文字コードの大文字か小文字かの違いだけなのですがどちらの方が良いのでしょうか。 同じくDTD宣言を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> と記述しています。 XMLでは大文字と小文字を区別して扱うため必ず半角で書かなければならないとされていますが、XHTMLでマークアップされているサイトのソースを見るとどこもXML宣言での文字コードとDTD宣言では大文字が使用されています。 細か過ぎるというのは分かっているのですが厳密にはどのような記載が正しいのでしょうか。 ※今回投稿カテゴリーの小カテゴリーにて”XML”を選択致しましたがXHTMLについての質問の場合”XML”と”HTML”どちらにするべきでしょうか。 合わせてご返答、又はご意見を頂戴できれば幸いです。

    • 締切済み
    • XML
  • XHTMLのXML宣言

    XHTMLで、XML宣言は必ず記述しなければならないのでしょうか? 「XML宣言なし」の場合、互換モードになると書いてあったので互換モードにする場合は逆にXML宣言を記述してはいけないということでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • xml宣言の文字コード変更

    xhtmlとcssでのコーディングを行った際、途中で「UTF-8」で作成してと言われました。 そのため、作成していたコードの冒頭をshift_jisからUTF-8にかきかえてみたところ、文字化け。ブラウザの表示をUTF-8に変えても化けたままなので、作業にならんと宣言をshift_jisに戻しました。 が、書き換えても文字化けが直りません。 宣言自体を消して保存しなおしたりもしたのですが、以前文字化けたままです。 テキストエディタで見るとちゃんとshift_jisになっているのですが、 これはどうすれば直るものなのでしょうか? 手を入れたのは以下の二行になります。(抜き出してるだけですので実際はheadタグ等を挟んでいます) 初期 <?xml version="1.0" encoding="shift_jis"?> <meta http-equiv="content-type" content="text/html; charset=shift_jis" /> ↓ UTF-8に書き換え <?xml version="1.0" encoding="UTF-8"?> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> ご教授ねがいます。

  • XHTMLでサイトを作る時の文字コード

    今までHTML4.01+cssでいくつかサイトを作ってきましたが、今回初めてXHTML1.0+css2.0を使ってとある会社のサイトを作成することにしようと思います。 そのサイトは、WinのIE6とIE7、MacのFireFox3でレイアウトが同じになるように作成する必要があります。 そこで、IE6の「DOCTYPE宣言の前にxml宣言をいれると互換モードになる」という問題を回避するため、xml宣言を外し、標準モードで作成しようと思うのですが、文字コードがshift_jisなのが気がかりです。 開発環境上shift_jisまたはeuc-jpにしておきたいのですが、UTF8かUTF16でない場合はxml宣言での文字コード宣言が必要と書いている書籍が多かったのが不安の元です。 ただ、別にかまわないと書いているサイトも見受けられました。 xml宣言をなくしても問題はないでしょうか。

    • ベストアンサー
    • HTML
  • IE6でのxml宣言について

    IE6で先頭にxml宣言をいれると後方互換モードに切り替わってしまいますが、xml宣言をとらずに標準モードにする方法はないですか? utf-8の場合は省略できるというのはわかっていますが、これ以外の方法でお願いします。

    • ベストアンサー
    • HTML
  • XHTMLで書いて、XML宣言を書くとバグるブラウザはIEだけ?

    IEで、XHTMLを書いたとして、「XML宣言あり」だと、標準モードでなく互換モードで表示しようとして、ページがみられないというバグがあると思います。 参考 http://cssbug.at.infoseek.co.jp/detail/winie.html XHTML(XML宣言あり): 互換モード(この動作はバグです) で、他のブラウザで、XHTMLで書いて、XML宣言を書くと同様にバグるブラウザは存在するのでしょうか? なお、ケータイのUA、あるいはもっと言えば海外のUAも考慮に入れています・・・が、わかる範囲でおこたえいただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • XML宣言の省略、文字コード指定について

    今、WEBの事を勉強している身です。 "XML 宣言が省略されると,文字コードセットは UTF-8 または UTF-16 になる。"という記述がされた解説サイトを目にしました。 もし文字コードをUTF-8にしたいとして、XML宣言を省略する場合は、 <head>タグ内に「<meta http-equiv="Content-Type" content="text/html; charset=utf-8">」という文字列を記述しなくてもよいのでしょうか? 記述した方がよいかもしれませんが、記述しなくても問題無いのでしょうか?

  • XML宣言を無くすと、どうなりますか・・・?

    こんにちは。 XHTMLを本、インターネットで勉強しながら、ホームページを作っています。 その中で、いくつかの本とサイトが「XML宣言をするとIE6より古いブラウザは後方互換モードになり、CSSを使ったデザインが大きく崩れる原因となる」というような事を書いていた為、XML宣言を省略してホームページを作成しました。 ところが、「XML宣言は必須」のような事が書いてあるサイトもありました。 そこで質問ですが、XHTMLでXML宣言がされていないと、どうなるのでしょうか・・・? 例えば、XML宣言をした場合のように、あるブラウザで見た目が変になると言う事は無いのでしょうか。 回答よろしくお願いしますm(__)m

    • ベストアンサー
    • HTML
  • Shift_JISやeuc-jpで宣言するメリット

    ソースの文字コードの宣言はUTF-8が主流なのに Shift_JISやeuc-jpで宣言するメリットはるのですか? ブラウザによるのでしょうか? サーバーによるのでしょうか?

    • ベストアンサー
    • CSS
  • xhtmlにxml宣言を行うと表示が崩れます。。。

    現在xhtmlでページを作成しているのですが、xhtmlにはxml宣言が必要ということで、<?xml version="1.0" encoding="UTF-8"?>を挿入しました。 しかし、この宣言を入れると表示が崩れてしまいます。左右autoのセンター表示が左に寄ったり、boxのサイズが変わったりと・・・。 何が原因かもわからずに困っています。 何方かアドバイスいただけたら幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう