微信公众号不支持原生HTML,仅保留有限标签和内联样式;可用标签为<p><span><strong><em><ul><ol><li>,仅支持font-size、color等少数CSS属性,需手动清理编辑器导出的冗余代码并压缩style为单行。

微信公众号不支持直接写 HTML 代码发布,所谓“HTML 做排版”其实是用第三方编辑器(如秀米、135 编辑器)生成 HTML 片段,再粘贴进公众号后台的「图文消息编辑器」——但这个过程不是真运行 HTML,而是依赖编辑器预设的样式兼容层。
微信公众号后台根本不解析原生 <style> 和 <script>
你贴进去的任何 <style> 标签、CSS 类名、flex 布局、@media 查询,全被后台过滤或忽略。微信只保留极简内联样式(比如 <p style="font-size:16px;color:#333;">),且仅支持有限属性(font-size、color、text-align、margin 等少数几个)。
- 别在 HTML 里写
.highlight { background: yellow; }—— 没用 - 别用
<div>做容器布局 —— 微信会自动转成<p>或丢弃 -
<table>虽然能显示,但宽度自适应差,手机端容易横向溢出
真正能用的 HTML 标签只有这几个:<p>、<span>、<strong>、<em>、<ul>、<ol>、<li>
这些是微信后台允许保留并渲染的基础语义标签。其中:
-
<p>是段落主体,所有文字最终都会被包进<p>或转成<p> -
<span>是唯一能加内联样式的行内容器,比如<span style="color:#e74c3c;font-weight:bold;">重点</span> -
<ul>/<ol>可用,但不能嵌套,也不能改符号或序号格式(微信强制用默认圆点/数字) - 别用
<h1>~<h6>—— 全部被转成<p>,字号也不按标题逻辑走
用编辑器导出 HTML 时,必须手动清理冗余代码
秀米、135 等工具导出的 HTML 常含大量无用标签和内联样式(比如 data-* 属性、font-family、line-height 多重声明),这些不仅无效,还可能触发微信的样式截断机制(导致后半段排版错乱)。
立即学习“前端免费学习笔记(深入)”;
- 导出后打开 HTML 文件,删掉所有
class="xxx"、data-xxx="..."、font-family、line-height - 把
<div style="text-align:center">...改成<p style="text-align:center">...(微信只认<p>的对齐) - 检查是否有未闭合的
<span>—— 一个漏掉就会让后续所有文字变色/加粗 - 手机预览时发现文字挤在一起?大概率是残留了
margin:0或padding,删掉
最常被忽略的一点:微信对 style 属性里的空格和换行极其敏感。哪怕多一个空格、换一行,都可能导致整段样式失效。贴代码前务必压成单行,并确保引号闭合、分号结尾(虽然微信不严格校验,但保险起见)。



















