【发布时间】:2019-03-15 14:29:14
【问题描述】:
我正在尝试将印刷书籍中的文本转换为 HTML5,但同时我正在尝试保持其主题和页面/段落/行布局结构完全不变。例如,印刷书籍的每一页都被划分为<div> 部分,例如。 <div class=page id=55> 以便它准确模拟/表示印刷书籍的页面单元,也便于参考。我不太关心文本将如何在浏览器上呈现,这是我以后可以考虑的事情。我只希望 HTML 和浏览器“知道”印刷书籍的原始分页和布局。
问题是在印刷书籍中,一些段落甚至方框、表格等跨越到下一页。如果我把它翻译成 HTML,我会这样做:
<div class=page id=1>
<p>Once upon a time...</p>
...
<p>...and so the bold knight
</div>
<div class=page id=2>
slew the evil dragon.</p>
<p>Text...</p>
...
这在 HTML 中是非法的,因为我们有一个 <p> 标签被 </div> 标签打断,然后是一个以纯文本开头的新 div 元素,它被 </p> 标签关闭。
HTML 希望我用</p> 结束损坏段落的第一部分,并在 div 之后继续使用新的<p> 标签,但我没有这样做,因为它不对应于分页原书的,会导致半段被理解为2个正确的段落。
那么,如何在保持理论页/段落/断段/分页结构和信息的同时使用合法的HTML,或者至少让浏览器“知道”原始分页?有没有更合适的标签或方法来模拟分页符同时保留页码id?
可能是这样的
<p>...and so the brave knight<some tag(s) that show page 2 begins here>killed the dragon</p>
【问题讨论】:
-
HTML 和 CSS 无能为力。浏览器将为您关闭 unclosed
p标签,但不会打开没有打开p标签的新标签。你在 JS 方面还有很长的路要走,我怀疑 regex。 -
包装在“页面”div中是错误的方法。正如您在底部所建议的那样,您需要一些可以放在段落中间以指示分页符的排序标记。一个空的跨度可以工作,我可能想利用微数据并在那里使用带有 itemprop 属性的
<meta>元素。但我认为 HTML 中没有任何特定用途。 -
@Alohci 这似乎是在正确的轨道上,你能用这些标签给我写一个正确的答案吗?
标签: css html pagination