Mozilla翻译了作为<br/> <br/> <br/>

时间:2014-01-07 08:54:03

标签: html xml xhtml browser line-breaks

我们的CMS输出的换行符为<br></br>(愚蠢,我知道,但语法上相同(?))

这会转换为chrome和IE10中的<br><br>以及Firefox中的<br></br><br></br>

所有浏览器都将其显示为两个换行符。

为什么<br></br>不像<br /><br>那样被翻译,我能做些什么? 使浏览器将<br></br>解释为一个换行符?

3 个答案:

答案 0 :(得分:3)

由HTML5规范定义:http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody(搜索页面中的文字An end tag whose tag name is "br")。

如果您的文档被解析为HTML文档,则每个结束br标记将始终被解析为好像它是一个开始标记(并创建一个没有内容的元素)。但是,如果您将文档解析为XHTML文档,<br></br>序列将生成与<br/>标记相同的DOM树。要将文档解析为XHTML文档,您必须使用application/xhtml+xml mime类型发送它。

规格中提供了更多详细信息:http://www.w3.org/TR/html5/introduction.html#html-vs-xhtml; http://www.w3.org/TR/html5/the-xhtml-syntax.html

答案 1 :(得分:2)

要回答你的问题......如果你需要快速修复,那么你的CMS似乎会输出这种可憎的......

小提琴 - http://jsfiddle.net/P6bDp/

奖励CSS选择器列表 - http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/

CSS

br + br {display: none;}

这将消除第二个<br>并留下一个换行符。修复该CMS虽然:)

答案 2 :(得分:1)

hey <br></br>在语法上不正确,您必须将其用作<br/>(请查看斜杠)。它的内联元素所以不需要像其他元素一样关闭。它自己关闭