2012-02-06 109 views
16

可能重复:
Why is <br> an HTML element rather than an HTML entity?为什么<br>是一个元素,而不是实体?

为什么如&br;在HTML元素<br>,而不是一个实体,一个换行符,?在很多方面,它似乎不适合作为一个元素(例如,与正常的HTML元素具有不同的节点类型属性,它与它所做的相似,就是&nbsp;)。

+1

因为在某些情况下,您可能希望禁用换行,并让一切看起来一行。不能动态地将' '重新映射到别的东西,但是你可以使用css来使'
'不会换行。 – 2012-02-06 02:22:29

+0

在这种情况下,让我重新修改我的问题:为什么 不是标签? :) – wheresrhys 2012-02-06 02:25:08

+0

我能想到的另一件事:兼容性。 &br;似乎表示单个字符,但\ r \ n是Windoze上的正确序列,\ n适用于Linux,\ r适用于旧版Mac OS。然而,不间断的空格字符在所有系统上具有相同的含义(并且是单个代码点)。 – darvids0n 2012-02-06 02:26:14

回答

-1

spec *

br元素表示换行。

虽然换行符在视觉媒体由 物理地移动后续文本通常表示到一个新行,样式表或用户 剂将是导致线同样对齐打破以不同的方式被渲染 ,例如作为绿点,或作为额外的间距。

br元素必须仅用于实际上是内容的 的换行符,如在诗歌或地址中。

因此,它明确指出可以将换行符设置为其他类型,从而证明为什么它不是实体。它确实使我认为应该有两种添加换行符的方式 - 作为实体&br;或标签<br>,因此赋予作者灵活性以确定换行符是否是可调整的。上面的陈述 - 等同于在诗歌和地址中使用换行符 - 如果你问我的话,这有点粗糙。

*不知道这是否是规范,但它肯定一个规范

+0

这应该怎么办?靠魔术? '&br;'将在DTD中展开为什么会显示为换行符? – 2014-03-05 17:40:02

11

无论空白的大小如何,HTML中的空格都呈现为一个字符空格。这有助于标记作者身份而不影响标记呈现。

< br/>不是显示字符,而是当格式影响内容含义时的格式化说明符。 HTML 5规范指出,它只能用于实际上是内容的一部分的换行符,如在诗歌或地址中。“

+3

很好的解释。 *
'元素*被广泛滥用于布局目的(例如,使用'

'而不是段落的人)。 – animuson 2012-02-06 02:36:10

+0

我还是不太明白为什么这意味着它必须是一个标记 不是。正如有人在上面评论过的,如果你想让你可以设计一个
来显示没有CSS(http://jsfiddle.net/XqdKE/),从而改变内容的含义。我知道在技术上这并不改变意义,因为CSS中的变化并不是标记的变化,但是如果br应该具有依赖于它作为新行的内在含义,那么它应该是可变的这条路。 – wheresrhys 2012-02-06 10:28:57

+1

@wheresrhys - 我同意。在'
现代语义的基础上,它是否会被发明是值得怀疑的。我们可能会预计会使用U + 2028 LINE SEPARATOR,它可能被映射到'&br;'。但是HTML的设计很少清楚。历史和便利起着很大的作用(例如,'
'不管字符集是什么都可以工作),除非你能用现在的方式看到现实世界的问题,否则最好只接受它并且与它。 – Alohci 2012-02-06 19:18:52

相关问题