1

这个 html 在电子书的末尾。在将html转换为mobi,然后在Kindle上预览电子书时,最后上面的文字总是在电子书中分成两页。由于这是最后一页,我想阻止此文本分页。我想我应该在这个文本代码周围添加page-break-before:avoidorpage-break-after:avoid属性。我不确定,哪一个适合在这种情况下使用,page-break-after:avoid或者page-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>
4

2 回答 2

1

您实际上应该使用它:

page-break-inside: avoid;
于 2013-08-09T21:00:19.900 回答
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 的另一个问题是,如果您尝试将一个类放在 <p> 标记中,它将被删除。雷区!

我的 2c,乔博士。

于 2020-10-07T08:59:59.373 回答