龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JavaScript解决常见浏览器兼容问题(1)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
我们提倡尽可能使用CSS,而且我们常常能做到这一点。现代浏览器有很好的CSS支持-这无疑足够好让你使用CSS来控制布局和版面设计。但是有时候,某些网页元素在不同的浏览器会出现不

我们提倡尽可能使用CSS,而且我们常常能做到这一点。现代浏览器有很好的CSS支持-这无疑足够好让你使用CSS来控制布局和版面设计。但是有时候,某些网页元素在不同的浏览器会出现不同。

如果你不知道原因,不要过于担心,您可以通过下面列出的12个JavaScript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了!(相关文章推荐:JavaScript成浏览器战争主战场

1. 自动匹配高度

自动匹配高度

自从我们抛弃了基于Table的页面布局后,创建同等高度栏目或内容盒子的视觉效果已然是一个挑战。

◆用jQuery设置匹配高度

这个jQuery插件在同一个容器里“平衡”盒子的高度并创造一个简介的网格——几乎从可用性和性能的角度使用简单的JavaScript替代: equalHeights()函数测定一个容器里的所有同级元素同容器的高度,然后设置每个元素的最低高度为最高的元素的高度。equalHeights()通过循环测定指定元素的最高级别的子节点,然后设置他们的最小高度值为最高的元素的高度。

点击这里预览效果

◆用jQuery匹配栏目高度

jQuery的另一个可以使盒子的高度相等的插件:

  1. $(“#col1, #col2″).equalizeCols();
  2.  

将如你所想的那样匹配高度:

  1. $(“#col1, #col2″).equalizeCols(“p,p”);
  2.  

匹配这两卷,并在#col1或#col2(短的那个)里的P标签后面添加空白。

2. IE6 PNG透明支持

IE6以下的版本不支持png透明。使用hack,IE 5.5和6也已经可以支持,但hack并不理想的且难以使用。让我们来看看我们能做些什么来支持IE6用户 ,同时为网站的大多数访客带来最佳的透明效果。

◆强制IE6支持透明

IE7的是一个Dean Edwards建立的JavaScript库,以强迫MSIE(IE6,IE5)表现的像一个兼容标准的浏览器。它修复许多CSS问题并使透明PNG在IE6和IE5下正常工作,它还允许高级的CSS选择器。

点击查看预览效果

◆改良iFixPng

改良iFixPng

修正IE6及以下的PNG图片的问题,IMG标签和CSS背景图片都可以。这个插件是对原始iFixPng插件的一种改进。特点包括:图像或有背景图片的标签,现在支持background-position,其中包括IE浏览器的绝对定位的修正。(bottom: -1px || bottom: 0px)

点击查看预览效果

3. 用JavaScript改变class

用JavaScript改变class

这是一个方便的JavaScript函数,可以在当前的文件的任何元素的class由oldClass改为newClass。这是特别有用的快速的利用CSS而不是用编码改变风格。

  1. function changeClass(oldClass, newClass) {  
  2.       var elements = document.getElementsByTagName(“*”);  
  3.       for( i = 0; i < elements.length; i++ ) {  
  4.             if( elements[i].className == oldClass ) elements[i].className = newClass;  
  5.       }  

点击查看预览效果

4. CSS浏览器选择器

CSS浏览器选择器

如果您可以只需键入一个特殊选择器,在这里您可以写一些JavaScript ,设置一个Class在基于当前的浏览器的名字的标签会怎么样?

◆CSS Browser

这是一个非常小的JavaScript只有一行,而且不到1kb,它允许CSS选择器。它让您可以为每个操作系统和每个浏览器写具体的CSS代码。你可以写一些JavaScript ,设置Class的名字,也就是说,内容根据当前的浏览器。

◆jQuery浏览器选择器

这里有另外一个基于jQuery的非常简单的处理浏览器选择器的方法,你需要做的只是加载jQuery库文件,并添加下面的一块儿代码。

  1. $(document).ready(function(){  
  2. $(‘html’).addClass($.browser);  
  3. }); 

现在你可以准备你的样式,如.msie,.mozilla, .opera, .safari 或其它目标浏览器。

点击查看预览效果

精彩图集

赞助商链接