如何在不破坏包装的情况下在单词内有一个跨度?

How to have a span inside a word without breaking it on wrap?

我正在用和弦制作歌词 sheet。如果我将和弦(作为一个跨度)放在一个词中以进行精确定位,这意味着如果该行换行,该词将分成两半。我怎么能把这个词放在一起?

Fiddle: https://jsfiddle.net/96h8kfw9/

代码: CSS

.chord {
    display: inline-block;
    height: 34px;
    width: 0px;
    color: blue;
    white-space: pre;
}
.line {
    min-height: 12px;
    width: 285px;
}

.line-text {
    vertical-align: bottom;
    white-space: pre-wrap;
}

HTML

<div class="line">
<span class="line-text">
  Hello this is a line that wraps with a brok<span class="chord">C#</span>en word.
</span>
</div>

编辑: 我确实想要换行,但总的来说,一个字都不能断成两半。

尝试:

.chord {
    height: 34px;
    width: 0px;
    color: blue;
}
.line {
    min-height: 12px;
    width: 285px;
    white-space: nowrap;
}

.line-text {
    vertical-align: bottom;
}

这个怎么样?

.chord {
  vertical-align: bottom;
  white-space: pre;
}

.chord span {
  display: inline-block;
  height: 34px;
  width: 0px;
  color: blue;
  white-space: pre;
}

.line {
  min-height: 12px;
  width: 285px;
}

.line-text {
  vertical-align: bottom;
}

编辑:更新以删除白色-space:在 .line-text class 上预换行以停止 space 出现在行首。

https://jsfiddle.net/richjava/n1ro4o1a/

您可以通过在 HTML 代码中您不想打断的各个地方添加一个不打断的 space 标签来将单词放在一起:

  1. 使用&nbsp;

示例:

This&nbsp;is&nbsp;not&nbsp;A&nbsp;convenient&nbsp;but&nbsp;efficient&nbsp;way&nbsp;to&nbsp;prevent&nbsp;line&nbsp;breaks

会显示(在同一行不间断): 这不是一种方便但有效的防止换行的方法

  1. 使用<nobr> 这是一个非标准元素,但在我使用过的某些浏览器(IE、Firefox 等)中有效,而且我相信大多数情况下都适用。

<nobr> The tag should enclose the word or sentence you don't want to break</nobr>

将您想要的单词一起显示而不会中断。 希望这有帮助