html5这么把整体空两格,如何在HTML中为Windows呈现狭窄的不间断空格?

嗯…没有。如果唯一的问题是事实& thinsp; (U 2009)仍在打破,我宁愿使用:

以校正断裂行为。为什么?

>因为法国罚款有效地使用几乎固定的宽度,在cadratin的六分之一到四分之一之间(0.166 ca.到0.25 ca.,当标准空间是0.5 ca时)。宽度的选择取决于已经存在的方法在给定字体中定义的字形内。

>字体用于调整其稀疏空间的宽度(U 2009):如果这些字体是由法国打字机(用于渲染法语)制作的,则字体中的批注(或字母之间的间隙)比用于英语的字体窄:这是因为法语文本通常比同等的英文文本(例如印刷的圣经)包含更多的字母,并且为了避免增加打印页面的数量,法语字体中的字形缩小了一点,并且缩小了方法;为了补偿这种减少,法国的罚款增加了。 (通常认为U 2009是一个cadratin的五分之一,即0.2大约,但这是错误的,因为这个值只是一个可理解的中间值,应根据其设计有效地调整字体)。

>在英语中,英语字体之间的字符间隙已经足够大,足以证明在大多数双重标点符号附近的文本中使用不太狭窄的空间。但是,如果使用英语字体(其字符间隙较大)使用字体渲染法语,则罚款应该更窄,并且应该减少到1/6的cadratin。

>所以是的,U 2009(& thinsp;在SGML存储库)是可以轻微调整,取决于字体。

此外,它可以是部分合理的(当使用完全对齐时,不仅通常的字间距增加其宽度,而且字符和正常或“精细”空间之间的所有间隙(但是其他四边形空间不能有他们的宽度调整:他们真的是固定的)。

当您渲染其页面布局已经预先计算(使用已知字体和精确度量标准)的文档时,薄空间(U 2009)已经是您想要的(因为您不必担心破坏行为。

不幸的是,Unicode忘记分配这些四边形空间U 2000..U 2006(和稀疏空间U 2009)在断行属性中的不间断行为。

Unicode修改它的唯一方法(仅适用于纯文本文档)是在Unicode 5.1中添加另一个字符,即U 202F(NARROW NON-BREAKING SPACE),后来被赋予SGML符号名称“nnbsp”作为字符引用(但是这个命名字符实体到U 202F的映射不是任何HTML或XML标准的一部分,所以这个命名实体不应该被使用,除非你的文档在它的嵌入式DTD中明确定义它!)

但不幸的是,大多数浏览器已经忘记应用这个添加和为什么需要它们:他们假设字符应该是字体,但显然不是这样。

所有浏览器都应该将U 202F视为不间断的(这已经是这种情况,即使他们不知道UCD的内部副本中的字符)。

然而,浏览器不应该依赖于U 202F在字体中定义的事实,相反,它们应当在呈现它时提供回退到U 2009(THIN SPACE),每次U 202F没有被映射在当前字体中,而U 2009以相同的字体映射(这通常是许多字体的情况)。

所以这是HTML渲染器(即浏览器)中的问题;我也认为这不仅仅是一个字体的问题,它真的是一个BUG的浏览器(而不是一个错误或字体的限制),如果他们不提供这样的备份空白。当然,所有新的字体应该将U 202F映射到与U 2009相同的字形。

考虑到在许多字体中很好地支持了稀疏空间(U 2009,或& thinsp;),并且具有用法语印刷指标用法语文本呈现法语文本的正确宽度,或者用英语印刷指标呈现英语文本,这应该真的是正确的回退使用,每次狭窄的不间断空间不可用!

你可以完美地模拟U 202F在HTML中的期望行为,只需使用U 2009,并使其不间断使用CSS的“white-space:nowrap”。它总是比改变字体大小显示一个伪半空间(因为这是不正确的许多字体,这仍然是太大,还因为这不工作像预期的文本跨度有彩色背景:更改font-size修改行高)。

因此,请在HTML或SVG文档中使用此代码(仅对纯文本文档保留U 202F):

您可以将此序列保存在可重用的模板中,例如,您可以在MediaWiki中命名Template:nnbsp,将其在您的页面中转换为{{nnbsp}}。

注意,仍然优选的是象征性地将稀空间引用为& thinsp;而不是强制一个精确的Unicode代码点像  :命名实体可以由渲染器重新映射,或者根据用户偏好设置为另一个工作空白。

注意,MS-word真的使用U 2009而不是U 202F表示自己的罚款。这是正确的,考虑到Word文档具有预先计算的布局,并且给定MS-Word在计算页面布局本地执行不中断的行为。 Word文档不是纯文本文档。

>渲染的例子(使用背景颜色来表示没有修改行高,但不幸的是,此网站不允许设置背景颜色,除了在此处使用等宽字体的< code>部分):

Exemple de«fine»insécablefrançaisecorrectementcodée!

>同样没有< code>容器不显示背景颜色,但它使用正常的比例字体,使得瘦空间有效地呈现为thin:

Exemple de«fine»insécablefrançaise;校正codée!

>使用 的示例(NNBSP通常不支持大多数字体,但这可能最终与您当前的浏览器和安装在您的系统上的字体,如DejaVu Sans):

Exemple de«fine»insécablefrançaise;校正codée!

>使用  (第六版的CADRATIN,可能会工作,但可能太窄,您的字体,可能不展示非破坏性):

Exemple de«fine»insécablefrançaise;校正codée! (hmmm …不是真的)

>使用& nbsp; (几乎总是太大):

Exemple de«fine»insécablefrançaise;校正codée! (嗯…不是真的)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值