9

啊。Word 因其臃肿、复杂、不符合标准、无语义的 HTML 而臭名昭著。不幸的是,我有一位教授要求我们按照非常严格的标准制定大纲。我宁愿不手写它,所以我决定做一些对我的同学也有用的东西。我在 Mac 上的 NeoOffice 中使用一个简单的编号列表创建了大纲,将其导出为 HTML,并编写了相当多的 CSS 来设置它的样式。然后,我让某人在 Word for Windows 中创建了一个有序列表,将其导出为 html,然后将其发送给我以检查兼容性。在向下滚动页面数英里后,我试图抑制颤抖,我发现了一个问题。Word 没有使用<ol>and <li>。它使用了嵌套的山脉<span>s 与类了 wazoo。我不想看到我所有的工作都白费了,但是这个内容是不可能使用的——我必须在文档到文档的基础上进行样式设置,而不是使用通用样式表。

理想情况下,Word 将使用标准标签生成 HTML,以便我可以像任何其他列表一样设置它的样式,但情况似乎并非如此。我怎样才能让它生成实际使用<ul>and<li>而不是的列表<span>,或者至少修改我的代码中的某些内容以某种方式以它创建列表的奇怪方式工作?

4

9 回答 9

4

编写 Winword 及其 HTML 生成的人是聪明人。如果以纯粹的方式使用 HTML 功能很容易,他们就会这样做。

Word 是关于创建纸张优化的布局。它支持 HTML 不支持或刚刚开始支持的制表位和多级编号等概念。因此,Word 文档的 HTML 版本并不是“漂亮”的 HTML,而是试图准确地保留 Word 文档的特性。

当 Word 重新打开它保存的 HTML 文件时,它会对文档进行一些巧妙的逆向工程,因此在 Word 中呈现的效果与开始时非常相似。同样,如果您将 HTML 作为片段插入到网页中,并保留 Word CSS,则结果非常可靠。在这种情况下,网页的底层 CSS 和 Word 的 CSS 之间存在文化冲突,需要付出一些努力才能充分利用糟糕的工作。Word HTML 也不使用 UTF-8,这需要一些处理。

HTMLTidy 可用于撕掉 Word 标记,但在此之后需要更多的按摩才能在网页中获得良好的呈现效果。我已经在一个产品上工作了 15 年,它可以混合 Word 和网页,如果你微调 CSS,结果会非常好。

我们使用 Word 是因为我们正在创建纸质版本,并从用 Word 编写的报告中导入文本,而不是因为我们找不到专用的 HTML 编辑器。

我不建议使用 Word 来创建整洁的纯粹 HTML。你不会用开罐器来打开一瓶酒吧?

如果:a) 微软在其高度混乱的“项目符号和编号”功能上重新设计了无数选项,b) HTML 提供了本机且功能正确的多级编号支持,而不是事后考虑的方法目前可用。HTML 在这方面的弱点可以从 Google Docs 中脆弱的编号选项中看出。

HTML 5 改进了很多,也许我们可以希望 HTML 6 能够帮助弥合文字处理器/HTML 编辑器的鸿沟。

于 2014-06-18T15:38:14.740 回答
1

使用此资源http://word2cleanhtml.com/将 Word 文档转换为干净的 HTML。非常有用,在我看来。

于 2012-03-22T04:48:21.980 回答
0

如果您可以使用 Windows PC,请使用 Notepad++ (http://notepad-plus-plus.org/) 粘贴代码,然后选择插件来格式化代码。

于 2011-01-31T17:19:02.517 回答
0

使用 WYSIWYG 编辑器作为列表生成器。这将消除用户处理原始 CSS 的需要,但代价是将他们带出 Microsoft Word 的舒适区。

于 2011-02-01T05:27:54.783 回答
0

创造性地使用 Word 的查找和替换也可能有效。例如,使用记事本打开 HTML 文件,将文本复制并粘贴回 Word 文档。打开查找和替换。如果 HTML 看起来像这样(例如),“这是第一行文本”是第一行:

<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span...(Cut due to berevity)...
-height:115%'>This is the first line of text<o:p></o:p></span></p>

然后在 for 上查找并替换为通配符 \<p*line-height:115%'\并替换为空。它可能需要一系列查找/替换。HTML 标记很丰富,但其他一切都相同,至少是一致的。

于 2011-02-07T16:07:57.497 回答
0

如果您手边有dreamweaver,那么有一个神奇的“清理word HTML”按钮可以在这种情况下创造奇迹。

于 2011-02-07T16:27:16.180 回答
0

MSWord 仅与作者一样聪明 - 只有在 MSWord 中创建有序列表时,它才会被转换为 HTML。这意味着列表必须按照 MSWord 结构进行格式化,而不是在页面上显示的方式。许多人会使用制表符和其他格式而不是使用 MSWord 列表功能来创建“看似”有序或无序的列表。保存到 HTML 会尝试保存它的编写方式,而不是它的显示方式。

于 2011-02-08T21:36:45.917 回答
0

通过一些研究,将文档转换为 HTML 的方法似乎并不实用。Word 在为单个文档保存文件和生成 HTML 的方法上实在是太多变了,更不用说不同版本的 Word 之间的差异了。与 Wyatt 的建议类似,可能有一些方法可以清理代码,但没有一个是完美的。深入研究 API 可能会提供一种更容易解析它的方法,但事实证明这在实践中同样令人费解。使用 word 作为列表生成工具似乎是不现实的。

于 2012-03-22T04:43:53.077 回答
0

您可以将外部样式表链接到工作中的开发人员选项卡 -> 文档模板 -> 链接的 CSS 下的 HTML 文档。然后,您可以使用它来覆盖 Word 生成的几乎所有样式。

信用:https ://superuser.com/questions/65107/how-to-apply-external-css-stylesheet-to-document-in-microsoft-word/65144#65144

注意:我使用 Word 2013 进行了此操作,但这不是一项新功能。

于 2015-09-23T19:12:53.897 回答