我在为浏览器处理对齐文本从一行到另一行的不同方式进行斗争。我的文本有以下css设置:
text-align: justify;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;我的语言设置是en。不一致处理的一个词是“表示”:
Chrome: no hyphenation
Firefox: express-ing [correct!]
IE11: express-ing [correct!]
Safari: express-ing [correct!]令人费解的是,Safari能够将德语单词“Gesamtkunstwerk”连字符:
Chrome: no hyphenation
Firefox: no hyphenation
IE11: no hyphenation
Safari: Gesamtkunst-werk [correct!]我不知道Safari是如何感觉到这个词是德语的,并且是用连字符来表示的。有什么想法吗?
CSS3规范指明了一个hyphenate-resource选项,但我没有找到包含和/或编辑的示例文件。理想情况下,如果该选项在主要浏览器中得到支持,我将包括它,并希望编辑它的非英语单词以及编辑它的默认值。
什么是最好的方法?
发布于 2015-11-14 10:33:08
我在为浏览器处理对齐文本从一行到另一行的不同方式进行斗争。
方法1. CSS
有关CSS唯一的解决方案,请参见此链接。
article p{
text-align: justify;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}您已经尝试过这一点,并且发现无论浏览器版本都完全不支持Chrome,并且发现浏览器之间的结果缺乏一致性。并且可能想知道是否有一种更一致的方式来连字符,在所有的主要浏览器上都能很好的工作?
方法2. Javascript
Hyphenator.js是一种Javascript库解决方案,适用于所有主要浏览器。还有..。目前支持的语言比大多数浏览器都要多。首先,选择一种(或多种)语言,您需要在您的网站中的炒作支持,然后按照步骤和定制您自己的脚本,最后点击“创建!”它将为您创建最小化的javascript。您可以将其复制到您的hyphenate.js文件中,最后不要忘记在您想要被连字符的段落上定义类。
<head>
<script src="hyphenate.js" type="text/javascript"></script>
</head>
<body>
<article lang="nl" class="hyphen"> // in this case Dutch >> NL
<p>.......</p>
</article>
</body>注意:注意,我自定义了类,并将其缩短为连字符,而不是默认的连字符。
https://stackoverflow.com/questions/33554315
复制相似问题