XHTML1.1について
meta要素のhttp-equiv属性は必要?
http-equiv属性についてはいろいろな方が書いていらっしゃるようで、何がいいのかわからなくなり、とりあえず試してみました。
まず、自分のサイトで確認してみた結果です。(HP-「忍者」を使用しています)
確認ブラウザ(IE6・IE8・Firefox3.0)IE7が無いのが残念ですが、
今までの書き方(XHTML 1.0 Transitional)
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
まずは、XHTML 1.1に変更(lang=も削除して)
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head>
1.今回のメインテーマ・・
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
こうして書いてあれば全てのブラウザで見える(IE6ではcssの関係で?表示が少しおかしいが・・・)
2.では、次
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
こちらでも、ブラウザ3つとも見えます。先ほどと同じですね。contentでは変わらないようです。
3.では、次
<meta name="Content-Type" content="text/html; charset=utf-8" />
これは、IE6のみ1ページ全て表示されませんでした。content=application/xhtml+xmlでも同じです。
そして、この行を削除した場合も3と同じ結果でした。
この結果からいくと「meta http-equiv」がないとIE6は表示されないようです。
IE8とFirefox3.0は有っても無くても同じ表示です。
IE7は試してませんのでどちらだかわかりかねますが・・・。
このことから、何も見えないのはサイトとしてはつらいでしょうから、http-equiv属性は残していかなければいけないんでしょうね・・多分。
サーバーによっても違うのかも知れませんが、
ちなみに、私は1にして有ります。なぜかというと、2だとW3Cの検査でエラーが出てしまうのです。
原因は表示された広告のソースコードを見るとわかるのですが、content属性が「text/html」だとdiv要素なのですが、「application/xhtml+xml」だとiframe 要素になるようなのです???・・W3Cクリックしてエラーが8つぐらい出るのはちと面白くないので・・というわけです。(ただ今、要望中)