簡體   English   中英

HTML5 中的結束標記

[英]Closing tags in HTML5

在 HTML5 中用<br />關閉<br>標簽仍然合適嗎?

這顯然也適用於所有其他單個標簽。 我意識到這實際上並不影響東西的工作方式,但這里的最佳實踐是什么?

someLines of txt <br>            // How you see a lot of people doing it
and then some <br />             // XHTML style! Should I still be doing this? 
ow im not done yet.. <br> </br>  // No one does this right? RIGHT?!

來自HTMLW3C 規范

  • 以下是 HTML 中 void 元素的完整列表:

    • area , base , br , col , command , embed , hr , img , input , keygen , link , meta , param , source , track , wbr
  • void 元素只有一個開始標簽; 不得為空元素指定結束標記。

  • 開始標簽由以下部分組成,完全按照以下順序:

    • <字符。
    • 元素的標簽名稱。
    • 可選,一個或多個屬性,每個屬性前面必須有一個或多個空格字符。
    • 可選,一個或多個空格字符。
    • 可選,一個/字符,它可能只在元素是空元素時出現。
    • >字符。

由此看來,我們可以使用<br><br/> 然而,結束標記</br>無效的,所以不要用<br> </br>

通過HTML 驗證服務運行以下內容表明了這一點。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Testing void elements</title>
</head>
<body>
    some lines of txt <br>
    and then some more <br />
    I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>

所以使用<br><br/> ,只要確保你一致地使用它們。

編輯:正如 Brad 所指出的, <br />也是有效的 XHTML,所以也許最好選擇這種形式。

恕我直言,我認為最好遵守 XHTML 標准,甚至關閉@Alex 指出的所謂的void元素。 如果您的代碼也是有效的 XML,那么您可能會找到更好的工具支持來管理您的代碼

<br>  // not valid XML without a closing tag

<br /> // valid XML and I prefer this

<br></br>  // valid XML but unnecessary clutter

無論如何,如果您應該通過HTML 驗證服務運行您的代碼。 只要它是有效的,那么你就只處理編碼風格,每個人在這個問題上都會有自己的個人傾向。

[編輯]

為了澄清我的答案,我建議使用這些XHTML標頭中的任何一個...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

如果您正在為 HTML5 編碼,那么客戶端/瀏覽器應該支持嚴格的標准

更重要的是你保持一致,如果你使用<!DOCTYPE html>那么像一些人所說的那樣無效或自關閉的標簽將由解析器為你處理。

決定一種方法並堅持下去,我們決定使用 xhtml 風格的語法,但我們實際上並不使用 xhtml。 即使解析器對需要能夠理解您的標記的其他人更寬容,所以如果您有一個標准並且每個人都認同這一點,那么每個人都在唱同一張贊美詩。

為什么我們需要約定? 因為以下所有內容都是有效的:

<META CHARSET=UTF-8>        
<META CHARSET=UTF-8 />      
<META CHARSET="UTF-8">      
<META CHARSET="UTF-8" />        
<meta charset=utf-8>        
<meta charset=utf-8 />      
<meta charset="utf-8">      
<meta charset="utf-8" />        
<MeTa CHARset=utF-8>

另一件要考慮的事情是 html5 屬性,我們決定在一組屬性的末尾使用布爾樣式屬性,並始終在其他屬性周圍使用引號,例如:

<video id=“vid1” data-someting="my_val" controls>

這樣我們就不必使用冗余語法(在我看來):

<video id=“vid1” controls="controls">

僅僅因為 html5 允許我們省略結束標記,甚至是</p>標記,它並沒有使它正確。

我希望您決定使用 xhtml 'sytle' 語法以保持您的理智!

/在 html 5 中對於void 元素有效並被忽略,其中br是其中之一,所以這完全取決於你,盡管我個人會擺脫這種習慣,因為它是一個遺留的東西。 (事實上​​它是一個空元素意味着正如你所說; <br> </br>是荒謬的)

從鏈接的文章中了解 自閉合標簽后,我開始知道<br><br/><br />在 HTML5 中都有效。

但是如果你寫<br/><br />那么它們最終會被瀏覽器轉換成 HTML5 中的<br>

此外,如果您編寫<br></br>它們的瀏覽器不會產生一些錯誤,但會將其讀取為 2 個<br>標簽。

someLines of txt <br>            // This is completly valid and recommended
and then some <br />             // XHTML style! should be written like this in XHTML but in HTML5 you can just write <br>
ow im not done yet.. <br> </br>  // Even if you do this then no error will generate. Instead browser will read it as 2 <br> tags

方法如下:

<p>This is paragraph with &lt;br&gt;<br> and &lt;br/&gt;<br/> and then &lt;br /&gt;<br />.</p>
<p>closing br is wrong way <br></br> but browser read it as 2 br.</p>

它在瀏覽器中的外觀:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM