为什么 ie 之外的浏览器都不支持 text-autospace?

2014-12-19 12:03:22 +08:00
 icylogic
w3 之前的 css3 标准 http://www.w3.org/TR/2011/WD-css3-text-20110215/#text-autospace

中文和数字, 符号以及英文之间显然应该有 space, 我看到 @Livid 给 v2ex 在标题里自动加了空格


但是我认为这个 space 不应该是由我们手动敲甚至是自动添加, 这是样式而不是内容, 那么为什么浏览器都不支持这个可以自动处理 ideograph 和 numeric, alpha 之间空隙的属性? 只有 ie 支持?

ie 下 (字体是 v2ex 自己这么 fallback 的)

使用前



使用后



已经有空格的 (对比左下角和右上角)

使用前



使用后



Firefox

5609 次点击
所在节点    问与答
43 条回复
icylogic
2014-12-19 12:06:31 +08:00
补充一下这个属性的使用, 就是说 ie 支持在 css 里直接指定

text-autospace:
ideograph-numeric
Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic numeric glyphs.
ideograph-alpha
Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.

然后 ie 会在中英文(或者数字)之间添加空白(不是空格)
riophae
2014-12-19 12:19:05 +08:00
我靠... 对 IE 刮目相看了...
不过 IE 用户有几个在意这种细节呢... →_→...
Daniel65536
2014-12-19 12:26:30 +08:00
这一点之前就知道,感觉非常赞。
就和看到Safari下划线会自动避开jq等下出头的字母一样赞。
0x1e240
2014-12-19 12:29:58 +08:00
感觉同 Word 差不多
Word 中无空格甚似有空格(空白)
icylogic
2014-12-19 12:33:39 +08:00
@0x1e240 word 和 indesign 等排版软件都会在这里加入 1/4 em 的空白
FrankFang128
2014-12-19 12:34:19 +08:00
IE 对文字的处理一直领先业界啊。
icylogic
2014-12-19 12:37:10 +08:00
@riophae 我也不用 ie,我是觉得 ff 或者 chrome,以及以设计著称 Apple 家的 Safari 应该会在这种细节问题上至少同样专业才对。就算要 anti-ms,也可以弄成一个专门的 -webkit 嘛
s51431980
2014-12-19 13:08:38 +08:00
IE在很多技术上是领先的,只是不少开发者成见太深
jakwings
2014-12-19 13:48:18 +08:00
W3C 提出的东西可能只是对未来的有组织计划,假如 Word 的翻页速度能和用手翻书一样畅快的话,我肯定会问为什么浏览器不像 Word 那么好。
Showfom
2014-12-19 13:49:30 +08:00
太赞了!我去放上!
jarlyyn
2014-12-19 13:51:14 +08:00
实际用途吧。
我觉得我写文档也不太会在中文和英文/数字之间加分隔。
一般加分隔是为了突出这个是id/日期,而和本身是字母还是汉字无关吧?
Biwood
2014-12-19 13:59:08 +08:00
还真没注意到这些细节,这个text-autospace还是第一次听说,好吧我看看效果
joyee
2014-12-19 14:04:52 +08:00
拖到CSS4了……
http://www.w3.org/TR/2012/WD-css3-text-20120119/#recent-changes

毕竟不算大众需求:a. 只有部分国家的人需要 b. 这些国家的普通用户恐怕大部分都不在意这些空格,加之标准化遥遥无期,浏览器实现的优先级自然低了……然后就浮云了
icylogic
2014-12-19 14:21:54 +08:00
@jakwings
- **未来**: 据知乎上很喜欢黑 M$ 的梁海说 IE6 就支持了, 我自己找到 MSDN 的文档里正式支持的版本是 IE8, 也就是一个 5 年前的浏览器;
- **word**: 我只是想问为什么别的浏览器在这方面不像 IE 这么好.

@jarlyyn
- 你可能没理解我说的问题, 这个问题有点像 kerning
- 是表意字符和非表意字符之间的空白, 不是分隔; 就像行间距和分割线的区别, 我们只在某些特定时刻使用分割线, 但正常的排版不会把行间距设置为0, 让上下两行紧挨.
- more: http://www.v2ex.com/t/30705 #7中 @clowwindy 的意见和我一样, 这是渲染器应该处理的问题

@joyee
我不觉得这个属性比 word-break-cjk 非主流 ...
jarlyyn
2014-12-19 14:37:02 +08:00
@icylogic 中文和英文都是表意字符吧?我只是说出为啥我觉得其他浏览器不急着支持而已……
bellchu
2014-12-19 14:44:49 +08:00
我大微软威武 IE5的时候就支持这玩意儿了
icylogic
2014-12-19 14:48:21 +08:00
@jarlyyn 怎么可能都是. 英文显然是 phonogram, 中文其实是 logogram, 不过我们一般把 CJK 都算在 ideogram 了
bellchu
2014-12-19 14:50:31 +08:00
忘了说了 这个text-autospace全称叫做-ms-text-autospace
zhouzm
2014-12-19 14:54:33 +08:00
我觉得这个不应该由浏览器处理,中英文混排问题不是浏览器一家的事儿,而是在所有文本显示、处理软件里都存在,既然无法用技术统一解决这个问题,那么用手工加空格这个规范约定大家,相比之下很容易实现。
这样文本的复制粘贴到各个软件里都是无差别的。

某种程度上来说,这个空格实际上起到的作用接近于标点符号引号。

再举个例子:
歼7 还是歼 7?
这种情况下留不留空格程序显然是无法判别的,人工处理最好。
icylogic
2014-12-19 15:04:54 +08:00
@zhouzm
- "在所有文本显示, 处理软件里都存在" 那所有的文本显示, 处理软件就都应该处理, 事实上 word 和 indesign 已经处理了
- "无法用技术统一解决这个问题" 我在问为什么 ie 解决了, 其他浏览器没解决, 怎么就变成无法解决?
- "歼7 和歼 7" 这就是 text-autospace 里的 ideograph-numeric 选项
- 这更接近于 kerning, kerning 不是标点符号

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/155083

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX