白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
阅读:4641回复:18

[ABP]请教一些CSS语法的新手问题~

楼主#
更多 发布于:2012-02-28 12:07
0.ABP的元素隐藏并不会阻止内容下载,比如一个div中有个<a>包含的图片广告,隐藏了之后图片还是会下载,占用流量和带宽
但是我发现有的情况下,这种包含图片或者其他多媒体的容器,如果隐藏了它的某个父容器,就会不但隐藏还能阻止下载,看html结构的话,隐藏之后里面就没有东西了;而有的容器隐藏了之后里面的多媒体该下载还是要下载,这是为什么呢?


1. 请问CSS选择器有没有什么类似零宽断言之类的东西吗,比如
……
<parent>
   <div>xx</div>
   很多<div>
   <div>
        <center>想屏蔽的东西</center>
   </div>
</parent>

这些div都没什么可供标示的属性,但是子元素却有特点,比如这个想屏蔽的div下有且仅有一个子元素,所以我想选择“有且仅有一个<center>子元素的div”,可是用parent > div > center:only-child  选择的却是<center>, 有办法通过子元素的特点选择父元素吗?

这个问题是接第0个问题的,因为我想尝试把不影响浏览的顶级容器给隐藏掉,而不是下面的某个元素,这样隐藏之后说不定还能阻止下载,而且也不会留下空白
-いたんですか? -ええ、ずっと
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
1楼#
发布于:2012-02-28 12:07
如果目的是省流量,adp控制广告,NoScript控制站外的,ImgLikeOpera控制Flash的自动播放和图片的自动加载
文字不管,别的好说,其实就是向图片开火,分大小加载,主框架加载,快捷键切换之类的,最简单的还是把自己常用的网站解决好,和广告过滤一样。其它的,反正不常去,随它去吧
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
2楼#
发布于:2012-02-28 12:07
meat
虽然没用过这些软件,不过很明显,把广告代理到127.0.0.1就行了,同abp 原理没什么区别
回到原帖

  功能要比ABP强大很多。下载下来的任何东西都可以修改变成你想要的。功能低一点的就到admunch。
meat
火狐狸
火狐狸
  • UID35020
  • 注册日期2011-01-06
  • 最后登录2024-04-29
  • 发帖数267
  • 经验200枚
  • 威望0点
  • 贡献值106点
  • 好评度16点
3楼#
发布于:2012-02-28 12:07
royallin
  这样也不省流量呢。只是通过代理软件作为过滤层,代理与外网还是要把东西下载下来。
回到原帖

虽然没用过这些软件,不过很明显,把广告代理到127.0.0.1就行了,同abp 原理没什么区别
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
4楼#
发布于:2012-02-28 12:07
loveqianool:也许你可以试试Proxomitron?
或者类似的开源项目privoxy 。
回到原帖

  这样也不省流量呢。只是通过代理软件作为过滤层,代理与外网还是要把东西下载下来。
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
5楼#
发布于:2012-02-28 12:07
白左


哦哦,谢谢
还好我没有太大的脚本屏蔽需求……猴子和mason都没用过,noscript放了一段时间也卸了~

