
独学でサイト作成に挑戦しています。
ネットと書籍しか知識を得る手段がなく、つまずくとなかなか進めません。どなたか教えて下さい。
現在の状況
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宣言を消して表示させてみると全くレイアウトがちがうのですが、現在の表示が過去互換モード、標準準拠モードのどちらにスイッチされているか分かる方法はありますか?
どなたか教えて下さい。お願いします。
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宣言は気にしなくても大丈夫だとは個人的には考えてますが賛否両論でしょうね
くわしい説明をありがとうございます。大変勉強になります。
先ほどFireFoxをダウンロードしてみました。IE6で見たxml宣言なしの場合の表示どほぼ同じレイアウトで見えました。つまり標準準拠モードという事ですね。
hepinさんのアドバイスを受け、XML宣言なしで、標準準拠モードにそったレイアウトにやり直してみようかなという気になりました。
ありがとうございました。
No.1
- 回答日時:
きれいに書きたいなら必須。
ただ、エディタがメモ帳というのは1ファイルの文字数が大きくなったら使えなくなるから違うのを探した方がいい。
オススメは K2Editor
http://k2top.jpn.org/
>メモ帳というのは1ファイルの文字数が大きくなったら使えなくなるから
知りませんでした。
K2Editor調べてみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
Dreamweaverのテンプレートから...
-
C++Builderでの開発
-
現在のDOCTYPEの主流は...
-
WEBページからのメッセージをVBAで
-
プルダウン(リストボックス)の...
-
XMLを作成してもタグしか表示さ...
-
AfterEffectsでイージーイーズ...
-
掲示板からIPアドレスってど...
-
Windowsのformでtextareaに入力...
-
VC、コンソールアプリ結果の...
-
半角ハイフンを半角スペースで...
-
JSONパース時に改行があるとエ...
-
Python 3.12.2 か一番最新のパ...
-
IEで別サイトをタブで開きたい
-
見出しを改行させることはしな...
-
高校1年生情報の問題について。
-
リンク先のURLを非表示にし...
-
ボタンコントロールのTEXT...
-
googleマップをポップアップウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
<IMG>のALIGN属性値「absmiddle...
-
AIRを使ってブラウザ上でWEBサ...
-
DeepLでエクセルのA列の英文の...
-
doc As HTMLdocumentのコンパイ...
-
ボタンをクリックした時に指定...
-
webブラウザで動作するタイマー...
-
プルダウン(リストボックス)の...
-
HTMLのバージョンの確認方法は?
-
vbaでIEを起動した後、「ログイ...
-
【CSS学習時のブラウザについて...
-
HTMLやCSSでWEBサイトをスラス...
-
ブラウザ依存のレイアウト・・...
-
起動済みのIEをハンドルから操...
-
webページの有効期限が切れてい...
-
VBA オブジェクトが必要です
-
WEBページからのメッセージをVBAで
-
VBAでgetElementByTagName
-
[JAVA]IE→Edge対応時にURLが表...
-
ブラウザの種類やバージョンに...
おすすめ情報