【问题标题】:Preventing text from splitting over two pages防止文本分成两页
【发布时间】:2013-08-09 20:44:25
【问题描述】:

此 html 在电子书的末尾。在将html转换为mobi,然后在Kindle上预览电子书时,最后上面的文字总是在电子书中分成两页。由于这是最后一页,我想阻止此文本分页。我想我应该在这个文本代码周围添加page-break-before:avoid 或page-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>

【问题讨论】:

  • &lt;FONT SIZE=-1&gt;
  • @Mr.外星人:可能,​​但它有效。这是电子书(手机)。

标签: html css xhtml kindle


【解决方案1】:

您实际上应该使用它:

page-break-inside: avoid;

【讨论】:

    【解决方案2】:

    电子书的现状与 Donald Knuth 在发明 TeX 之前所面临的情况相似——只是更糟。这只是“流”被严重强制到页面的一个实例。 通常是明智的使用

    page-break-inside: avoid;
    

    但您不能保证这将在不同的电子书阅读器中可靠地呈现。请注意,在任何情况下,该术语都是“避免”。更令人担忧的是任何阻止标题呈现在页面底部的尝试(“寡妇”)。在这里你会认为例如

    h2 {
    page-break-after: avoid;
    }
    

    实际上会起作用,但实施方式非常多变。 Kindle 目前(2020 年)尤其令人沮丧。可以帮助您防止两页中出现难看的文本的一个技巧是:

    p {
    orphans: 3;
    widows: 3;
    }
    

    因为这会禁止在中断的任一侧写入一两行。它当然不会对寡头标题有所帮助。

    您甚至可以使用 page-break-inside 将多个您不想分隔的相关 XHTML 元素嵌入到一个 div 中:避免;属性(把它放在你的 CSS 中的一个类中),但即便如此,它的效果也是可变的。你会发现像 pandoc 这样的工具也会尽力“纠正”糟糕的事情,所以你可能需要使用 Sigil。

    另一个令人恼火的问题是图形与其标题分开的地方。有时,这里最简单的答案就是在 JPEG 或 PNG 图像中包含标题。如果您(明智地)希望满足视障人士的需求,请谨慎使用这种方法,确保您放置了适当的 alt 标签!

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

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

    我的 2c,乔博士。

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多