有什么理由要避免使用text-align: justify;
?
它会降低可读性或引起问题吗?
Answers:
首先,这纯粹是与设计有关的问题和解决方案。网格的设计指定是否需要对齐文本。我认为仅靠align不会对可用性产生重大影响。导致文字难以辨认的不良排版会降低可用性。就是说,请确保您的字体具有扎实的对比度和间距的良好平衡。字体大小也很重要。
该站点是成功证明在线文本合理的尝试。由于使用CSS无法像使用InDesign那样几乎控制字母和单词之间的空格,因此难以证明文本的正确性,并且行中没有空白的“河流”,这在单词之间的空格发生时会发生超出行之间的间隔。使文本合理化的事情包括:长字,行宽不能容纳足够的字,以及文本和背景颜色之间的对比度过高;它们使河流显得更宽,更明显。
印刷的理想情况是要有一个均匀的文本块,如果斜视该文本块,则该文本块将成为统一的纯色阴影。因此,如果您在白色背景上将文本保持在10px左右和60%的灰色,并且行长约20个字,那么对齐对齐看起来就不会难看。但是请记住,这无助于提高可用性。小而相对较浅的文本使很多人感到烦恼,尤其是年龄较大的读者。
我应该注意,通过­
(软连字符)正确地分隔长麻烦的单词(例如超级赞),您可以模仿适当的排版(例如InDesign)。有很多东西可以帮助您做到这一点。我会建议隐藏,操作和显示文本的逻辑,也许要在客户端这样做。
编辑:正如下面其他人提到的,css连字符现在是可能的,除非不可行(在Chrome中不行)。另外,css4提供了更多控制权。
文本对齐:目前不应该在浏览器中使用对齐。它们不善于处理其中的微小细节,并且输出最终包含很多河流,并且不支持连字符(软连字符除外)。
上面的注释写于4.5年前。事情正在慢慢改变... http://caniuse.com/#feat=css-hyphens
编辑: 连字符在此答案的评论中引起了我的注意。看起来它使文本对齐成为值得使用的理由,请查看使用它的网站。您可能需要在使用此脚本之前使用javascript来应用文本对齐方式对齐,以便那些没有javascript的用户不会被抓住。
编辑2:
CSS现在允许使用属性[浏览器支持]进行连字符。PPK现在说要将其添加到样式表中,而Eric Meyer说只是将其添加到移动设备中。hyphens
编辑3: 通过一些SASS,对我们现在可以使用的内容进行了很好的概述。
不能在没有连字符的情况下使用对齐。这是一个基于PHP的断字连接库,以及该库到WordPress插件的端口: wp-Typography。
您也可以使用text-justify:newspaper。text-justify css标签可帮助您控制对齐时包裹文本的方式
text-justify
在最新版本的CSS3文本模块草稿中存在,但newspaper
不存在(可能永远不存在)的值。此外,这些CSS属性,而不是标签
应该提到的是,至少8版以上的Internet Explorer无法text-align: justify
正确呈现。而是将其解释为text-align: center
。
这是更多信息:text-align:justify
让我有些头疼,以了解为什么IE始终将内容居中。也许可以节省一些时间。
文本对齐可以通过多种方式完成。
几个定义:调整单词之间的间距是“跟踪”调整字符之间的间距是“紧缩”好的布局程序会自动进行一些紧缩,并且会因字母对而异。变量va的字距可精确地比xa更紧。字距提示表中内置了好的字体,以帮助完成此过程。
在等宽字体的早期,它是通过在单词之间插入多余的空格来完成的。这使得输出看起来很笨拙。如果行尾有4个空格,行中有6个空格,则其中4个将成为双倍空格。
等宽字体不合理。
对于可变宽度的字体,我们有em空格,en空格等,因此可以更好地分配空间。
我认为这是现在大多数浏览器所在的位置。在大多数情况下,它运作良好。为了使其正常运行,需要满足以下条件:
英文的平均单词是5个字符。因此,平均而言,您将拥有5个字符(5个字符的单词加上空格无法容纳,因此会碰到下一行)
如果一行上有10个单词,则需要为每个单词间的空隙增加大约一半的标准空间。
如果最后一个单词很长,例如“头痛”,并且没有空间,那么现在您可以分配10个空间。这开始看起来很糟糕。
这是连字字典起作用的地方。断字可以通过算法来完成,但是有足够的例外可以使使用字典有很大帮助。(对于不在词典中的单词,软连字符有一个特殊字符。)
断字可以拆分单词,使行填充更均匀。
根据经验,我认为65 em线长是一个不错的选择。很多时候,这使每行11-13个单词。
对齐的另一种方法是在字符之间划分空间。这样可以避免上面的一些问题,但是如果您在不足的行中分配大量空间,仍然显得很奇怪。您会不时在报纸上看到这一点,每个单词之间似乎有一个完整的空格。对于更长的行,这是一个很好的论据。
好的排版程序(InDesign,* TeX,Framemaker)将字间距中的多余空间与字符之间的微小多余空间组合在一起。
有一个新成员,text-justify可以在CSS中用于修改text-align的使用:justify。名义上它接受选项
CanIuse https://caniuse.com/#search=text-justify CSS工作组https://drafts.csswg.org/css-text-3/#text-justify-property
CanIuse目前仅报告Firefox的合规性,Chrome支持它,但要求您启用实验性功能。CanIuse声称支持是错误的。转到Chromium错误跟踪网站,声称它已修复。去搞清楚。还没测试。
其他实用点:
我对网站的样式表进行了四处更改:
结果是网站时间和每个会话的页面数增加了一倍。
轶事,但可能值得您自己测试。