连字符后打破

我正在寻找在连字符后防止换行符-与所有浏览器兼容的个案基础。

例:

我有这样的文字: 3-3/8"在HTML中是这样的: 3-3/8”

问题在于,由于连字符的原因,在一行的结尾,它会打断并换行到下一行,而不是像完整的单词那样对待它。

3-
3/8"

我试过插入“零宽度字符”,  没有运气......

3-3/8”

我在Safari中看到了这一点,并认为它在所有浏览器中都是相同的。

以下是我的doctype和字符编码...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

连字符后面有什么方法可以防止它们断裂? 我不需要任何适用于整个页面的解决方案......只需要一些我可以根据需要插入的东西,比如“零宽度无间断字符”,除了一个可用。

这是一个演示。 简单地使框架变窄,直到连字符断开。

http://jsfiddle.net/RagKH/


尝试使用不&#8209;连字符&#8209; 。 我已经用你的jsfiddle中的那个角色代替了破折号,缩小了框架的尺寸,并且线条不再分裂。


你也可以用相关的文字包装

<span style="white-space: nowrap;"></span>

IE8 / 9使得CanSpice的答案中提到的不分段连字符长于一个典型的连字符。 这是一个连字符的长度,而不是一个典型的连字符。 这种显示差异对我来说是一个难题。

由于我无法使用由Deb I指定的CSS答案,而是选择不使用中断标签。

<nobr>e-mail</nobr>

另外我发现了一个导致IE8 / 9打破连字符的特定场景。

  • 一个字符串包含以非分隔空格分隔的单词 - &nbsp;
  • 宽度有限
  • 包含破折号
  • IE呈现这样。

    下面的代码重现了上面的问题。 IE10已经解决了这个问题,所以我必须使用元标记强制渲染到IE9。 没有小提琴,因为它不支持元标签。

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta http-equiv="X-UA-Compatible" content="IE=9" />
            <meta charset="utf-8"/>
            <style>
                body { padding: 20px; }
                div { width: 300px; border: 1px solid gray; }
            </style>
        </head>
        <body>
            <div>      
                <p>If&nbsp;there&nbsp;is&nbsp;a&nbsp;-&nbsp;and&nbsp;words&nbsp;are&nbsp;separated&nbsp;by&nbsp;the&nbsp;whitespace&nbsp;code&nbsp;&amp;nbsp;&nbsp;then&nbsp;IE&nbsp;will&nbsp;wrap&nbsp;on&nbsp;the&nbsp;dash.</p>
            </div>
        </body>
    </html>
    
    链接地址: http://www.djcxy.com/p/28231.html

    上一篇: break after a hyphen

    下一篇: Difference between CR LF, LF and CR line break types?