直接答案:25 站中 21 站共 2,352 个 !important(9 站 ≥100)、24 站共 529 个内联 style 属性;3 站共 58 个 http:// 子资源(57 张图片 + 1 个脚本),另有 17 站 182 个 http:// 链接——后者是导航链接,不计入混合内容。外链 CSS/表单/CSS 内 url() 的 http:// 引用均为 0。最集中的是 E04(276 个 !important、78 个内联 style、32 个 http 子资源)。
本文只读 HTML 与 CSS 文本,不加载子资源、不渲染;!important 与内联样式属于模板可维护性信号,混合内容是安全信号,两者分列。
方法:HTML + 内联 style + 前 3 个外链 CSS
2026-11-09 11:42–11:43,对第 4 期 25 个缓存 200 首页实时请求 HTML,读取内联 <style> 与前 3 个外链 CSS;统计 !important、style= 属性、按标签区分的 http:// 子资源(img/script/iframe/embed/source/video/audio/track、srcset)、http:// 链接/表单/CSS url()。不加载这些地址。
| 口径 | 判定 | 边界 |
|---|---|---|
| !important | CSS 中出现 !important(含空格) | 不判断是否必要 |
| 内联 style | 标签上的 style="…" | 不含 JS 运行时写入 |
| http 子资源 | img/script/iframe 等 src="http://" 与 srcset | HTTPS 页面上的被动/主动混合内容 |
| http 链接 | <a href="http://"> | 导航链接,不是混合内容 |
| CSS / 表单 http | 外链 CSS、form action、url(http://) | 本期均为 0 |
结果:模板债集中在少数站
| 指标 | 数量 | 站点数 |
|---|---|---|
| !important | 2,352 | 21 |
| 其中 ≥100 个的站点 | — | 9 |
| 内联 style 属性 | 529 | 24 |
| http:// 子资源 | 58 | 3 |
| http:// 导航链接 | 182 | 17 |
| http:// 外链 CSS / 表单 / CSS url() | 0 / 0 / 0 | 0 |
| 站点 | !important | 内联 style | http 子资源 |
|---|---|---|---|
| E04 | 276 | 78 | 32 |
| E22 | 274 | 14 | 0 |
| E17 | 228 | 32 | 0 |
| E24 | 220 | 27 | 0 |
| E06 | 219 | 4 | 0 |
| E11 | 62 | 71 | 0 |
| E13 | 0 | 49 | 7 |
三种问题不同源:E04 三项都最高(276 / 78 / 32),E22、E17、E24、E06 的 !important 都在 200 以上但几乎没有 http 子资源;E13 没有任何 !important,却有 49 个内联 style 与 7 个 http 图片,说明它靠内联样式而不是优先级覆盖来定制页面。
对验收的启示
- 把 !important 当债务指标。 21 站 2,352 个、9 站 ≥100;优先清理主题色、字体与间距上的强制覆盖。
- 内联 style 要能解释。 529 个,E04 78 个、E11 71 个、E13 49 个;模板层可复用的样式应回到 CSS。
- 混合内容按类型处理。 57 张 http 图片改为 https 或协议相对;那 1 个 http 脚本必须改,否则会被浏览器直接阻断。
- 导航里的 http 链接单列。 182 个不会阻断页面,但会带来安全提示与多一次跳转。
- 和内联样式一起看 CSP。 内联 style 越多,nonce/hash 策略越难收紧;企业官网验收可参考网站建设服务。
局限
- 只取前 3 个外链 CSS:!important 总数是下限,不是整站全量。
- 不执行 JS:运行时写入的内联样式与动态插入的资源不计。
- 不加载子资源:http 地址是否可用、是否被自动升级未验证。
- 边界:E17 只取到 1 个外链 CSS,E18/E20 未取到 CSS,E25 的 CSS 全部来自内联样式。
- 25 站 pilot:同一批装备企业样本,不外推行业。
数据与复算
匿名数据:equipment-homepage-template-hygiene-2026.csv(25 行 × 12 列:CSS 文件/体积、!important、内联 style、http 子资源/链接/表单/CSS url 与时间)。仓库内为 docs/research/2026-11-homepage-template-hygiene.csv。
解析:scripts/template_hygiene_probe.py;单元测试 scripts/test_content_template_hygiene_probe.py(10 项,无网络)。运行:
python -m unittest scripts.test_content_template_hygiene_probe
配套:首页 CSP pilot、首页资源清单 pilot、首页 HTML 体积组成 pilot、首页 id 唯一性审计(10 站 48 个重复 id)。
数据来源与口径
- 样本:第 4 期 25 个缓存为 200 的首页。
- 抓取:2026-11-09 11:42–11:43 Asia/Shanghai,串行,站间 0.5 秒,超时 15 秒。
- 样式:内联
<style>+ 前 3 个外链 CSS。 - 混合内容:按标签统计
http://子资源;导航链接、表单与外链 CSS 单列。
常见问题
!important 一定是坏味道吗?
工具类偶尔需要它;但本期 21 站共 2,352 个、9 站超过 100 个,说明覆盖关系依赖它,主题切换与组件复用会被卡住。
内联 style 为什么危险?
不能跨页缓存、难以统一覆盖;在 nonce/hash 型 CSP 下内联样式还会被拦截。本期 24 站共 529 个。
58 个 http 子资源严重吗?
57 个图片可能被浏览器自动升级或拦截,1 个脚本属于主动混合内容,会被直接阻断,相关功能可能失效。
http:// 链接算混合内容吗?
不算。导航链接不会自动加载资源,本期 17 站 182 个单列,只影响体验与安全提示。
为什么 CSS 只取前 3 个?
为了控制请求量并保持站点间可比;完整资源见首页资源清单 pilot,结论不外推到整站。
数据能复核吗?
可以。公开 CSV 25 行 × 12 列;scripts/template_hygiene_probe.py 有 10 项离线单测。