独具匠心的排版改进
前端开发笔记
难度系数:★☆☆☆☆
建议阅读:任何写过前端页面的同学。
把 HTML 代码变成我们所见到的一段一段的文字,这似乎是浏览器引擎专注的内容,是 Webkit Gecko 甚至操作系统们来完成的事情。不过作为时时刻刻都在思考跨浏览器, 思考如何带给用户最完美展示效果,思考如何对齐的前端工程师们对已有的实现有着自己的执着和不满。他们用 JS 孜孜不倦的改进浏览器的排版体验,绝对是独具匠心,奇思妙想。
现在开始这个如何让文字更加好看的旅程, 分享一些前辈们的奇思妙想。
使用现有 css 标准优化排版效果
<p>标签最简单的使用方法就是把全部的文字都丢进去, 然后加上 text-indent: 2em。当然很多网站为了让排版更加的好看也会加上text-align: justify,这样文字被均匀的拉开了,自动实现两端对齐的效果。然后再加上 word-wrap: break-word让单词不会被随便折断。看起来应该蛮不错的了。
但是很遗憾,该来的还是来了。可以看到在某些平台上汉字和英文连着的部分被看成了一个整体,两个英文之间出现了丑陋的大空格。
图片: IE 下 text-align: justify 异常
看来需要人为手动的在汉字和英文之中添加上一个空格才能让他们 “分开” 了。亲手试了试,居然可以。
图片: 添加空格让中英文分开
看起来在中英文之间手动的添加空格就可以正常 justify?原来在这些平台上,text-align: justfiy处理失败的地方在于是依赖于空格的,那么中文和中文之间是无法 justify 的。 比如下图
图片: 连续的中文【甲乙】被看成一个整体,不参与 justify
所以请慎重使用 text-align: justify,最好能在不支持的平台屏蔽掉。
接下来开始介绍一些前端前辈们在排版改进上的努力成果
paranoid-auto-spacing: …