关于CSS专有关键字`!msorm`的技术咨询
!msorm的技术咨询 嘿,这个问题抓得真细!很多人处理Word导出的HTML时都会碰到这个神秘的!msorm标记,我来给你唠唠它的来龙去脉:
首先,!msorm是微软Office专属的非标准CSS关键字,全称是Microsoft Office Rendering Model,说白了就是Word自家的「格式还原暗号」。它完全是Word导出HTML时的私有产物,只有微软自家的Office套件(主要是Word)能识别它,其他浏览器、前端工具或者非Office软件根本不认——对它们来说,这玩意儿就是无效的CSS语法,直接忽略,不会影响样式渲染。
那它具体干啥用呢?拿你给出的代码举例:
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=606 style='width:454.7pt;border-collapse:collapse;border-collapse:collapse !msorm'> <tr style='height:12.4pt' style='height:12.4pt !msorm'>
当你把Word文档导出成HTML时,Word会给那些对应原文档原生格式的CSS属性加上!msorm标记。比如表格的边框合并、行高这些你在Word里手动调过的格式,就会被打上这个标记。核心目的是:当你之后把这个HTML重新导回Word时,Word会优先读取带!msorm的样式,精准还原你最初在Word里设置的排版细节,避免导入时因为标准CSS的解析规则,把你原本的格式给「改歪了」。
至于对其他工具的影响?完全没有!不管是Chrome、Firefox这类浏览器,还是VS Code、Figma这类工具,遇到!msorm都会直接当空气处理——只会解析前面的标准CSS属性(比如border-collapse:collapse还是会正常生效),后面的!msorm相当于没写。
最后说文档的事儿:很可惜,微软并没有公开正式的官方文档来详细说明!msorm的具体规范,它属于Word导出HTML时的内部私有机制,这些作用都是开发者们长期踩坑、社区测试总结出来的。
内容来源于stack exchange




