回复8楼楼中楼吧
@贴吧包打听 :看你回复的文字那么多,读了之后才发现基本都是官方说法。
根据推送记录,亚马逊是在9月22日左右更新了“推送服务”的文件处理功能,之前推送到kindle的格式是AZW3,更新后大部分设备被推送的是KFX格式,只有KO等旧设备依然是AZW3。排版出现变化的只有KFX,AZW3依然保持原样式,基本可以确定,是KFX对CSS要求更严格以及因此产生的BUG造成的排版显示变化。
下面我提几个已经确认了的问题:
1.嵌套缩进问题:前面已有人提到,本来CSS中设定缩进2em的嵌套段落(即被DIV或Blockquote等包含在内的段落),会只显示1em的缩进。这点确定是BUG,不是优化。
2.百分比高度问题:指的是以前的(AZW3中)百分比的margin-top基本能按照预想中实现与顶部位置的位移,比如值为50%时,大体上就是屏幕中间位置。更新后这个高度被加大了,50%显示到屏幕的底部(跟以前的80%差不多)。这个问题产生的原因是(只能说是感觉,无法确认),以前按照屏幕宽度(即CSS中规定的元素宽度,与字体大小无关)计算百分比,更新后似乎跟当前元素的字体大小发生关联了(即字体大小变化造成的元素高度变化),以至于标题等大文字的margin-top产生巨大变化。这个不确定是BUG还是KFX的优化,个人认为是前者。一般使用百分比高度是为了兼容性(比如同样的样式可以适配多种阅读设备),这次更新后,还是老老实实用rem或者空行“自造”距顶效果。
3.链接下划线隐藏失效问题:kindle设备一直对CSS样式表中隐藏链接的下划线无效,需要在<a>标签内用style才能实现。更新后就连标签内的style设置都失效了,也就是说根本无法隐藏了。这点确定是BUG。
4.楷体失效问题:以前可以在font-face里列出所有可能的字体,做成字体列表,font-family里只要调用这个列表的名称(如font-family: "kt";)即可。更新后楷体失效,必须在font-family里加上中文"楷体"(即font-family: "kt","楷体";),才能正确显示楷体,即使加字体名称也无用(即font-family: "kt",STKai;),而黑体和宋体则正常。这点可以确定是BUG。
5.弹注全屏显示:以前弹注只在屏幕下方三分之一处弹出,更新后则更具内容多少而定。内容较少可以单行显示完的,在屏幕下方弹出,内容较多无法单行显示完的,则全屏显示注释,超过一页时切换方式改为翻页。另外,内容多少跟字号大小相关,字号越大越容易全屏。这点可以确定是优化!
6.首页即封面:以前无论content.opf中的guide是否有start项,打开后都不显示图片封面,而是直接显示封面之后的页面(或start指定的页面),更新后则直接显示图片封面(无论是否指定start页面)。这点不知道是更新后的KFX造成的,还是固件更新造成的,因为影响不大,所以没具体测试。
还有其他一些小变化或问题,但影响不大,就不一一列举了。要说明的是,9月22日以前推送到服务器的电子书,基本没有影响,影响的只是9月22日之后推送的。我们所说的影响,指的是同样的CSS样式,9月22日前后推送所造成的显示变化,而不是CSS是否标准的问题(不标准的以前就无法正确显示)。
可以确定的是,这是亚马逊服务器对文件的处理机制做出了改变,以后会以KFX作为推送的主要格式,以取代KF8标准的AZW3,就像更早以前KF8标准的AZW3取代KF7标准的MOBI。
另外,这次服务器更新后影响的只是推送,而本地生成的AZW3或MOBI不受影响,懒得修改排版样式的话,可以自己转换后手动发送到kindle设备。