- 解决IE6、IE7、Firefox兼容最简单的CSS Hack
- 完美Firefox - IE Tab - 让我们彻底放弃迟钝的IE吧!
- [小技巧]Firefox比IE看中文更爽?
- Mozilla(北京)关于Firefox调试的技术讲座
- 一种让Firefox3中90%的插件“复活”的办法
- Firefox3有多快?
- IE8已可下载安装 - 不止是“克隆”一个Firebug那么简单
- 好消息 - IE6将退出历史舞台
- 对比日本和中国的Firefox推广
- 介绍一款同步书签的Firefox插件
- 已经更新到Firefox2.0.0.8
- Firefox的“爱”与“恨”
- 请不要升级到Firefox 2.0.0.7
- Web开发者的宿敌 - IE系列
- Mozilla Firefox更新 2.0.0.6
- Alexa Toolbar for Firefox(可投票)
- Firefox用户必备插件! - Extension Backup(不只是插件备份)
- 提高效率,节约生命 - 我用的23个Firefox扩展
- _root第一帧下Stage类信息丢失
- 自作聪明带来的尴尬
- 在Firefox下面用ieTab播放Flash有bug
- cctv改版
- 一些不开心的事以及一个IE的新bug - 又一次加班到10点半
- 个人整理的FF、IE的最基本的CSS兼容技巧
- 实战DIV+CSS
- 调研结论:DIV+CSS为什么好?(更新)
- Flash跨平台……未免有点寒
- 安全性……安全性
- sex - 偶们谈“性”色不变~
- 交友+视频交友
- 流量稳步上涨的总结与分享
- 提高Blog初期访问量的5个必备因素
如果要在IE和FF下面开发设计Web应用,真是一件磨练人心智的事情。我不止一次的看到这句话“Of course, then, there’s one standard way and one Microsoft way.”
如同上一篇日志提到,这个世界没有真相一样,这个世界也没有标准。没有永远的标准,只有永远的bugs和hacks,至少现在,你无法否认这一点。OK,鞠躬尽瘁,无愧我心已经很难得,足矣。
曾经需要通过JavaScript动态获取元素样式,发现style属性只可写,并不可读。非常奇怪,后来由于js提供了offsetLeft、offsetWidth等属性,也就没有仔细研究。毕竟大多数情况下,获取基本layout数据足够。然而,更复杂的Web应用则不得不面对需要获得,或者批量获得一些其他的属性值,例如“font-size”等。于是开始查阅相关的问题。
由于FF和IE对DOM以及CSSStyle的各自不同的理解,解决这个问题过程之曲折不想过多描述,我只把自己的心得记录下来以飨读者。在FF、IE、Opera、Safari下同时兼容的做法步骤:
1、定义函数getStyle - 参考 http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element
function getStyle(oElm, strCssRule){
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
return strValue;
}
用法:
//假设someElement是DOM中某对象的引用,那么通过以下方法可以获得该对象下的字体大小:
var getSize = getStyle(someElement, "font-size");
2、注意,对于缩略式表达式,FF无法获取!例如“padding:4px”,在FF下面,只能按照标准返回"padding-left"。简言之
var getPadding = getStyle(someElement, "padding");
是无效的,需要用
var getPadding = getStyle(someElement, "padding-left");



分享到做啥


我一直都关注你的Blog,学了很多东西,没有留过一次言,尤其看了2003年的那个动画,感触很多,我最近的一个朋友也遇到类似的事情,我给她看你的动画。嗯 就这么多。。。祝你新的一年交好运!
我得博客地址说一下吧http://raino120.blog.sohu.com
FF把IE的收藏夹导进来,每次FF收藏页面的时候都直接收藏到IE的收藏目录,但是怎么IE的文件夹中没有在FF中已经收藏过的页面,只在FF运行时的收藏项中能看到?FF的导出收藏只能导出bookmarks.html,不能像IE,Maxthon将整个收藏导出为文件夹?
搞定咯~···
学习了,谢谢.
[...] 补充: 当时发表这篇文章时,并没有IE7的出现,而且那个时候我也没有很多地考虑JavaScript。这次更新一些。 一、IE6的border。会自动往外加margin。 当第一个box和第二个box之间的margin为a时,如果两个box都没有border,那么IE6、IE7、FF下面都没问题。 当有border时,FF和IE7的border不会占用它们之间的“空位”,而IE6这个老喜欢“自作聪明”的家伙就把margin给撑开了。 我并没有调试是否padding也会有这个副作用,我个人怀疑也有,但是既然把问题分析道这一步了,就不赘述了。 解决方案就是判断是否是IE6,然后动态的修补margin。其间涉及到js获取浏览器版本、样式值这些技术。参阅 http://www.awflasher.com/blog/archives/791 [...]