【问题标题】:How to insert paragraph tags on newlines without tag overlapping?如何在没有标签重叠的情况下在换行符上插入段落标签?
【发布时间】:2018-06-13 15:55:58
【问题描述】:

我有一个带有一些 HTML 标记的字符串,但没有任何段落。我想用段落标签替换换行符,但如果我这样做是“愚蠢的方式”:

html.gsub!(/\s*\n+\s*/, '</p><p>')
html = '<p>' + html + '</p>'

,然后我会得到标记重叠:

This is text. <b>Bold text.\n
Still bold,</b> now plain.

变成:

<p>This is text. <b>Bold text.</p><p>Still bold,</b> now plain.</p>

我知道 HTML5 允许重叠标签,但它仍然非常非常难看。我想得到这样的东西:

<p>This is text. <b>Bold text.</b></p><p><b>Still bold,</b> now plain.</p>

我该如何解决这个问题?

UPD。 &lt;br/&gt; 不是我需要的 - 我打算使用带有自定义解析器的 Kramdown 来从这个字符串生成 Markdown,并且在字符串中我需要每个段落的打开和关闭标记。

【问题讨论】:

标签: html ruby-on-rails ruby


【解决方案1】:

插入 HTML &lt;br&gt; 标签。它们被明确定义为没有配对结束标签的独立标签。如果 XHTML 仍然存在,它们将是&lt;br/&gt; 标签。

【讨论】:

  • 抱歉,为了进一步处理,我需要成对的标签。
【解决方案2】:

通过添加&lt;br&gt; 标签,您可以插入一个换行符。它也没有结束标签,因此无需尝试关闭它。

W3Schools - < br > Tag

更新:

如果您需要成对的标签,您可以使用 CSS 创建换行符。

HTML

<p class="break">
  Break right after this and
  <span>before this</span>
</p>

CSS

p.break {
  span {
    display: table;
  }
}

如Codepen 所示。

【讨论】:

  • 抱歉,为了进一步处理,我需要成对的标签。
猜你喜欢
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2012-12-03
相关资源
最近更新 更多