作者Hemiola ()
看板Browsers
标题Re: [-Fx-] 用firefox 3开yahoo首页的小bug
时间Wed May 21 07:15:18 2008
※ 引述《gaelelw (Ψ)》之铭言:
: http://www.badongo.com/pic/3605792
: 知识+旁边hot的小图示出现两次
: 用fx2看就正常
: fx 3.0 beta和rc都会这样
Yahoo! 自己将网页宣告为 HTML 4.0 strict,但网页原始码一堆不合 strict 的东西,
也不能怪各家浏览器要怎麽解读了。
你可以开「页面资讯」看看,Firefox 3.0 使用「标准依循模式」来绘制 Yahoo! 首页。
问题是碰到里面的错误怎麽办…?
看看出错的原始码:
<li><em><i><a href=me/kp/*
http://tw.knowledge.yahoo.com/>知识
<sup>+</sup></a></em></i></li>
(对不起画面不够长,在此截行)
<em><i>...</em></i> 错误了,</i> 应该放在 </em> 前面。
所以 Firefox 3.0 解读到这里时,「自做聪明」(?)地修正成:
<em><i><a href="me/kp/*
http://tw.knowledge.yahoo.com/">知识
<sup>+</sup></a></i></em><i></i>
也就是多了一个 <i></i>在後头。
你将「知识+ hot」那个地方反白後按右键选「检视选取范围原始码」,
看到的就是这个结果。
而那个 <i>...</i> 在 Yahoo! 的 CSS 里,就是设计来预留右边空间,
用背景图画「HOT」字样的。Firefox 在这里解读成两个 <i></i>,
所以就画出了两个 HOT 了。
那要怎麽解决呢?最根本的方式,就是请 Yahoo!奇摩修改原始码,
把 </i> 正确地放到 </em> 前面去。
不过要请 Yahoo! 奇摩改,我看是很难的。
你如果很介意,倒不如试试在 userContent.css 里加规则,
把第二个 <i></i> 隐藏起来试试看。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 80.170.58.141
1F:推 psion:真是专业! 05/21 07:27
2F:推 eggimage:推专业 05/21 10:44
3F:推 gaelelw:我也把yahoo丢去w3c测过 不过181个错误 懒得看= = 05/21 18:48
4F:→ gaelelw:另外我opera看也不会显示两个 05/21 18:49
5F:推 gaelelw:解决了 .info > li > em + i { display: none; } 05/21 19:01
6F:→ Hemiola:opera不会显示两个,因为各家浏览器对不标准内容解读不同 05/21 19:10