源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Javascript解决常见浏览器兼容问题的12种方法

  • 时间:2021-09-20 13:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Javascript解决常见浏览器兼容问题的12种方法
如果你不知道原因,不要过于担心,请研究CSS规则并查看这篇文章:[url=http://www.noupe.com/css/using-css-to-fix-anything-20-common-bugs-and-fixes.html]使用CSS来修正一切: 20 +常见错误和修复[/url]。 如果这些也无效,您可以通过下面列出的12个javascript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了! 在本文中,我们会揭开你在开发web应用是可能会遇到的12个最常见的CSS问题的javascript解决方案。
1. 自动匹配高度
[img]http://files.jb51.net/upload/2010-1/20100104214255140.jpg[/img] 自从我们抛弃了基于Table的页面布局后,创建同等高度栏目或内容盒子的视觉效果已然是一个挑战。 [b]1.1 [/b][url=http://www.filamentgroup.com/lab/setting_equal_heights_with_jquery/][b]用jQuery设置匹配高度[/b][/url] 这个jQuery插件在同一个容器里“平衡”盒子的高度并创造一个简介的网格——几乎从可用性和性能的角度使用简单的JavaScript替代:[b]equalHeights()函数[/b]测定一个容器里的所有同级元素同容器的高度,然后设置每个元素的最低高度为最高的元素的高度。 [b]如何工作[/b] equalHeights()通过循环测定指定元素的最高级别的子节点,然后设置他们的最小高度值为最高的元素的高度。 [quote] [url=http://www.filamentgroup.com/examples/equalHeights/]点击这里预览效果[/url] [/quote] [b]1.2 [/b][url=http://spindrop.us/2007/05/22/equal-height-columns-with-jquery/][b]用jQuery匹配栏目高度[/b][/url] jQuery的另一个可以使盒子的高度相等的插件 [quote] $(“#col1, #col2″).equalizeCols(); [/quote] 将如你所想的那样匹配高度 [quote] $(“#col1, #col2″).equalizeCols(“p,p”); [/quote]
匹配这两卷,并在#col1或#col2(短的那个)里的P标签后面添加空白.
2. IE6 PNG透明支持
IE6以下的版本不支持png透明。使用hack,IE 5.5和6也已经可以支持,但hack并不理想的且难以使用。让我们来看看我们能做些什么来支持IE6用户 ,同时为网站的大多数访客带来最佳的透明效果。 [b]2.1 [/b][url=http://dean.edwards.name/weblog/2008/01/ie7-2/][b]强制IE6支持透明[/b][/url] IE7的是一个Dean Edwards建立的JavaScript库,以强迫MSIE(IE6,IE5)表现的像一个兼容标准的浏览器。它修复许多CSS问题并使透明PNG在IE6和IE5下正常工作,它还允许高级的CSS选择器。 [quote] [url=http://ie7-js.googlecode.com/svn/test/index.html]点击查看预览效果[/url] [url=http://code.google.com/p/ie7-js/]点击下载源文件[/url] [/quote] [b]2.2. [/b][url=http://plugins.jquery.com/project/iFixPng2][b]改良iFixPng[/b][/url] [img]http://files.jb51.net/upload/2010-1/20100104214257607.jpg[/img] 修正IE6及以下的PNG图片的问题,IMG标签和CSS背景图片都可以。这个插件是对原始[url=http://plugins.jquery.com/project/ifixpng]iFixPng插件[/url]的一种改进。特点包括:图像或有背景图片的标签,现在支持background-position,其中包括IE浏览器的绝对定位的修正。(bottom: -1px || bottom: 0px) [quote] [url=http://www.yereth.nl/bgpos.html]点击查看预览效果[/url] [url=http://plugins.jquery.com/files/jquery.ifixpng2.js.zip]点击这里下载源文件[/url] [/quote]
3. [url=http://www.abeautifulsite.net/notebook/29]用Javascript改变class[/url]
[img]http://files.jb51.net/upload/2010-1/20100104214258948.jpg[/img] 这是一个方便的JavaScript函数,可以在当前的文件的任何元素的class由oldClass改为newClass。这是特别有用的快速的利用CSS而不是用编码改变风格。 [quote] function changeClass(oldClass, newClass) {       var elements = document.getElementsByTagName(“*”);       for( i = 0; i < elements.length; i++ ) {             if( elements[i].className == oldClass ) elements[i].className = newClass;       } } [/quote] [quote] [url=http://www.abeautifulsite.net/notebook_files/29/changeClass.htm]点击查看预览效果[/url] [url=http://code.google.com/p/ie7-js/]点击下载源文件[/url] [/quote]
4. CSS浏览器选择器
如果您可以只需键入一个特殊选择器,在这里您可以写一些JavaScript ,设置一个Class在基于当前的浏览器的名字的标签会怎么样? [img]http://files.jb51.net/upload/2010-1/20100104214259271.jpg[/img] [b]4.1 [/b][url=http://github.com/rafaelp/css_browser_selector/tree/master][b]CSS Browser[/b][/url] 这是一个非常小的javascript只有一行,而且不到1kb,它允许CSS选择器。它让您可以为每个操作系统和每个浏览器写具体的CSS代码。你可以写一些JavaScript ,设置Class的名字,也就是说,内容根据当前的浏览器。 [quote] [url=http://www.abeautifulsite.net/notebook_files/29/changeClass.htm]点击查看预览效果[/url] [url=http://github.com/rafaelp/css_browser_selector/tree/master/css_browser_selector.js]点击下载源文件[/url] [/quote] [url=http://agachi.name/weblog/archives/2006/07/22/avoiding-css-hacks-using-javascript.htm][b]jQuery 浏览器选择器[/b][/url] 这里有另外一个基于jQuery的非常简单的处理浏览器选择器的方法,你需要做的只是加载jQuery库文件,并添加下面的一块儿代码。 [quote] $(document).ready(function(){ $(‘html').addClass($.browser); }); [/quote] 现在你可以准备你的样式,如.msie,.mozilla, .opera, .safari 或其它目标浏览器。 [quote] [url=http://agachi.name/tests/jquery/css-selectors/]点击查看预览效果[/url] [/quote]
5. 最小/最大 高度/宽度支持
针对CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性,这里有一些很好的jQuery修正。 [b]5.1 [/b][url=http://davecardwell.co.uk/javascript/jquery/plugins/jquery-minmax/][b]jQMinMax[/b][/url] 这是一个为没有原声的支持min-width, max-width,min-height和max-height的地方添加支持的jQuery插件。 [quote] [url=http://davecardwell.co.uk/javascript/jquery/plugins/jquery-minmax/]点击查看预览效果[/url] [url=http://davecardwell.co.uk/javascript/jquery/plugins/jquery-minmax/jqminmax-uncompressed.js]点击下载源文件[/url] [/quote]
5.2 [url=http://www.bramstein.com/projects/jsizes/]JSizes[/url]
这个小jQuery插件为CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性添加支持。特别是他提供一种方法来确定一个元素在那里可见。由于所有的型号的方法返回数值,所以这些也可以安全的使用在严格的DOM元素方面。 [quote] jQuery(function($) {      var myDiv = $(‘#myDiv');      // set margin-top to 100px and margin-bottom to 10em      myDiv.margin({top: 100, bottom: ‘10em'});      // displays the size of the top border in pixels      alert(myDiv.border().top);      // displays true if the element is visible, false otherwise      alert(myDiv.isVisible());      // set padding-right to 10px and margin-left to 15px using chaining      myDiv.padding({right: 10}).margin({left: 15}); }); [/quote] [quote] [url=http://davecardwell.co.uk/javascript/jquery/plugins/jquery-minmax/]点击查看预览效果[/url] [url=http://davecardwell.co.uk/javascript/jquery/plugins/jquery-minmax/jqminmax-uncompressed.js]点击下载源文件[/url] [/quote]
6. 元素垂直/水平居中
你可能之前遇到过这个问题:水平或垂直居中某个元素。垂直居中在CSS里面相当麻烦,特别是你想支持所有主流浏览器。 [img]http://files.jb51.net/upload/2010-1/20100104214259945.jpg[/img] [b]6.1 [/b][url=http://plugins.jquery.com/project/elementcenter][b]Center element plugin[/b][/url] 这个插件可以使页面中的所有元素居中,垂直和水平居中采用css负margin的方法。 [quote] $(“element”).center(); //vertical and horizontal $(“element”).center({ horizontal: false // only vertical }); [/quote] [quote] [url=http://www.alexandremagno.net/jquery/plugins/center/]点击查看预览效果[/url] [url=http://plugins.jquery.com/files/jquery.include.js.txt]点击下载源文件[/url] [/quote] [b]6.2 [/b][url=http://www.detacheddesigns.com/blog/blogSpecific.aspx?BlogId=101][b]我是怎么把一个元素垂直居中的?[/b][/url] 在这个视频教程里, Jeffrey Jordan Way将为你展示如何使用jQuery的力量结合CSS在你的浏览器里面使一个图片垂直居中.
7. 在IE里使用Q标签
人们期望使用的Q标签而不是blockquote标签来显示引号。然而IE/Win不支持Q标签,因为这一点,大部分网站的作者选择不使用Q标签。 [b]7.1 [/b][url=http://plugins.jquery.com/project/QinIE][b]QinIE[/b][/url] 当你在你的文件的头部添加这个脚本在IE浏览器里自动扫描的网页Q的标记,并正确的显示它们(包括嵌套引用) 。当(如果)IE浏览器将来支持Q标签,这个插件将会添加浏览器版本检查。 [quote] [url=http://plugins.jquery.com/files/jquery.QinIE.js.txt]点击下载源文件[/url] [/quote]
8. [url=http://newism.com.au/blog/post/58/bigtarget-js-increasing-the-size-of-clickable-targets/]增加点击目标的大小和获得更多的响应转换[/url]
[img]http://files.jb51.net/upload/2010-1/20100104214300961.jpg[/img] 通过把你的所有内容放到一个可点击的标签来和单调的“read more…”链接说拜拜吧。 [quote] [url=http://newism.com.au/blog-assets/58/jquery.bigtarget.1.0.1.js]点击下载源文件[/url] [/quote]
9. [url=http://www.appelsiini.net/projects/lazyload]Lazy loader[/url]
Lazy loader 是一个jQuery。它可以延迟加载页面里面的图片. 在用户浏览视界(页面中可见部分)以外的图片之前,它将不会被加载。这和[url=http://www.appelsiini.net/2007/6/sequentially-preloading-images]image preloading[/url]的作用正好相反. [quote] [url=http://www.appelsiini.net/projects/lazyload/enabled.html]点击查看预览效果[/url] [url=http://www.appelsiini.net/download/jquery.lazyload.js]点击这里下载源文件[/url] [/quote]
10. [url=http://plugins.jquery.com/project/bgiframe]bgiframe[/url]
轻松的解决IE下的z-index的问题。 [img]http://files.jb51.net/upload/2010-1/20100104214302170.jpg[/img] [quote] [url=http://brandonaaron.net/jquery/plugins/bgiframe/test/]点击查看预览效果[/url] [url=http://plugins.jquery.com/files/bgiframe_2.1.1.zip]点击这里下载源文件[/url] [/quote]
11. [url=http://odyniec.net/projects/iefixbuttons/]ieFixButtons[/url]
ieFixButtons 是一个修正IE6和7的<button>标签的bug的jquery插件。 [quote] [url=http://odyniec.net/projects/iefixbuttons/test.php]点击查看预览效果[/url] [url=http://plugins.jquery.com/files/iefixbuttons-0.3.zip]点击这里下载源文件[/url] [/quote]
12. [url=http://remysharp.com/2008/01/21/fixing-ie-overflow-problem/]溢出(overflow)修正[/url]
修正ie下的水平溢出。IE在溢出的元素里面显示一个滚动条,特别是如果元素里面只有一行,滚动条就会遮住这行内容。这个插件通过修改padding来修正这个问题。 [img]http://files.jb51.net/upload/2010-1/20100104214304165.jpg[/img] [quote]
[url=http://remysharp.com/demo/overflow.html]点击查看预览效果[/url] [url=http://plugins.jquery.com/files/jquery.fixoverflow.js.txt]点击这里下载源文件[/url] [/quote] [i]英文原文:[/i][url=http://www.noupe.com/css/using-javascript-to-fix-12-common-browser-headaches.html][i]Using Javascript to Fix 12 Common Browser Headaches[/i][/url] [i]中文翻译原文:[/i][url=http://www.qianduan.net/?p=52][i]用JAVASCRIPT修正12个常见的浏览器问题[/i][/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部