2017-10-09 54 views
1

<input>沒有任何子元素,所以在我看來,正確的語法是<input/>。這在現代瀏覽器中支持嗎?我可以對輸入元素使用自閉標籤嗎?

Chrome中的快速測試看起來像Chrome將<input/>轉換爲<input>。所有瀏覽器都這樣做嗎?

+0

實際上,有效性取決於您聲明的文檔類型。 在這種情況下,/>對於HTML 5和XHTML文檔類型是有效的,並且對於HTML 4.01文檔類型無效,這就是我所認爲的 –

+0

高度相關的https:// stackoverflow。com/questions/13232121/closing-html-input-tag-issue – j08691

+0

@ChetanVasudevan doctype無關緊要。沒有任何HTML規範曾要求''標籤上的結束斜線。 – Rob

回答

1

The HTML specification狀態並通過示例清楚地顯示正確的語法是<input>。儘管<input/>被允許,並且被稱爲void element,但結束斜線沒有意義,它什麼都不做,並且瀏覽器被指示忽略它。

如果您關心瀏覽器如何處理它,最好的建議是一如既往地完成規範要求的操作,並始終使用指定的且始終有效的<input>

+0

只要doctype被聲明爲HTML5,這個答案就是正確的。 –

+0

@ OrlandoMorales-Cochran無論文檔類型如何,我的回答都是正確的。沒有HTML規範曾經使用過一個結尾斜槓來代替''。 – Rob

+0

是的,無論規格如何都是正確的。我確實認爲舊規格不會像HTML5那樣忽略斜線。那是他的問題。所有瀏覽器都忽略斜槓嗎?關於瀏覽器如何處理它,從來沒有任何標準,所以它可能被不同的瀏覽器解釋。使用HTML5,瀏覽器完全忽略它。 –

0

沒有,<input/>(和<br/><hr/><image/>,等等)是HTML(所有版本)正確的語法。只是HTML5規範描述了這些XML-ism如何被寬鬆解析器忽略/恢復。另外還有<input />的貨運崇拜用法(例如,在元素名稱和斜槓字符之間留有空格,希望瀏覽器比沒有字符時更強大地忽略它)。

這些實踐提出了XHTML,希望爲HTML使用XML工具,或者同時爲HTML和XHTML創作內容,但在現代HTML中一般不鼓勵。

+0

供參考:我找不到它的參考,但老計時器說,需要在斜槓字符之前放置一個空格,以保持Netscape 4(ca 1997)將標籤解釋爲「」而不是「」。 https://webmasters.stackexchange.com/a/17200/63591 –

1

WHATWG規範要求現代瀏覽器支持void元素,儘管該規範的主要編輯器如果沒有使用XML MIME類型來調用文檔XML(並且包括自閉元素),則顯然是相反的。

Chrome和Firefox通過刪除斜槓來重寫該void標記,但Microsoft Edge沒有。

https://www.w3.org/TR/xhtml11/的規格比2010年舊。官方的生活HTML規範包括WHATWG稱之爲HTML5的「the XML syntax」,因此只要提供文檔,開發人員可能不會使用它作爲application/xhtml+xml(雖然這很少見),它有一個XML命名空間,如<html xmlns="http://www.w3.org/1999/xhtml" lang="en">

例如,根據Validator.nu,本文件中,即使它包括空隙<input/>元件,是有效的 「HTML5 + ARIA + SVG 1.1 + MATHML 2.0」:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
<title>Test</title> 
</head> 
<body> 
<p><input/></p> 
</body> 
</html> 

對我來說,這是不單純的理論或挑剔。我不得不在上一份工作中使用XML語法,否則我的工作無法完成。當我在我的網頁模板中沒有在虛線元素中包含結束斜線時,我們昂貴的企業級內容管理系統會隨意重新排列或刪除div。所以很難讓我們的CMS生成HTML 而沒有 XML語法。這讓我確信,堅持取消縮減斜線可以像堅持包含它們一樣崇高。

更多討論https://stackoverflow.com/a/3558200/1584531

+1

問題是關於HTML。您正在談論與這個問題無關的XML和XHTML,以及完全不同的規範。 HTML規範非常清晰,並給出了不需要結束斜線的示例,意味着什麼也不會被忽略。 – Rob

+0

當我打字時,我意識到你的評論並不是問題的答案。請不要在答案部分留下評論。 – Rob

+0

我編輯了我的回答,以更具體地處理OP的問題,這些問題是:1)在現代瀏覽器中是否支持''?和2)所有瀏覽器是否將''轉換爲''? –

相關問題