防止文本分割超过两页

时间:2013-08-09 20:44:26

标签: html css xhtml kindle

这个HTML是电子书的结尾。当将html转换为mobi,然后在Kindle上预览电子书时,上面的文本总是在电子书中分成两页。由于这是最后一页,我希望阻止此文本拆分页面。我想我应该在page-break-before:avoidpage-break-after:avoid属性的文本代码中添加。我不确定哪一种适合在这种情况下使用,page-break-after:avoidpage-break-before:avoid

<hr/>
<div>
<FONT SIZE=-1>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</FONT>
</div>
</body> 
</HTML>

例如,我应该使用此示例,还是page-break-before:avoid

<div style="page-break-after:avoid"></div>
<hr/>
<div>
<FONT SIZE=-1>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</FONT>
</div>
<div style="page-break-after:avoid"></div>
</body> 
</HTML>

2 个答案:

答案 0 :(得分:1)

你应该实际使用它:

page-break-inside: avoid;

答案 1 :(得分:0)

电子书的状态类似于Donald Knuth发明TeX之前所面临的状态,但情况更糟。这只是“流”被严重强制到页面的一种情况。使用 通常是明智的选择

page-break-inside: avoid;

,但是您不能保证这将在不同的电子书阅读器中可靠地呈现。请注意,无论如何,该术语为“避免”。试图阻止标题在页面底部呈现的任何尝试(“丧偶”),都充满了烦恼。在这里,您可能会认为

h2 {
page-break-after: avoid;
}

确实可以工作,但是实现方式却变化很大。 Kindle目前(2020年)尤其令人沮丧。一种可帮助您防止在两页上显示难看的文本的技巧是:

p {
orphans: 3;
widows: 3;
}

因为这会禁止在中断的任何一侧写入一行或两行。寡妇头当然不会帮忙。

您甚至可以使用page-break-inside在div中嵌入多个不想分离的相关XHTML元素:属性(将其放入CSS的类中),但即使这样,其效果也是可变的。您会发现pandoc之类的工具也尽最大努力纠正错误,因此您可能需要使用Sigil。

另一个令人烦恼的问题是,将图形与其标题分开。有时,这里最简单的答案就是将标题包含在JPEG或PNG图像中。如果您明智地希望照顾视障人士,请谨慎使用此方法,以确保您放入适当的alt标签!

Kindle的另一个问题是,如果您尝试将一个类放在

标记中,它将被删除。一个雷区!

我的2c,乔医生。