2012-12-09 28 views
1

可能重複:
How to replace   with   in an html file問題與DOCTYPE聲明

我用我的html文件在以下DTD。但是,當頁面在瀏覽器中呈現最後2個字符]>時,在頁面中可見。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [ 
    <!ENTITY nbsp "&#160;"> ] /> 

有人能告訴我這個聲明有什麼問題嗎?

+1

你爲什麼在2012年使用DTD?只需使用'<!DOCTYPE html>' –

+2

爲什麼你要重新聲明一個已存在的實體? – BoltClock

+1

@BoltClock - 大概是因爲' '在XML中不存在,所以它在聲明爲XHTML的標記中的使用將在驗證器中失敗。 – Alohci

回答

4

一個validator將顯示你在DOCTYPE聲明語法錯誤。將/關閉。它不是一個自閉的元素標籤。

另請注意,至少在text/html中,瀏覽器與SGML和XML將Doctypes作爲魔術字符串來確定Quirks/Standards模式,而不是它們的預期用途。我不會自定義application/xhtml + xml之外的DTD。

+0

但在刪除/最後,]>字符仍然可見 – user1740381

+0

@ user1740381 - 您是否將該文檔作爲「application/xhtml + xml」提供? – Quentin

+0

不,我不是以application/xhtml + xml的形式提供文檔 – user1740381

2

不要再使用這種東西了。

只需使用

<!DOCTYPE html> 

,讓您的文檔被解釋爲HTML5。

this presentation from the MDN

+2

XHTML噩夢? XHTML 2.0甚至從未將它納入標準,沒有人使用XHTML 1.1,而XHTML 1.0已經得到了很好的... – BoltClock

+1

...和XHTML5也能很好地工作。 – Alohci