【问题标题】:Mozilla translates <br></br> as <br></br><br></br>Mozilla 将 <br></br> 翻译为 <br></br><br></br>
【发布时间】:2014-01-24 21:16:03
【问题描述】:

我们的 CMS 将换行符输出为 &lt;br&gt;&lt;/br&gt;(愚蠢,我知道,但语法正确(?))

这在 chrome 和 IE10 中转换为 &lt;br&gt;&lt;br&gt;,在 Firefox 中转换为 &lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;

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

为什么不把&lt;br&gt;&lt;/br&gt; 翻译成&lt;br /&gt; 或者只是&lt;br&gt;,有什么我可以做的吗 让浏览器将&lt;br&gt;&lt;/br&gt; 解释为一个换行符?

【问题讨论】:

  • br 是一个内联标签。这意味着它没有结束标签。您必须将其用作&lt;br/&gt;
  • 如答案所示,&lt;br&gt;&lt;/br&gt; 在语法上是正确的。当然,它是格式良好的 XML,所以它可以在 XHTML 中工作;不过只有真正的 XHTML,带有 xml 内容类型。但是,它是无效的。所以你的问题是,“我可以做些什么来让浏览器将
    解释为一个换行符?”是错误的问题;它实际上应该是:“我怎样才能摆脱&lt;/br&gt;?”
  • PS 如果您可以设法为文档提供application/xhtml+xml 的内容类型,您会发现它确实按预期出现。不过,它仍然应该是&lt;br /&gt;

标签: html xml xhtml browser line-breaks


【解决方案1】:

&lt;br&gt;&lt;/br&gt; 语法不正确,您必须将其用作&lt;br/&gt;(查看斜线)。它的内联元素,所以不需要像其他元素一样关闭。它会自行关闭

【讨论】:

  • 见鬼,除非你想遵守 XHTML 规范,否则即使是斜线也不需要。 HTML5 有no such requirement
  • 好吧,我想我会写一封电子邮件给 cms 的人。感谢您的帮助!
  • @MisterManSam- 同意 :) 请大家看看 Carlo Cannas 的回答
【解决方案2】:

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

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

更多详情请见规范:http://www.w3.org/TR/html5/introduction.html#html-vs-xhtmlhttp://www.w3.org/TR/html5/the-xhtml-syntax.html.

【讨论】:

  • "每个结束 br 标记将始终被解析为开始标记"。嗯,是的,这就是规范所说的。但这并不是浏览器所做的。考虑&lt;/br class="x"&gt;。结果元素将没有 class 属性。我在规范中提出了一个错误,要求澄清。
  • 请注意,HTML 5.1 spec draft 现在已被修改为表示将删除 br 结束标记上的所有属性。
  • 为了完整起见,我想留下@Alohci提交的bug的URL:w3.org/Bugs/Public/show_bug.cgi?id=24233
【解决方案3】:

回答您的问题...看到您的 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;}

这将消除第二个&lt;br&gt; 并留下一个换行符。修复那个 CMS :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多