我能使用CSS来调整文本并在行末连字符化单词吗?

13

我有一个div,它太窄了而无法使用text-align:justify(间隔太宽),但是当左右对齐时看起来不均匀,因为在行末有很大的间隙。 左对齐效果最好,但我能否像书籍中一样使用连字符?使用CSS?

3个回答

24

如果在HTML中声明了内容语言,例如使用<html lang=en-US>,则可以使用hyphens: auto

尽管浏览器支持有限,但越来越好,详见http://caniuse.com/css-hyphens

为了获得良好的质量,您可能需要通过在可能错误断字的单词中使用软连字符(&shy;)来手动控制连字。


4
Hyphenation(连字符)是与语言相关的;你不能仅仅把溢出的字符放在下一行,就像在书中一样得到相同的效果。连字符规则实际上非常复杂(参见 http://dictionary2.classic.reference.com/writing/styleguide/division.html),而且唯一正确的方法(就像在书中一样)要么是手动完成,要么是通过客户端或服务器端脚本完成;我很确定这不能仅使用css来完成。
你可能想使用类似于 http://code.google.com/p/hyphenator/ 的东西。

不,我知道连字号规则。我所指的“书籍”是指其文本被调整并且它们只是断开单词并加上连字符放在下一行,而不遵循连字号规则。我在中学时学习了连字号规则。 - user1158415
1
连字符工作正常!如果它支持您的语言。但是,如果您有3或4种语言,则脚本文件将重达200kb。还有phpPyphenator,它将在服务器上对您的文本进行连字符处理。比JavaScript文件好得多。尽管它不支持某些语言。 - Alex Reds

1
在HTML中,有一些JavaScript程序可以添加所需的连字符。例如http://code.google.com/p/hyphenator/ 浏览器内置的连字符支持不可靠,并且对其支持的改进是值得怀疑的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接