为什么使用Opera
CSS是网页设计中的主要语言之一,它的全称是Cascading Style Sheets,一般翻译作层叠样式表,用来为网页添加各种样式。
简单地说,CSS负责一个网页的外观,网页的内容是什么与HTML有关,但怎么让这些内容看上去更美观更吸引人,就应该是CSS的职责了。
Opera里的User CSS功能,允许用户自行改变某个网页或所有网页中的某个元素的样式。在这之前,一个网页的外观是由它的设计者,那些网页设计师来决定的,现在,使用Opera的你也可以参与进去。
通常,User CSS被用户用来过滤网页上的元素(一般是广告),或者改变网页的风格(背景和字体颜色等),也有时候它会彻底地改造整个网页的外观(这当然就复杂一些)。
在Opera里使用现有的User CSS代码很简单,假定你现在有一个名为douban.css的文件,要用于豆瓣这个网站上,那么你只需要在豆瓣页面上右键,选择“编辑站点首选项”,再从对话窗口里选择“外观”标签,然后在最底下为它选择上边的这个CSS文件,确定即可。
 |
在站点首选项中指定用户样式表 |
除了让个别网站使用某个样式表之外,你也可以让所有的网站都遵循于某个样式表。从菜单上依次打开 工具>首选项 ,选择“高级”标签,选择“内容”一项,如下图:
 |
首选项对话框 |
接着点击对话框上样式表选项,出现如下窗口:
 |
