如何用uBlock Origin通配符规则拦截《卫报》动态CSS类名元素?
拦截《卫报》随机类名黄色横幅的uBlock Origin规则
可行规则写法
由于目标横幅的class是css-+6位随机字符,直接用css-*这类写法不符合uBlock的选择器逻辑,必须用CSS属性选择器来精准匹配:
基础精准拦截(仅匹配单class的目标元素):
theguardian.com##[class^="css-"][class$=""]:not([class*=" "])规则说明:
[class^="css-"]:匹配class属性以css-开头的元素:not([class*=" "]):排除带有多个class(含空格分隔)的元素,避免误拦截其他带css-前缀的正常组件
结合视觉特征强化精准度:
如果基础规则误命中其他元素,可以结合横幅的固定定位、黄色背景等特征进一步缩小范围,比如:theguardian.com##div[class^="css-"][class$=""]:not([class*=" "])[style*="background-color: rgb(255, 235, 59)"]或者针对顶部固定的元素:
theguardian.com##div[class^="css-"][class$=""]:not([class*=" "])[position="fixed"][top="0"]
为什么css-*不生效?
uBlock的元素隐藏规则遵循标准CSS选择器语法,直接写css-*不是合法的类选择器写法——类选择器的通配符不能这么用,必须通过属性选择器来匹配class属性的内容模式。
验证调整方法
- 打开《卫报》后,点击uBlock图标进入「元素选择器」模式
- 选中目标横幅,查看它的标签类型、style属性、父节点结构
- 将这些特征加入规则,就能做到完全精准的拦截
内容的提问来源于stack exchange,提问作者Ne Mo
相关产品推荐
相关产品推荐

