月份为“十月, 2009”的存档

如何计算 CSS 选择器的权重?

之前在编写 CSS 的时候,多次遇到类选择器“无效”(优先级不够)的情况,例如下面的 HTML 代码: <div class="entry"> <p>段落内容。<a class="links" href="http://fengyouyi.com">链接</a></p> </div> 对应 CSS 代码如下: .entry a { color: red; } .links { color: blue; } 一直以来都简单地按照先后顺序来理解,以为这里链接会呈现蓝色,事实不然。我所理解的先后顺序,只是样式表的层叠顺序。在具体执行时,还需要考虑到样式的权重(原文作 specificity,我个人理解为权重)。 参考官方 CSS2.1 文档中的《6.4.3 Calculating a selector’s specificity》部分,我们可以了解到权重计算遵循以下规则: 如果是通过 ‘style’ 属性声明而不是通过选择器来声明的规则,算作 1,否则为 0 (a 位)(在 HTML 中,一个元素的“style”属性的值是一组样式规则。这些规则没有选择器,所以 a=1、b=0、c=0、d=0); 计算选择器中的 ID 属性个数(b 位); 计算选择器中的其它属性(选择器)和伪类个数(c 位); 计算选择器中的元素名和伪元素个数(d 位)。 这个计算方法仅基于选择器的形式。需要特别说明的是,“[id=p33]”形式的选择器是算作属性选择器的(a=0, b=0, c=1, [...]

阅读全文

使用 jQuery 实现 window.parent.document.getElementById().innerHTML

因为先前遇到的问题,所以我考虑采用 IFRAME 来隔离不同的脚本,从而实现我需要的效果。 在框架中,我用 JavaScript 获取 JSON 数据,组织成 HTML 代码,最后将其填充至上层文档的一个元素中。按照一般的写法,我们需要用到类似如下的语句: window.parent.document.getElementById("myEle").innerHTML = html; 使用 jQuery ,写法如下: $("#myEle", window.parent.document).html(html); 即指明了是在 window.parent.document 中查找 id=myEle 的元素。 随着前面的问题的解决(其实是对 jQuery 的了解不够),现在两种方案都可以实现我需要的效果了。 另外还有一种实现方式,代码如下: parent.$("#myEle").html(html); 这种方法要求父文档也要调用 jQuery 。 演示:使用 jQuery 实现 window.parent.document.getElementById().innerHTML

阅读全文

jQuery 导致 UCenter Home 的脚本出错

此问题已经解决,请参考更新部分。 我使用 UCenter Home 搭建了一个网站,并且按照《利用 jQuery 显示来自 flickr feed 的相片》中的方法,在个人主页栏目下,展示我最近更新至 Flickr 的相片。相片的展示没有问题,但是伴随而来的却是 UCenter Home 的某些功能无法使用,例如留言。 粗略地看了一下错误提示,推测产生错误的原因是 $() 函数。 在 jQuery 中,$() 是它的核心函数,用以查找匹配元素,因为参数的不同,使得它的功能非常强大。但是在 UCenter Home 中,$() 函数只是简单的简化了 document.getElementById() 这个方法。在 jQuery 中 $(“div”) 匹配的是所有的 DIV 元素,但是在 UCenter Home 中,匹配的是 id=”div” 的元素。这种差异直接导致引入 jQuery.js 后,UCenter Home 中的脚本多处出现对象未定义——因为方法被覆盖掉了,得到的已经不是一个元素,而是一类元素的集合,或者根本就没有匹配的元素。 在这种情况下,改写 jQuery.js 或者 UCenter Home 中的脚本,都是不太可行的,同时 UCenter Home 中好像也没有对于 JSON 数据格式的处理函数。我也只能寻求其它的方法。不过由此,我也想到一个问题:UCenter Home [...]

阅读全文

IE6、IE7 和 IE8 中的 CSS 兼容性速查表

来源:Visual Cheat Sheet: CSS Compatibility with Internet Explorer 6, 7 and 8(BlogSpot 被和谐,访问需要翻墙) 这份兼容性速查表对比了 Internet Explorer 6、7 和 8 中的 CSS2.1、CSS3 兼容情况。 GIF:第一页 第二页 PDF:第一页 第二页 你可以用 A3 纸来打印上面的内容。 先前腾讯的 ISD Webteam 也发布了一份 CSS3 参考手册(中文版),CHM 格式,大家也可以下载了备用。

阅读全文

Eyes Of A Child

Performed by: Michael McDonald Written by: Trey Parker The eyes of a child, so innocent and pure A child’s heart is full of song Take their tiny hands and lead them to the light As adults we see the pain in the world, And sometimes it don’t seem right But through the eyes of a [...]

阅读全文

利用 jQuery 显示来自 flickr feed 的相片

因为一个小小的制作,需要显示来自于 Flickr 上的最新更新的相片信息,正如很多人的博客的边栏中显示的那样。这里,我只需要利用 Flickr 提供的 JSON 格式的 feed 数据便可。开始之前,我们需要了解下面的内容: JSON – JavaScript Object Notation jQuery 的 Ajax Requests Flickr Services 的 JSON Response Format 注意到 Flickr 的文档中提到的回调函数(Callback Function),我们可以使用默认的回调函数,也可以通过将 nojsoncallback 设置为 1 ,从而去掉默认的回调函数。 在 jQuery.getJSON() 请求中,我们也可以指定回调函数。 如下代码,可以让我们获取到 JSON 数据: $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=42657763@N08&amp;amp;lang=zh-cn&amp;amp;format=json&amp;amp;nojsoncallback=1";, function(data) {}); 这里使用 nojsoncallback 参数去掉了默认的回调函数,如果要指定回调函数,使用如下语法: $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=42657763@N08&amp;amp;lang=zh-cn&amp;amp;format=json&amp;amp;jsoncallback=?", function(data) {}); 注意不要遗漏 jsoncallback=? 中的“?”符号。 上面调用的 feed ,返回的是公开的相片,考察 JSON 的格式,我们通过下面的代码来生成相片显示的 [...]

