【问题标题】:Dash that prevents line-break between both words防止两个单词之间换行的破折号
【发布时间】:2012-08-30 08:48:30
【问题描述】:

有什么方法可以让破折号( - )在结束一行时不会破坏单词? (就像  防止两个单词之间换行)

我目前遇到的问题是一篇博客文章(动态),其中包含 X-Ray 一词。可悲的是,它落在了一行的末尾,所以我得到了

Lorem ipsum dolor si amet X-
Ray

我想阻止这种情况,并得到这样的结果

Lorem ipsum dolor si amet
X-Ray

我不能只是<br /> 一切,因为根据您在网站上的位置,它不会到处卡在那个位置。

【问题讨论】:

标签: html


【解决方案1】:

使用最广泛的方式是<nobr>X-ray</nobr>。尽管不是任何 HTML 规范的一部分,nobr 标记仍然可以正常工作。

如今,使用不间断的连字符 U+2011(建议在其他答案中;如果您知道如何在编辑器中执行此操作并且您使用的是 UTF-8,您也可以直接输入它)几乎同样适用。不过也有风险。 Support to U+2011 在字体中不是通用的。这意味着除非您采取特殊措施来使用包含它的字体或使用合适的备份字体,否则不间断连字符很可能看起来与正常连字符不同(这主要是网络上的“Ascii 连字符”页)。

这意味着 foo-bar 和 foo-bar(带有不间断连字符)可能看起来不同,因为它们来自不同的字体。可能需要训练有素的眼睛或印刷师才能看到差异,但在某些字体组合中,差异是显而易见的。

使用nobr,就没有这个问题,因为使用的是同一个字符。这同样适用于使用<span style="white-space: nowrap">X-ray</span>,但它有点笨拙,也有点不太可靠(禁用 CSS 时不起作用)。

【讨论】:

  • 这个网站是一个wordpress,实现起来相当困难。还是谢谢。
  • 切换到HTML模式和添加标签有什么难点?
  • 我很擅长 HTML。我的客户/用户对此很烂。
【解决方案2】:

您可以使用Unicode Character 'NON-BREAKING HYPHEN' (U+2011)

HTML Entity (decimal)   ‑
HTML Entity (hex)   ‑
How to type in Microsoft Windows    Alt +2011
UTF-8 (hex) 0xE2 0x80 0x91 (e28091)
UTF-8 (binary)  11100010:10000000:10010001
UTF-16 (hex)    0x2011 (2011)
UTF-16 (decimal)    8,209
UTF-32 (hex)    0x00002011 (2011)
UTF-32 (decimal)    8,209
C/C++/Java source code  "\u2011"
Python source code  u"\u2011"

【讨论】:

    【解决方案3】:

    This site 将为您提供比您需要的更多的信息。

    –
    

    这就是你所追求的。

    【讨论】:

    • 不,它是破折号,不能保证它可以防止换行。
    【解决方案4】:

    尝试使用不间断的连字符,‑

    http://www.fileformat.info/info/unicode/char/2011/index.htm的信息

    【讨论】:

    • 正是我想要的。谢谢。
    猜你喜欢
    • 2011-08-28
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2023-03-20
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多