CSS 直接隐藏——标记不良元素生成屏蔽代码
DOM 层面的补充拦截
default.hosts 和 url.deny 在网络请求层面拦截。但有些不良信息不来自第三方域名——它们是页面自身渲染出来的(弹窗、推荐位、广告位等),网络层面拦不住。这时候需要在 DOM 层面用 CSS 直接隐藏。
标记不良元素的操作流程
- 打开你想屏蔽的页面(比如某个论坛或资讯站)
- 长按底部工具栏的 JS 按钮
- 弹出菜单里选择"标记不良元素"
- 点击页面上你想屏蔽的元素(一个弹窗、一个广告横幅、一个推荐卡片……)
- uWeb 弹出对话框,显示:
- 该元素的完整 DOM 结构
- 元素自身的 class、id、attributes
- 所有祖先元素的同类信息
- 自动生成 CSS 屏蔽代码,你可以:
- 直接复制到 sitecss/ 里对应该域名的
.css文件 - 或选择"应用并保存"自动写入
生成的 CSS 形式
默认:display:none
/* 生成的 CSS 示例 */
.ad-popup, .recommend-card, [data-ad="true"] {
display: none !important;
}
这是最直接的方式,元素完全不渲染。
推荐:transform:scale(0)!important
如果元素或其祖先元素的样式属性里已经出现过 display(意味着该网站可能用脚本反复重置 display 属性),官方建议改用:
.ad-popup {
transform: scale(0) !important;
}
transform:scale(0) 把元素缩放到 0,视觉上完全消失,但不影响 display 属性,网站脚本无论怎么改 display 都不会把它"救回来"。
CSS 屏蔽的常见目标
| 目标类型 | 选择器策略 |
|---|---|
| 弹窗遮罩 | .modal, .popup, [class*="modal"] |
| 推荐位 | .recommend, .suggest, .related |
| 广告位 | .ad, .advertisement, [data-ad] |
| 侧边栏 | aside, .sidebar, .side-bar |
| 底部横幅 | footer-ad, .bottom-banner |
| 评论广告 | [class*="comment-ad"], .ad-comment |
| 悬浮元素 | .float, .float-ad, position:fixed 相关 |
与 sitecss 的配合
把生成的 CSS 放入 sitecss/ 下对应该域名的 .css 文件:
sitecss/
├── example.com.css # example.com 域名下的屏蔽规则
└── forum.example.com.css # forum.example.com 更精细的规则(最长文件名优先)
启用条件:
- 文件已放入 sitecss/
- 长按窗口管理 → 勾选"使用网址用户样式"
- 强制清空后台重启 uWeb
配合 default.css 做全局兜底
如果你想让某些屏蔽规则对所有网站都生效,可以:
- 把规则写在 sitecss/default.css 里
- 这个文件会在"没有域名特定 CSS 匹配"时自动应用
但要小心——过于激进的全局规则可能误伤正常元素。建议对每个重要网站写特定规则。
禁用伪元素
某些网站用 ::before / ::after 伪元素显示不良内容(如角标、悬浮小广告)。这些无法被 display:none 隐藏,需要:
[class*="ad"]::before,
[class*="ad"]::after {
display: none !important;
content: none !important;
}
或者直接用浏览模式:长按窗口管理 → "禁用伪元素"。
禁用 iframe
很多第三方广告和追踪用 iframe 嵌入:
iframe {
display: none !important;
}
或者用浏览模式:长按窗口管理 → "禁用 iframe"。