微信公众号仅支持极简HTML标签(如<p><strong><em><ul><ol><li>)和有限内联样式(font-size、color、text-align等),禁用div、style标签及Flex/Grid等高级特性,所有非法代码会被过滤或转换。

微信公众号本身不解析 HTML,所谓“用 HTML 代码”,本质是贴一段被微信后台允许且能存活的内联样式 HTML 片段。直接写 <div class="card"> 或 <style> 标签,发布后全被过滤——这不是 bug,是微信的设计限制。
别指望浏览器里写的 HTML 能原样跑在公众号里。它只认极简标签 + 极简 style 属性,连 `
` 都会被转成 `
`,更别说 Flex、Grid、自定义字体这些。
哪些 HTML 标签和属性真能用?
微信后台保留的合法标签只有这几个:<p>、<strong>、<em>、<ul>、<ol>、<li>。
所有其他标签(比如 <div>、<section>、<span>、<table>)要么被转成 <p>,要么被直接丢弃。
可用的内联样式仅限以下属性(且必须写在 <p> 或 <strong> 等允许标签上):
-
font-size(单位只能是px,不能用rem或%) -
color(支持十六进制如#333,不支持rgb()或命名色) -
text-align(left/center/right) -
margin和margin-top/margin-bottom(但margin-left/margin-right失效) -
line-height(部分机型兼容差,慎用)
font-family、padding、background、border、display、float 全部无效。
为什么从网页复制 HTML 到公众号总出错?
因为网页 HTML 天然带大量微信不认的东西:
生成Claude风格的精美单页HTML汇报文件。当用户需要生成"汇报"、"周报"、"月报"、"项目进度"、"复盘"、"演示"、"slide deck"、"状态报告"、"工作总结"时触发。支持6种模板:周报(weekly)、项目进度(project)、月度总结(monthly)、复盘报告(postmortem)、演示文稿(slid
立即学习“前端免费学习笔记(深入)”;
- 多余的
class和data-属性(如class="article-content"、data-id="123") - 嵌套过深的
<div>容器(微信会一层层剥掉,只剩最内层文字) - 自动插入的
<style>块或外部 CSS 引用(全被删) - 换行/空格/缩进过多的
style="..."内容(微信对引号内空格和换行极其敏感,一个换行就可能导致整段样式失效)
常见错误现象:
- 文字突然变小或颜色异常(残留了
font-size:12px或color:#999) - 段落挤在一起没间距(
margin被删或写法不规范) - 图片错位或消失(
<img>标签被过滤,或 src 是相对路径) - 手机端显示正常,但 iOS 微信里文字重叠(
line-height值过大或用了非 px 单位)
用排版工具导入网页内容,怎么避免翻车?
第三方工具(如壹伴、秀米、135 编辑器)导出的 HTML,不是“发给微信的成品”,而是“待清洗的半成品”。你必须手动干预:
- 导出后打开 HTML 文件,用文本编辑器(不要用 Word)打开,删掉所有
class="xxx"、data-xxx="..."、font-family、line-height、padding - 把所有
<div style="text-align:center">...改成<p style="text-align:center">...(微信只认<p>的对齐) - 检查每个
style属性:确保引号闭合、分号结尾、无换行、无多余空格(例如style="font-size:16px; color:#333;"✅,style="font-size: 16px ; color: #333 "❌) - 图片必须是完整 HTTPS 链接,且已上传到公众号图库(否则发布后 404)
如果你用的是壹伴的「网页采集」功能,它能自动提取正文和图片,但依然要进「源代码编辑」界面检查生成的 HTML 是否含违规属性——它不会帮你删 class,只是省了复制粘贴这一步。
最常被忽略的一点:微信对 HTML 的处理是“单向清洗”,没有回滚机制。你贴进去的代码一旦保存,再想还原原始结构几乎不可能。所以每次修改前,务必本地备份干净 HTML 片段;发布前,一定要用壹伴的「手机预览」按钮真机看效果,而不是只信右侧渲染窗——后者只是模拟,不是真实微信客户端。


















