`text-align: justify`是否均匀拉伸所有空白字符?

问题描述 投票:0回答:3

Unicode 标准中除了通常的空格和不间断空格之外还有几个水平的空白字符。我尝试将其中一些与

text-align: justify
一起使用,在我看来结果不均匀:«通常» 空间似乎太容易拉伸,而其他空间则几乎不拉伸。例如:在左对齐的段落中,我可以很容易地发现一个奇怪的空白,在合理的情况下 - 不是这样,这取决于线条所需的拉伸量。

因此问题是:网络引擎如何在各种空白字符上分配 «对齐拉伸»?算法会想到什么,比如《表意空间》《中等数学空间》等等?

css webkit typography gecko blink
3个回答
3
投票

这并不是一个真正的答案,但对你的工厂来说是一些好处。

网络浏览器中的文本对齐方式(text-justify)不稳定。要找到详细信息,您需要查看代码。截至 2020 年 1 月,我的 Chrome 浏览器似乎没有实现任何功能,但使用“播放”功能自动实现,网址为 https://www.w3schools.com/cssref/css3_pr_text-justify.asp

如果您想检查间距,请尝试在文本示例上叠加 1 em 网格。标准字间距为 1/3 em。 Knuth 算法尝试 2/9 到 1/2 em。计算机屏幕更难阅读,而且您无需为纸张付费。即使是参差不齐的右侧文本也设置得比 1/3 em 更宽。查了几页猜测,似乎是 1/2 em

良好的对齐方式同时使用字符间和单词间的间距。(注意:Knuth 避免了字符间的间距)要做好这一点的算法并不简单。在过去的糟糕日子里,'486 是一个快速处理器,桌面出版(不是 MS Word...) 开始发挥自己的作用,当您在开始时进行更改时,重排一大块文本是选择的理由咖啡。多年来,Word 只是添加了额外的整个空格。我现在不是一个单词用户,所以不能说他们是否提高了游戏水平。

我的个人经验:屏幕文本采用衬线字体,行距为 25%(12pt on 15,16pt on 20),最小行长度为 35 个字符,自动连字看起来还可以,比参差不齐的右对齐要好得多。

进一步阅读:

https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.4380111102——仅抽象,除非您付费。 Donald E. Knuth 和 Michael F. Plass,软件 - 实践和经验 11 (1981) 1119-1184 DOI:10.1002/spe.4380111102,也可在《数字印刷》第 1 章中找到。 3,第 67-155 页。试试当地的大学图书馆。

Donald E. Knuth 和 Michael F. Plass,软件 - 实践和经验 11 (1981) 1119-1184 DOI:10.1002/spe.4380111102,也可在《数字印刷》第 1 章中找到。 3,第 67–155 页。

也请参阅:http://defoe.sourceforge.net/folio/knuth-plass.html


1
投票

正如一位知识渊博的人在 Reddit 上向我解释的那样:

我只能轻松访问眨眼代码库,因为它证明了
kSpaceCharacter

kTabulationCharacter
kNewlineCharacter
kNoBreakSpaceCharacter
0x0020
0x0009
0x000A
0x00A0
)。该函数称为
NGInlineLayoutAlgorithm::ApplyJustify
  
  
据我从一些

非常简短

的测试来看,它看起来在 Firefox 中也是一样的。

进一步

我也发现它在 gecko 中是如何工作的,而且非常复杂。有一个很长的“破坏”字符列表,具体取决于页面是否以日语、中文或其他语言呈现。对于非日文/中文语言,它的工作方式几乎与眨眼完全相同。

您可以在

这里

找到它。 aLangIsCJ 基本上表示它是中文还是日文文档。


    


-2
投票
text-align: justify;

我认为这个->解决方案会对您有所帮助。在这里,我给出了多种类型的 text-align-last 你可以尝试你的内容,我认为 text-align-last: center; 可能会有所帮助, text-align: justify; text-align-last: center; /*OR*/ text-align-last: end; /*OR*/ text-align-last: left; /*OR*/ text-align-last: right; /*OR*/ text-align-last: start;

© www.soinside.com 2019 - 2024. All rights reserved.