有没有理由避免使用text-align: justify;
?
是否会降低可读性或导致问题?
答案 0 :(得分:61)
首先,这纯粹是一个与设计相关的问题和解决方案。网格的设计指定是否需要对齐文本。我认为单独对齐并不会对可用性产生重大影响。使文字难以辨认的糟糕排版会降低可用性。也就是说,确保您的类型具有稳固的对比度和良好的间距平衡。字体大小也很重要。
This site是在线证明文本成功的成功尝试。由于你不能像使用InDesign那样用CSS控制字母和单词之间的空格,所以要证明文本的合理性并且没有空行的“河流”沿着你的行向下运行是很困难的,这发生在单词之间的空格时超过线之间的空格。使文本合理化的事情很难:长文字,行宽不能容纳足够的文字,文字和背景颜色之间的对比度太大;它们使河流看起来更宽更明显。
排版的理想是拥有一个偶数文本块,如果你眯着眼睛,文本块变成一个统一的固体阴影。因此,如果您在白色背景上保持大约10px和60%灰色的文本,并且具有大约20个单词的行,则对齐不应该看起来很难看。但请记住,这无助于提高可用性。小而相对较轻的文字会惹恼很多人,特别是年长的读者。
我应该注意到,­
(软连字)正确地分隔了像superawesome这样的长篇麻烦的单词,你可以模仿正确的排版(例如InDesign)。有很多东西可以帮助你做到这一点。我建议隐藏,操作和显示要在客户端完成的文本的逻辑,可能是this。
修改:正如其他人在下面提到的,css hyphens现在可以使用,但不可行(不在Chrome中)。另外,css4 offers even more control。
答案 1 :(得分:25)
text-align: justify shouldn't be used。他们不擅长处理内部的细节,输出最终包含大量河流,并且不支持hyphenation(软连字符除外)。
上面的注意是在4。5年前写的。事情正在慢慢改变...... http://caniuse.com/#feat=css-hyphens
编辑: 在这个答案的评论中引起了我的注意Hyphenator。看起来它使文本对齐值得使用,查看使用它的网站。在使用此脚本之前,您可能希望使用javascript来应用text-align justify,以便那些没有javascript的人不会被捕获。
编辑2:
CSS现在允许hyphenation具有hyphens
属性[browser support]。 PPK现在对add it to your stylesheets说,而Eric Meyer说just add it for mobile。
编辑3: A good little overview我们现在可以获得的东西,有一些SASS。
答案 2 :(得分:13)
其他人提出的关于证明对齐的问题在窄列中更为普遍。如果您的列相对于字体和其他参数的大小足够宽,则可以证明文本的合理性。假设您希望平均每行至少12到15个单词。越多越好。
答案 3 :(得分:6)
没有技术理由不 - 这纯粹是一个设计决定。很多人发现合理的文字难以阅读,但我想这取决于你的情况。虽然它适用于打印,但一般来说,网页浏览器无法对文本的最终输出进行足够的控制,以保证您所服务的内容在某些人的屏幕上看起来不像垃圾。
您最好的选择是避免辩解。
答案 4 :(得分:4)
我无法想出一个令人信服的理由,为什么不为文本辩护 - 在某一点上,内容的数量和宽度几乎要求它是合理的。当然,你会遇到包含某些单词组合的内容的问题,但在我看来,如果你看到河流和单词之间异常大的空间,你就会有一个完全不同的问题 - 可读性和清晰度。
我会不惜一切代价避免使用中心正文。我认为没有比这更好的网络设计的红旗。
答案 5 :(得分:1)
我更喜欢左对齐(text-align:left),因为它通常更具可读性。读取均匀间隔的单词也更快,所以我听到了。除非你有使用对齐的风格理由,否则请保持左,右或中心。特别是对于正文,请使用left。 (实际上,你想要另一个方向的文字“向前”(例如希伯来语)......)
答案 6 :(得分:1)
像任何网页设计问题一样......这取决于。正如所建议的那样,合理的文本通常不会在窄列中看起来很好。我建议不要将它作为侧边栏的一般规则,因为侧边栏通常很窄。
以每行经常推荐的10个单词(或高于该数字的任何数量)进行正文复制时,您可能能够使用合理的文本,并且在大多数情况下看起来相当不错,除非您使用了很多非常长的单词和/或字符串。
我认为我之前已经在StackOverflow上使用了这个网站,但是Jon Tan在他的正文中使用了合理的文本(在文章中)并且99.99%的时间看起来很棒。
答案 7 :(得分:1)
如果没有连字符,则不应使用对齐。这是一个PHP based hyphenation library,以及一个WordPress插件库的端口:wp-Typography。
答案 8 :(得分:0)
我认为它在打印上完全没问题,但是由于缺乏对间距和连字符的精细控制,它在大多数Web浏览器上都很笨拙。在某些情况下,排版人员甚至可以在字母间距或字体收缩方面略微发挥作用,因为页面/列(至少在杂志中)可以进行微调。
答案 9 :(得分:0)
呃......不......!
[严重] WordPress使用了对齐,我认为这是否是一个非常强烈的声明,无论它是否会降低可读性......
答案 10 :(得分:0)
您还可以使用text-justify:newspaper。 text-justify css标签可以帮助您控制在证明
时包装文本的方式答案 11 :(得分:0)
应该提到的是,至少版本8的Internet Explorer(至少)无法正确呈现text-align: justify
。相反,它被解释为text-align: center
。
以下是更多信息:text-align: justify
让我有些头疼,找出为什么IE保持集中的东西。也许它会节省一些时间。
答案 12 :(得分:0)
文本对齐方式可以通过多种方式完成。
定义的一对:调整单词之间的间距是“跟踪”调整字符之间的间距是“紧缩”好的布局程序会自动进行某些紧缩,并且会因字母对而异。变量va的字距可精确地比xa更紧。字距提示表中内置了良好的字体,以帮助完成此过程。
在等宽字体的早期,它是通过在单词之间插入多余的空格来完成的。这使得输出看起来很笨拙。如果行尾有4个空格,行中有6个空格,则其中4个将成为双倍空格。
Monospace字体不合理。
对于可变宽度字体,我们有em空格,en空格等,因此可以更好地分配空间。
我认为这是大多数浏览器现在所在的位置。在大多数情况下,它运作良好。为了使其正常运行,需要满足以下条件:
英语平均单词为5个字符。因此,平均而言,您将有5个字符(5个字符的单词加上空格不适合,因此会碰到下一行)
如果一行上有10个单词,则需要在每个单词间的空白处增加大约一半的标准空间。
如果最后一个单词很长,例如“头痛”,并且没有空间,那么现在您可以分配10个空间。这看起来很糟。
这是连字词典起作用的地方。断字可以通过算法来完成,但是有足够的例外可以使使用字典有很大帮助。 (对于不在词典中的单词,软连字符有一个特殊字符。)
连字符可以分割单词,使行填充更均匀。
凭经验,我认为65 em的行长是一个不错的选择。很多时候,这使每行11-13个单词。
另一种证明理由的方法是在字符之间划分空格。这样可以避免上面的一些问题,但是如果您在不足的行中分配大量空间,仍然显得很奇怪。您会时不时地在报纸上看到这一点,每个单词之间似乎有一个空格。对于更长的行,这是一个很好的论据。
好的排版程序(InDesign,* TeX,Framemaker)会在字间距中加上额外的空间,并在字符之间增加一些微小的空间。
该代码块上有一个新的孩子,text-justify可以在CSS中用于修改text-align的使用:justify。名义上它接受选项
可以使用https://caniuse.com/#search=text-justify CSS工作组https://drafts.csswg.org/css-text-3/#text-justify-property
CanIuse目前仅报告Firefox的合规性,Chrome支持它,但要求您启用实验性功能。 CanIuse声称支持是错误的。转到Chromium错误跟踪网站,声称它已修复。去搞清楚。还没测试。
其他实用点:
我对网站的样式表进行了四处更改:
结果是网站时间和每个会话的页面翻了一番。
轶事,但可能值得您自己测试。