*edit*
刚才把refcontrol卸了,装上了mason——因为发现mason很小,而且用起来很简单……天生对这种东西没有抵抗力(¯▽¯
回到原帖

  要省流量,noscript不应该卸载掉了吧。。就算ABP可以拦截广告,统计。这些。但也要有对应规则,noscript的机制更加适合吧。
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
6楼#
发布于:2012-02-28 12:07
fang5566:https://adblockplus.org/forum/viewtopic.php?f=4&t=5977
暂时无法实现。被rejected了。

回到原帖

  悲剧
loveqianool
狐狸大王
狐狸大王
  • UID29223
  • 注册日期2009-06-19
  • 最后登录2022-01-29
  • 发帖数308
  • 经验153枚
  • 威望0点
  • 贡献值92点
  • 好评度2点
  • 社区居民
  • 忠实会员
7楼#
发布于:2012-02-28 12:07
也许你可以试试Proxomitron?
或者类似的开源项目privoxy 。
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
8楼#
发布于:2012-02-28 12:07
fang5566:看 Mason 的主页介绍,主要功能有两个:
1、修改header
2、类似 greasemonkey

如果script标签在header里面,mason应该可以改吧,而具有greasemonkey的脚本功能,那更可以改了。
回到原帖



哦哦,谢谢
还好我没有太大的脚本屏蔽需求……猴子和mason都没用过,noscript放了一段时间也卸了~

*edit*
刚才把refcontrol卸了,装上了mason——因为发现mason很小,而且用起来很简单……天生对这种东西没有抵抗力(¯▽¯
-いたんですか? -ええ、ずっと
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-30
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
9楼#
发布于:2012-02-28 12:07
看 Mason 的主页介绍,主要功能有两个:
1、修改header
2、类似 greasemonkey

如果script标签在header里面,mason应该可以改吧,而具有greasemonkey的脚本功能,那更可以改了。
Firefox More than meets your experience
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
10楼#
发布于:2012-02-28 12:07
fang5566:元素隐藏与拦截请求是两种不同的技术,对于写在网页里面而不是独立于网页下载的内容,只能用元素隐藏。这是没办法的:
http://adblockplus.org/zh_CN/getting_started#general

外围容器被隐藏掉,根据CSS的继承,里面元素也隐藏掉了吧。
回到原帖



我记得mason啥的好像可以屏蔽写在html里的<script>之类的东西,是怎么做到的呢
-いたんですか? -ええ、ずっと
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-30
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
11楼#
发布于:2012-02-28 12:07
元素隐藏与拦截请求是两种不同的技术,对于写在网页里面而不是独立于网页下载的内容,只能用元素隐藏。这是没办法的:
http://adblockplus.org/zh_CN/getting_started#general

外围容器被隐藏掉,根据CSS的继承,里面元素也隐藏掉了吧。
Firefox More than meets your experience
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
12楼#
发布于:2012-02-28 12:07
royallin
   应该是那个东西通过JS检测加载内容,当隐藏掉了那个元素后检测不到,所以脚本失效,东西就没有下载下来了。
   如果自动对应到父。那么同是这个父的元素不也误杀了吗?
其他可以通过数目来定位同父的元素 元素:nth-child(10)  数字对应层数。
回到原帖



唔,有道理
我最先观察到的就是在115,隐藏了某个广告容器后里面的图片也不见了
-いたんですか? -ええ、ずっと
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
13楼#
发布于:2012-02-28 12:07
谢谢楼上各位
要是什么时候能把元素隐藏当做屏蔽来用就好了~

因为学校网络不好,除了看起来美观,abp还有个很重要的作用就是少下载广告省流量节省带宽,所以本地载入时慢一点都无所谓了……学校晚上的网速……哪怕能省出10K/s也是好的……
-いたんですか? -ええ、ずっと
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-30
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
14楼#
发布于:2012-02-28 12:07
https://adblockplus.org/forum/viewtopic.php?f=4&t=5977
暂时无法实现。被rejected了。

I think that the most likely solution to the "remove parents by children" problem will be this one: http://www.w3.org/TR/selectors4/#subject. I don't know when Mozilla plans to implement it but I guess that it isn't too far off.

The problem when working with HTML code directly is that you don't have a DOM tree - the document hasn't been parsed yet and determining parent/child relations and similar is very non-trivial. Generally, I have doubts that the proposal here will ever be implemented. We already tried using the API required for HTML code filtering, in a non-modifying way (for redirect tracking). The side-effects were quite considerable, so in Adblock Plus 2.0 we no longer use it. I'm all but sure that I want to open that can of worms again.
Firefox More than meets your experience
上一页
游客

返回顶部