【发布时间】:2011-12-03 05:50:10
【问题描述】:
我希望在与所有浏览器兼容的情况下逐个防止在连字符 - 后出现换行符。
例子:
我有这个文本: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" />
有什么办法可以防止这些在连字符后换行吗?我不需要任何适用于整个页面的解决方案......我可以根据需要插入一些东西,比如“零宽度不中断字符”,除了一个有效的解决方案。
这是一个演示。只需将框架变窄,直到在连字符处换行。
【问题讨论】:
-
@EricLeschinski,这已经作为答案发布了:stackoverflow.com/a/12362315/594235
-
使用 charset=utf-8 您可以输入 - 一个不中断的连字符
-
@QuentinUK,对……这不是已经被接受的答案吗?
&#8209;是一个不间断的连字符。 -
‑是普通的ASCII,所以不需要utf-8。使用 utf-8 编码的页面可以放入实际字符。 - 与 - 不是同一个字符,虽然看起来一样。
-
您所写内容的正确 HTML 应为
3-3/8&Prime;或3-3/8&#x2033;。引号不是素数。如果您想要纯 ASCII 格式,只需使用直双引号 (&#x22;)。如果要以清晰易读的文本形式呈现,最好使用3<span style="font-variant: diagonal-fractions">3/8</style>&Prime;,显示“3⅜″”
标签: html css character-encoding line-breaks hyphenation