<input>
沒有任何子元素,所以在我看來,正確的語法是<input/>
。這在現代瀏覽器中支持嗎?我可以對輸入元素使用自閉標籤嗎?
Chrome中的快速測試看起來像Chrome將<input/>
轉換爲<input>
。所有瀏覽器都這樣做嗎?
<input>
沒有任何子元素,所以在我看來,正確的語法是<input/>
。這在現代瀏覽器中支持嗎?我可以對輸入元素使用自閉標籤嗎?
Chrome中的快速測試看起來像Chrome將<input/>
轉換爲<input>
。所有瀏覽器都這樣做嗎?
The HTML specification狀態並通過示例清楚地顯示正確的語法是<input>
。儘管<input/>
被允許,並且被稱爲void element,但結束斜線沒有意義,它什麼都不做,並且瀏覽器被指示忽略它。
如果您關心瀏覽器如何處理它,最好的建議是一如既往地完成規範要求的操作,並始終使用指定的且始終有效的<input>
。
只要doctype被聲明爲HTML5,這個答案就是正確的。 –
@ OrlandoMorales-Cochran無論文檔類型如何,我的回答都是正確的。沒有HTML規範曾經使用過一個結尾斜槓來代替''。 – Rob
是的,無論規格如何都是正確的。我確實認爲舊規格不會像HTML5那樣忽略斜線。那是他的問題。所有瀏覽器都忽略斜槓嗎?關於瀏覽器如何處理它,從來沒有任何標準,所以它可能被不同的瀏覽器解釋。使用HTML5,瀏覽器完全忽略它。 –
沒有,<input/>
(和<br/>
,<hr/>
,<image/>
,等等)是HTML(所有版本)不正確的語法。只是HTML5規範描述了這些XML-ism如何被寬鬆解析器忽略/恢復。另外還有<input />
的貨運崇拜用法(例如,在元素名稱和斜槓字符之間留有空格,希望瀏覽器比沒有字符時更強大地忽略它)。
這些實踐提出了XHTML,希望爲HTML使用XML工具,或者同時爲HTML和XHTML創作內容,但在現代HTML中一般不鼓勵。
供參考:我找不到它的參考,但老計時器說,需要在斜槓字符之前放置一個空格,以保持Netscape 4(ca 1997)將標籤解釋爲「」而不是「」。 https://webmasters.stackexchange.com/a/17200/63591 –
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語法。這讓我確信,堅持取消縮減斜線可以像堅持包含它們一樣崇高。
實際上,有效性取決於您聲明的文檔類型。 在這種情況下,/>對於HTML 5和XHTML文檔類型是有效的,並且對於HTML 4.01文檔類型無效,這就是我所認爲的 –
高度相關的https:// stackoverflow。com/questions/13232121/closing-html-input-tag-issue – j08691
@ChetanVasudevan doctype無關緊要。沒有任何HTML規範曾要求''標籤上的結束斜線。 – Rob