, , 在 Safari 浏览器中的替代品

 ,  ,   alternatives in Safari browser

 ,  ,  在 Safari 浏览器中损坏。

这些很薄 space、n-size space、m-size space 可以在其他浏览器中使用。

thinsp : a⟩b c d e f g

ensp : a b c d e f g

emsp : a b c d e f g

Safari 中是否有替代品?

这可能是字体问题;为所用的固定宽度 space 指定包含字形的字体可能会有所帮助。大多数字体都缺少它们。好的浏览器不需要字形,而是增加其他字符之间的间距。

但是,更可靠的方法是使用 CSS 技术来添加间距,主要是 padding 属性,对于所有字母之间需要特定间距的文本行,letter-spacing 属性。使用后者,请注意它也在最后一个字符之后添加了间距。我在 Unicode spaces 上的页面显示了“固定宽度 spaces”的定义宽度或典型宽度,例如 THIN SPACE(并非都是真正的固定宽度)。但是,根据 em 单位(字体大小),从所需间距的数量开始可能更好,而忘记固定宽度的 spaces.

另一种可能性是使用普通的 SPACE 字符,但将其包裹在 span 中并设置其宽度。这需要使它成为一个内联块。当所需的非 CSS 后备是常规 space 而不是缺少任何间距时,该方法优于上述方法。请注意,搜索引擎应该被假定为 CSS-ignorant,因此这种方法与使它们“看到”字符之间的单词 space 有关(例如,看到“foo bar”而不是“foo bar”时你想要在单词“foo”和“bar”之间有一个固定宽度的space)。和往常一样,您可以使用 NO-BREAK SPACE 而不是 SPACE 来防止换行。

示例:

.thin {
  display: inline-block;
  width: 0.2em;
}
<div style="font-size: 200%">
<div>a b (normal space)</div>
<div>a&thinsp;b (thin space)</div>
<div><span style="padding-right: 0.2em">a</span>b (0.2em padding)</div>
<div><span style="letter-spacing: 0.2em">ab</span> (0.2em letter spacing)</div>
<div>a<span class=thin> </span>b (space set to 0.2em width)</div>
<div>a<span class=thin>&nbsp;</span>b (no-break space set to 0.2em width)</div>
</div>

我想对齐表单中的框并在 span 中使用 &nbsp,在输入元素之前使用 style="padding-left: 0.7em。然后我使用 0.4em0.85em0.95em1.3em 调整每个 em 以对齐框,这些框都与不需要任何调整的输入框对齐。

这个问题似乎已经解决了。无论如何,我无法复制它。我测试了四种常见字体。这是测试页:

http://burtonsys.com/test_html_spaces.html

我没有 Apple 设备,但我使用了几个跨浏览器测试网站来检查它是否支持 Safari。所有 space 字符在 Safari 9.1.3 和 Safari 7.1 中似乎都可以正常工作。