阅读:4604回复:18
[ABP]请教一些CSS语法的新手问题~
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个问题的,因为我想尝试把不影响浏览的顶级容器给隐藏掉,而不是下面的某个元素,这样隐藏之后说不定还能阻止下载,而且也不会留下空白 |
|
|
1楼#
发布于:2012-02-28 12:07
不行。要到css4才有,但目前无任何浏览器实现。
http://www.w3.org/TR/selectors4/#subject |
|
|
2楼#
发布于:2012-02-28 12:07
这个已经讨论好几年了,元素隐藏规则是无法实现根据子元素来定位到父元素实现隐藏的。
元素隐藏规则其实就是CSS隐藏的变种: http://adblockplus.org/zh_CN/faq_internal#elemhide 而这个不是拦截请求,只是隐藏掉,所以应该后台还是会下载的。只是隐藏的够快,快到你看不到下载的内容。 另外ABP令人纠结的一点就是不能实现过滤HTML代码。这样就可以过滤掉内嵌在HTML源代码里面的<script>这样的标签。 |
|
|
3楼#
发布于:2012-02-28 12:07
白左:0.ABP的元素隐藏并不会阻止内容下载,比如一个div中有个<a>包含的图片广告,隐藏了之后图片还是会下载,占用流量和带宽 应该是那个东西通过JS检测加载内容,当隐藏掉了那个元素后检测不到,所以脚本失效,东西就没有下载下来了。 如果自动对应到父。那么同是这个父的元素不也误杀了吗? 其他可以通过数目来定位同父的元素 元素:nth-child(10) 数字对应层数。 |
|
4楼#
发布于:2012-02-28 12:07
fang5566:这个已经讨论好几年了,元素隐藏规则是无法实现根据子元素来定位到父元素实现隐藏的。 两年前向ABP作者提交过这个功能的请求,直接可替换,更改html代码。作者把我指向一个讨论帖子。。囧。现在这个功能还没有出现。 |
|
5楼#
发布于: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. |
|
|
6楼#
发布于:2012-02-28 12:07
谢谢楼上各位
要是什么时候能把元素隐藏当做屏蔽来用就好了~ 因为学校网络不好,除了看起来美观,abp还有个很重要的作用就是少下载广告省流量节省带宽,所以本地载入时慢一点都无所谓了……学校晚上的网速……哪怕能省出10K/s也是好的…… |
|
|
7楼#
发布于:2012-02-28 12:07
|
|
|
8楼#
发布于:2012-02-28 12:07
元素隐藏与拦截请求是两种不同的技术,对于写在网页里面而不是独立于网页下载的内容,只能用元素隐藏。这是没办法的:
http://adblockplus.org/zh_CN/getting_started#general 外围容器被隐藏掉,根据CSS的继承,里面元素也隐藏掉了吧。 |
|
|
9楼#
发布于:2012-02-28 12:07
fang5566:元素隐藏与拦截请求是两种不同的技术,对于写在网页里面而不是独立于网页下载的内容,只能用元素隐藏。这是没办法的: 我记得mason啥的好像可以屏蔽写在html里的<script>之类的东西,是怎么做到的呢 |
|
|
10楼#
发布于:2012-02-28 12:07
看 Mason 的主页介绍,主要功能有两个:
1、修改header 2、类似 greasemonkey 如果script标签在header里面,mason应该可以改吧,而具有greasemonkey的脚本功能,那更可以改了。 |
|
|
11楼#
发布于:2012-02-28 12:07
|
|
|
12楼#
发布于:2012-02-28 12:07
也许你可以试试Proxomitron?
或者类似的开源项目privoxy 。 |
|
13楼#
发布于:2012-02-28 12:07
|
|
14楼#
发布于:2012-02-28 12:07
|
|
上一页
下一页