2011-12-27 16 views
0

私は自分のウェブサイトを作成しているので、私はxhtml 1.0の厳しい基準に従おうとしています。 今、validator.w3.orgは、XHTML 1.0 Strict規格に準拠して、自分のドキュメントが有効であることを検証します。ここでは、コード例です。XHTMLと自己終了タグを提供

<div style="color:#f00"><div style="color:#00f" />Text should be red and not blue</div> 

は残念ながら、FirefoxやChromeとInternet Explorerが誤った文書を解析します 彼らはすべて<、ほとんど< DIV />(私の自己終了タグの閉鎖文を無視しているように見えますli />と他のいくつかのタグ)、テキストを青色にして間違ってサイトをレンダリングします。もし私が< div />タグを< div> </div>に置き換えても、それはうまく見えます。私はそれについて読み、XHTMLなどのXML文書によると、自己閉じ

することができここでドキュメントが付属しています重要なヘッダー情報です:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
     <head> 
      <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> 

Apache2の自体がまだContent-Typeのテキストを送信します/ html、私はまだ<頭の情報がどちらかを覆すべきではあるが、.php MIMEタイプを上書きする方法はまだ分かっていない。

< div />などの自己クローズタグを一般的なブラウザで正しく解析するにはどうすればよいですか?

答えて

0

XHTMLはXMLを使用したHTMLであり、HTMLには自己表示のような自己終了タグはありません。これはXHTMLでは動作しますが、HTMLでは動作しません。これまではapplication/xml + xhtmlとしては機能していません。

コンテンツタイプのメタタグは、サーバーがページを提供する方法に影響を与えず、オフラインでのみ使用できます。したがって、サーバーまたはPHPで設定する必要があります。 PHPでこれを送信

+0

Aaaaaaaah!ありがとう! – David

0

:あなたがPHPを使用して標準のヘッダーを上書きする方法です

<?php 
header('Content-Type: application/xhtml+xml;'); 
?> 

を。 header()は出力がまだ送信されていない場合にのみ機能しますので、注意する必要があります。つまり、<?phpの部分の前に何かを置いてはいけません。つまり、あなたのサーバはすでにヘッダーとそこにあった内容の両方を送信しているので、ヘッダーは機能しません。

関連する問題