有没有什么 hack 方法能为中文实现 justify 的文本对齐方式?

2010-10-26 02:28:13 +08:00
 lianghai
因为中文不用空格断词,所以目前浏览器都无法根据 CSS 属性 text-align: justify; 来让中文实现 justify(Word 管它叫“两端对齐”,而 InDesign 叫它“双齐末行齐左”)的文本对齐。于是要实现整洁的文本块排版真是太难了。

CSS3 里有引自 IE 的一个 NB 属性,看着就眼馋,但暂时没有见到 IE 之外的浏览器对其支持:
http://www.w3.org/TR/css3-text/#text-justify

我猜应该会有个人制作的 JavaScript 解决方案吧,可是先后搜过两三次,都没有找到。
能找到的相关的只有这些:

强大的西文 hyphenation 方案: http://code.google.com/p/hyphenator/
优美的 typography 全明星算法 demo: http://www.bramstein.com/projects/typeset/flatland/
还有一个很“暴力”的看上去是那么回事的方案: http://www.heychinaski.com/blog/2009/01/17/character-justification-using-jquery/

难道活跃的充满 typography 狂人和高手的中文互联网(或者日文、韩文互联网也成啊……)就没人搞定这个问题吗?…… @_@
5155 次点击
所在节点    CSS
2 条回复
GordianZ
2010-10-26 03:00:17 +08:00
除了中西文混排和半角符号的情况,一般不会出现不对齐的情况啊。
需求不如西文justify对齐来得急切,所以解决办法比较少也很正常嘛。
lianghai
2010-10-26 03:10:25 +08:00
@GordianZ 嗯但是对许多人来说,其实中文和半角引号、阿拉伯数字、拉丁字母及西文标点等等宽度不为 1 em 的字符混排的情况实在有点常见……
而且对于精益求精的日本 typography 高手来说,对混排后 justify 的要求应该很强盛吧,只是我没法用日语搜这个了……
呼,快一点了,睡觉了……

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

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

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

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

© 2021 V2EX