パソ遊 "パソコン・インターネットはおもしろい!"

問い合わせ

「パソ遊」

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つぐらい出るのはちと面白くないので・・というわけです。(ただ今、要望中)

正当なCSSです! Valid XHTML 1.1