2012-06-27 35 views
2

我一直並且將繼續始終關閉一個HTML輸入諸如關閉HTML輸入會打破任何東西,反之亦然?

<input type=text /> 

代替非XHTML方式

<input type=text> 

但我的問題是,無論哪種方式有任何可預見的問題,即跨瀏覽器,移動設備等?我剛剛注意到我使用的框架生成的輸入沒有結束標記,我討厭我的代碼和他們的代碼有差異。這真的很煩人和醜陋。

+0

以外的代碼驗證,我不會預見任何問題,但我從來沒有做過任何徹底的測試 – jackwanders

+0

您應該閱讀[XHTML認爲有害](http://hixie.ch/advocacy/xhtml) –

+0

這不是與您的框架相關,瀏覽器將始終按照自己的意願執行任何操作:http://jsbin.com/uhenih/6/edit#preview – Mageek

回答

1

就個人而言,我從來沒有看到由於在HTML文檔中關閉空標籤而導致的跨瀏覽器問題。

但是,根據Refactoring HTML,較舊的瀏覽器(如Netscape 3)不會正確解析空元素。

這是因爲在SGML和一些HTML4解析器,有一個語法「NET」,這是類似於空標籤語法的支持:(來自XHTML Considered Harmful引述)

的「/>」空標籤語法實際上在 HTML4中具有完全不同的含義。 (這是被稱爲NET,如果我 記錯名字的SHORTTAG最小化功能)。具體而言,XHTML

<p> Hello <br /> World </p> 

...,如果解釋爲HTML4,完全等同於:

<p> Hello <br>&gt; World </p> 

...並且應該被渲染爲:

Hello 
> World 

因此,如果您使用的是HTML4 <!DOCTYPE>和targettin g Netscape 3,不要這樣做!但是如果你使用的是HTML5(或XHTML),關閉你的空標籤沒有什麼壞處 - 事實上在XHTML中你必須這麼做,否則Tim Bray會殺死一隻小狗。

+3

Lol,Netscape 3.04 Gold ... – 2012-06-27 20:32:30

0

有一個未關閉的輸入標籤仍然是有效的html,所以如果你不需要符合xhtml標準,你應該可以。

2

input標籤已經關閉很長時間,幾乎任何系統都應該能夠處理它,而無需關閉。如果您已經將文檔聲明爲XHTML,那麼它將不會驗證標記是否未關閉,並且某些XML實用程序可能在解析它時遇到困難,但Web瀏覽器被設計爲在接受它們時非常自由。

+0

除IE ...... –

+1

@RKS鏈接/明確關閉的''斷IE的例子?假設6+? (儘管6對我來說已經死了) – 2012-06-27 22:10:26