阅读全文

Google 通讯录导入 Google 企业应用用户清单出现无法识别的格式错误

在 Google 企业应用的“使用者与群组”中,我们选择导出使用者清单为 CSV 格式,然后在通讯录中,导入此 CSV 文件,提示“无法识别的文件格式”。其实在导出时,会自动切换至 Google 文档下进行保存,此时就会出现“上传错误”。 不知道是不是在设计的时候,没有充分考虑到格式兼容问题。当然,这样仅仅限于我自己的测试。如果您正在使用这些服务,不如顺手帮忙测试一下吧。 Google 企业应用是非常好的一项服务,虽然现在允许申请的标准版用户数量减少到 50 个,但是对于一般的站长来说,足够用了。 这里,我倒是有两个期望: 将 Google 群组增加进去。 现在的 Google 企业应用中已经将原来的“邮件组”更名为“群组”了,但是却没有实际上的在线群组版面,即在线论坛。 允许变更 Google 企业应用的主域名。 有时候我们在申请 Google 企业应用的时候使用的域名并非我们使用的主域名,一个比较常见的情况就是,原本注册的是 .net ,申请了应用,后来申请到 .com ,为了统一,只能将 .com 的作为别名。尽管 Google 电子邮件提供了设定主别名的功能,但是如果能在 Google 企业应用中直接变更,那会方便很多。

阅读全文

和谐的《指环王Online》

《指环王Online》昨日维护完毕后,大家发现和谐现象严重:原来就会将一些“不和谐”的词语替换为 #$ 等符号,但是这次,技术得到进一步提升。同一条信息中,如果某些单个的文字通过组合可以匹配“不和谐”词语,那么这些单个字也会被屏蔽掉,举个简单的例子,“比较好的”,“比”和“的”会被替换为 #$ ,如果你只说一句“我的”,“的”字是不会被屏蔽的。 这次的和谐结果,导致很多人的游戏角色名被替换,例如英文名中有“r”和“i”这两个字母,即使中间间隔很多个字母,也都会被替换为 #$ 。 另外,据说游戏中的骷髅也长肉变僵尸了,关于这一点,提到的人相对较少,昨晚没有注意到,决定今晚特意去瞻仰一下。 论坛大多在批评游戏官方的和谐举措,其实想想,这也怪不了他们。无论是《魔兽世界》还是《指环王Online》甚至于其它游戏,都没有谁愿意去进行这样的处理。 要怨就怨自己生在一个神奇的国度吧——其实我是很不愿意去讨论政治话题的,可是某些权贵们偏偏让我时时刻刻感受着政治力量的存在,以至于心生厌恶。 防民之口甚于防川,为了一小撮人,却惹得更多的人怨声载道,何苦?!

阅读全文

假期结束

五天的假期很快便结束了。 一日生日,和两朋友一起吃饭;二日,参加同事婚宴;三日中秋,和两朋友买了一些熟食在住处喝酒。 其它的时间,基本上是在《指环王Online》中度过。因为带朋友升级,所以自己的角色到现在也没有达到 50 级。倒是放假前答应了某位朋友,说等《指环王Online》中的角色满级,便去《剑侠情缘网络版叁》中玩个角色,好以后可以一起玩,没能实现。抱歉! CHF 这几日是没有去看的,今天看了一下,有平行线发的一篇帖子,是祝我生日快乐的,谢谢大家了。 回想起来,我好像并不是一个习惯去牵挂别人的人,所以每逢节日什么的,我都很少会记得对别人说什么祝福的话。

阅读全文

Hello world!

今天是我的生日,三十岁的生日。 新的小站,域名是中文姓名的拼音。 我不是博客,所以不指望这里会有多少值得阅读的内容。有感于记忆的衰退,能弄个地方来保存一点点零碎,也是不错的主意,不是吗? 我真的很懒,懒到都不愿意去想象未来。记忆却是无可奈何地发生过了,如果连这些都完全丢弃了,那我估计都懒得继续活着了。 也许,我其实已经死了,所以这里,只是一块斑驳的墓碑,刻着不算是墓志的文字。

阅读全文