【问题标题】:Non-breaking en dash, not a hyphen不间断的破折号,而不是连字符
【发布时间】:2020-04-10 07:53:43
【问题描述】:

我知道在 html 中有一个不间断的连字符 (#8209),但我需要一个不间断的破折号 (#8211)。它们的使用方式不同。除了在我的整个文档中使用不间断代码包装文本和破折号之外,还有其他正确的方法吗,例如:

<nobr> TEXT #8211 TEXT </nobr>

【问题讨论】:

  • 您可以尝试使用word joiner character,即&amp;#8288;,位于短划线的任一侧。
  • (关于输入&lt;nobr&gt;等而不转换成HTML:How do I insert inline code snippets on Stack Overflow?
  • 你说它们的用法不同。我非常好奇:不间断的连字符和不间断的破折号有什么区别?也许我用错了破折号?
  • @SherylHohman 连字符 (-) 是用于连接单词或部分单词的标点符号。它不能与其他类型的破折号互换。破折号比连字符长,通常用于表示范围或暂停。最常见的破折号类型是短破折号 (-) 和长破折号 (-)。
  • 酷。破折号和破折号有什么用? em/en 代表什么吗?我学到了一些东西——当我应该使用 en 或 em 更长的破折号时,我一直在使用连字符(“常规破折号”)来表示范围。我有一个网站要相应地更新:-)

标签: html hyphen


【解决方案1】:

尝试用 Word-Joiner 字符包围短破折号 (#8288)。

TEXT&#8288;&#8211;&#8288;TEXT

【讨论】:

    【解决方案2】:

    在最近的一个项目中,这个问题让我发疯了。我发现很难相信破折号默认是中断字符。如果您可以在 html 中插入额外的字符,那么 &amp;#8288; 效果很好。请注意,在破折号之后只需要一个单词连接符,因为我相信它们之前不会中断。

    出于多种原因,在我的源 HTML 中手动添加额外字符对我来说不起作用,我想出了一个 javascript 解决方案,它自动将.nobreak CSS 类应用于任何破折号和字符紧随其后。

    <style>
        .nobreak {
            white-space: nowrap;
        }
    </style>
    
    <body>
    
        <p>This is a paragraph with a number range, 1–34, and it will never break after the en dash.</p>
    
        <script>
            $("body").html(function(_, html) {
                return  html.replace(/(–.)/g, '<span class="nobreak">$1</span>')
            });
        </script>
    
    </body>
    

    一个更简单的解决方案可能是使用相同的脚本在破折号后自动插入&amp;#8288;。只需将js更改为:

    $("body").html(function(_, html) {
        return  html.replace(/–/g, '–&#8288;')
    });
    

    【讨论】:

      【解决方案3】:

      根据这个documentation,以及关于单词joiner &amp;#8211; 的其他答案,以下HTML 应该产生一个不可破坏的破折号:

      如果字符没有 HTML 实体,可以使用小数 (dec) 或十六进制 (hex) 引用。

      <p>
      Will break : 
      <br />
       TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT&#8211;TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT
      <p>
      
      <p>
      Won't break (word joiner):     
      <br />
      TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT&#8288;&#8211;&#8288;TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT
      <p>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多