指定全局样式表 |
同样在最底下选择一个样式表文件,确定即可。
不同于编辑某个网站的站点首选项,这里选择的CSS文件将会作用于所有的网页,比如,用一个样式表让所有网页的字体为雅黑。
如果你指定了这样一个全局样式表,又为个别网站指定了首选样式表,那么对于这两个样式表中冲突的部分,首选样式表将优先于全局样式表。
比如,首选样式表中指定字体为宋体,全局样式表中指定字体为雅黑,那么对于使用了这个首选样式表的网站而言,它的字体将是宋体而不是雅黑。
你可以从这里找到一些别人编写好的CSS文件。
我自己,由于不喜欢存放着多个CSS文件(整理或备份什么的都不方便),我把所有的CSS代码都写在一个user.css文件里,把它指定为全局样式表。
由于它对所有网站都生效,因此我会把选择器尽量写得详细,以使某些代码只在某些网站生效,而不会影响到其它网站。
--------------------进阶--------------------
在CSS里,有这样一个语句:
display: none;
display是一个属性,可以用来决定元素的显示模式,而none是它的其中一个值,表示不显示。
通常我们用CSS来过滤网页上的广告时,借助的就是这一行语句。
例如,假设豆瓣上的图片都是广告,由于图片包含在HTML的<img />标签里,因此我们可以通过以下这行代码来过滤掉所有这些图片:
img {display: none !important;}
先不理会 !important这一部分,一个最简单的CSS语句就是上边的这种形式,可以归纳为:
选择器 {属性: 值;}
属性和值被包含在一对大括号里,而选择器,就是括号里边的语句所要作用的对象。如果你想要过滤广告,那么最重要的就是找对选择器,你可以通过右键一个网页,选择“源代码”来查看这个网页的HTML代码,进而找到你所要过滤的内容包含在哪些HTML标签里。
当然这样做会有些不方便,你可以自己找一些更方便查看网页源代码的工具,你也可以使用Opera自带的网页调试工具Dragonfly。在菜单中选择 工具>高级>开发者工具 。
现在我们回过头来看上边例子中的 !important 这部分。
如果你把上边的那行代码写为
img {display: none;}
然后应用到网站上去,你会发现网站是没有变化的,也就是你的样式表无效。
这是因为网站作者的样式优先于你的样式,而 !important 可以让这种情况相反过来,它会强制你的代码优先于作者的代码。
如果你能多少看懂HTML代码的话——即使毫无所知也应该能看懂一点,而你如果想要学会看懂一个HTML文档,可能花不了你半小时的时间,这是一种非常容易学习的标记语言——那么再看了上边的介绍后,你已经具备使用CSS过滤广告的能力了,你所需要做的就只是使用正确、合适的选择器。
而用CSS过滤广告是一种绿色而且几乎无往不利的方法。
当然,你可以可以用CSS去干别的事情,比如改变所有超链接的字体大小:
a {font-size: 2em !important;}
这些就需要你自己去学习CSS语言的相关知识了,在这里我不能简单地教会你。
在我这里,我发现在Opera下点击豆瓣上的一些rayfile链接时,会出现找不到文件的提示,而那个文件其实是存在的,至少在IE中点击进去后是有的。
解决办法:
/* 豆瓣Rayfile下载链解决 */
wbr {display: none !important;}
新建一个记事本,粘贴进上边的内容,另存为xxx.css,在豆瓣叶面上编辑站点首选项,指定这个CSS文件。
当然也可以作为全局样式表来使用。
强制所有网页的字体为雅黑 (如果你的系统里安装有这个字体):
/* 雅黑字体 */
* {font-family: 微软雅黑 !important;}
保存为css文件,作为全局样式表使用,或者把这些代码加入你已有的全局样式表中。
Google和百度搜索结果页面右侧的广告过滤:
/* google赞助商过滤 */
td#rhsline {display: none !important;}
/* 百度广告过滤 */
table[width="30%"] tbody div[style] {display: none !important;}
Google搜索结果页面分栏并去除多余元素:
/* Google */
body#gsr .g {
margin-top: 0.1em !important;
margin-bottom: 0.4em !important;
margin-left:0.5em !important;
margin-right:0.1em !important;
width:48% !important;
min-width:48% !important;
overflow:hidden !important;
padding-left:0.5em !important;
padding-bottom:0em !important;
padding-top:0.1em !important;
height:120px !important;
float:left !important; }
body#gsr .g:last-child {clear:right !important;} /* 分栏 */
body#gsr #sft {margin-bottom: 5px !important;}
body#gsr .csb {display: none !important;}
body#gsr #nav {margin-top: 5px !important; margin-bottom: 0 !important;}
body#gsr #nav td {padding-left: 10px !important;}
body#gsr div.clr {display: none !important;}
body#gsr div.e table.ts {display: none !important;} /* 多余元素去处 */
body#gsr #res {padding: 0 !important; margin: 0 !important;} /* 左右边距去除 */
body#gsr .s {max-width: 98% !important;} /* 框内段落加宽 */
body#gsr #sft {margin-top: 0 !important;} /* 框顶部边距去除 */
/* Rayfile整站过滤 */
#rayfile_0, #rayfile_1, #rayfile_2 {display: none !important;}
.nDown_TOPad, #nDown_level_1 #nDown_left, #nDown_level_2, .nDown_level_3 {display: none !important;}
#nD_filetitle, .TXT_note_iconlist2, #divinfo_1 div[style="float: left;"] {display: none !important;}
.nDown_ad1, #nD_fileinfo #M1-AD, .TXT_note_iconlist, .TXT_note_lightgray iframe {display: none !important;}
div[style="float:right;display:inline;line-height:24px;"] {display: none !important;}
过滤得比较彻底,基本上只留下显示下载地址的那一部分,不介意的同学可以使用。
/* cnBeta过滤 */
#userInfo {display: none !important;}
#fm_r {display: none !important;}
#votes {display: none !important;}
p#news_foot {display: none !important;}
#feedback center img[border="0"]{display: none !important;}
#c_flash object {display: none !important;}
#contentWrapper #newsBox a img[border="0"] {display: none !important;}
center object {display: none !important;}
这些CSS事实上不只过滤了广告,还过滤掉了一些我认为没有用的东西,不介意的同学可以使用。
另外,任何网站我都可以试着帮助你用CSS去过滤广告,有需要的同学可以找我没有关系。
这一系列的简易教程都算挺实用的
论坛里好像有个帖子是JS和CSS一起教的,等恢复了我再去看看
很基础的方式,如果没有ID、Class的话就需要用到更多的选择器了。
> 我来回应