html - 样式化 Microsoft Word 生成的 HTML

标签 html css ms-word generated-code

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

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

最佳答案

编写 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。你不会用开 jar 器来打开一瓶酒吧?

如果: a) 微软重新设计了其高度困惑的“元素符号和数字”功能的无数选项, b) HTML 提供了原生的、具有适当特征的多级编号支持,而不是当前可用的事后思考方法。 HTML 在这方面的弱点可以从 Google 文档中可用的脆弱编号选项中看出。

HTML 5 有了这么多改进,也许我们可以希望 HTML 6 有助于弥合文字处理器/HTML 编辑器之间的鸿沟。

关于html - 样式化 Microsoft Word 生成的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845082/

相关文章:

c# - 复制到剪贴板限制

java - 我如何使用java获取Word文档中段落的一部分的字符串的页码

javascript - 使用 ng-include 简单显示 html 元素

php - 如何一键销毁php session

jquery - 不发送默认选择的选项值

javascript - 如何在 Javascript 中使用滚动事件(无 Jquery)

javascript - 为什么切换图像时我的幻灯片显示在菜单上方?

css - 名称错误 : variable @screen-sm-min is undefined

jquery - 在 jQuery 对话框的右侧显示关闭按钮

ms-word - VSTO:一般安装错误 Windows 10