可能重複:
Why is <br> an HTML element rather than an HTML entity?爲什麼<br>是一個元素,而不是實體?
爲什麼如&br;
在HTML元素<br>
,而不是一個實體,一個換行符,?在很多方面,它似乎不適合作爲一個元素(例如,與正常的HTML元素具有不同的節點類型屬性,它與它所做的相似,就是
)。
可能重複:
Why is <br> an HTML element rather than an HTML entity?爲什麼<br>是一個元素,而不是實體?
爲什麼如&br;
在HTML元素<br>
,而不是一個實體,一個換行符,?在很多方面,它似乎不適合作爲一個元素(例如,與正常的HTML元素具有不同的節點類型屬性,它與它所做的相似,就是
)。
從spec *
br元素表示換行。
雖然換行符在視覺媒體由 物理地移動後續文本通常表示到一個新行,樣式表或用戶 劑將是導致線同樣對齊打破以不同的方式被渲染 ,例如作爲綠點,或作爲額外的間距。
br元素必須僅用於實際上是內容的 的換行符,如在詩歌或地址中。
因此,它明確指出可以將換行符設置爲其他類型,從而證明爲什麼它不是實體。它確實使我認爲應該有兩種添加換行符的方式 - 作爲實體&br;
或標籤<br>
,因此賦予作者靈活性以確定換行符是否是可調整的。上面的陳述 - 等同於在詩歌和地址中使用換行符 - 如果你問我的話,這有點粗糙。
*不知道這是否是的規範,但它肯定一個規範
這應該怎麼辦?靠魔術? '&br;'將在DTD中展開爲什麼會顯示爲換行符? – 2014-03-05 17:40:02
無論空白的大小如何,HTML中的空格都呈現爲一個字符空格。這有助於標記作者身份而不影響標記呈現。
< br/>不是顯示字符,而是當格式影響內容含義時的格式化說明符。 HTML 5規範指出,它只能用於實際上是內容的一部分的換行符,如在詩歌或地址中。「
很好的解釋。 *
'元素*被廣泛濫用於佈局目的(例如,使用'
'而不是段落的人)。 –
animuson
2012-02-06 02:36:10
我還是不太明白爲什麼這意味着它必須是一個標記 不是。正如有人在上面評論過的,如果你想讓你可以設計一個
來顯示沒有CSS(http://jsfiddle.net/XqdKE/),從而改變內容的含義。我知道在技術上這並不改變意義,因爲CSS中的變化並不是標記的變化,但是如果br應該具有依賴於它作爲新行的內在含義,那麼它應該是可變的這條路。 –
wheresrhys
2012-02-06 10:28:57
@wheresrhys - 我同意。在'
現代語義的基礎上,它是否會被髮明是值得懷疑的。我們可能會預計會使用U + 2028 LINE SEPARATOR,它可能被映射到'&br;'。但是HTML的設計很少清楚。歷史和便利起着很大的作用(例如,'
'不管字符集是什麼都可以工作),除非你能用現在的方式看到現實世界的問題,否則最好只接受它並且與它。 –
Alohci
2012-02-06 19:18:52
因爲在某些情況下,您可能希望禁用換行,並讓一切看起來一行。不能動態地將' '重新映射到別的東西,但是你可以使用css來使'
'不會換行。 – 2012-02-06 02:22:29
在這種情況下,讓我重新修改我的問題:爲什麼 不是標籤? :) – wheresrhys 2012-02-06 02:25:08
我能想到的另一件事:兼容性。 &br;似乎表示單個字符,但\ r \ n是Windoze上的正確序列,\ n適用於Linux,\ r適用於舊版Mac OS。然而,不間斷的空格字符在所有系統上具有相同的含義(並且是單個代碼點)。 – darvids0n 2012-02-06 02:26:14