`
xxmavetti
  • 浏览: 17658 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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

阅读更多

javascript-浏览器-兼容性

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

  如果你不知道原因,不要过于担心,请研究CSS规则并查看这篇文章:使用CSS来修正一切: 20 +常见错误和修复

  如果这些也无效,您可以通过下面列出的12个javascript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了!

  在本文中,我们会揭开你在开发web应用是可能会遇到的12个最常见CSS问题 的javascript解决方案。

 

 

 

电影票

 

    成都电影兑换券(上面图片地址)

 

1. 自动匹配高度                                               

javascipt-自动匹配高度

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


1.1  用jQuery设置匹配高度

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

如何工作

  equalHeights()通过循环测定指定元素的最高级别的子节点,然后设置他们的最小高度值为最高的元素的高度。

点击这里预览效果


1.2  用jQuery匹配栏目高度

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

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

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

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


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

2. IE6 PNG透明支持

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

2.1  强制IE6支持透明

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

点击查看预览效果
点击下载源文件

2.2.  改良iFixPng

javascript-IE6-透明图片

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

点击查看预览效果
点击这里下载源文件

3. 用Javascript改变class

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


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

点击查看预览效果
点击下载源文件


4. CSS浏览器选择器

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

javascript-css-选择器

4.1  CSS Browser

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

点击查看预览效果
点击下载源文件

jQuery 浏览器选择器

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

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

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

点击查看预览效果


5. 最小/最大 高度/宽度支持

  针对CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性,这里有一些很好的jQuery修正。

5.1  jQMinMax

  这是一个为没有原声的支持min-width, max-width,min-height和max-height的地方添加支持的jQuery插件。

点击查看预览效果
点击下载源文件

5.2 JSizes

  这个小jQuery插件为CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性添加支持。特别是他提供一种方法来确定一个元素在那里可见。由于所有的型号的方法返回数值,所以这些也可以安全的使用在严格的DOM元素方面。

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});
});

点击查看预览效果
点击下载源文件


6. 元素垂直/水平居中

  你可能之前遇到过这个问题:水平或垂直居中某个元素。垂直居中在CSS里面相当麻烦,特别是你想支持所有主流浏览器。

javascrpt-垂直居中

6.1  Center element plugin

  这个插件可以使页面中的所有元素居中,垂直和水平居中采用css负margin的方法。

$(“element”).center(); //vertical and horizontal
$(“element”).center({
horizontal: false // only vertical
});

点击查看预览效果
点击下载源文件

6.2  我是怎么把一个元素垂直居中的?

  在这个视频教程里, Jeffrey Jordan Way将为你展示如何使用jQuery的力量结合CSS在你的浏览器里面使一个图片垂直居中.


7. 在IE里使用Q标签

  人们期望使用的Q标签而不是blockquote标签来显示引号。然而IE/Win不支持Q标签,因为这一点,大部分网站的作者选择不使用Q标签。

7.1  QinIE

  当你在你的文件的头部添加这个脚本在IE浏览器里自动扫描的网页Q的标记,并正确的显示它们(包括嵌套引用) 。当(如果)IE浏览器将来支持Q标签,这个插件将会添加浏览器版本检查。

点击下载源文件


8. 增加点击目标的大小和获得更多的响应转换

javascript-js

  通过把你的所有内容放到一个可点击的标签来和单调的“read more…”链接说拜拜吧。

点击下载源文件


9. Lazy loader

  Lazy loader 是一个jQuery。它可以延迟加载页面里面的图片. 在用户浏览视界(页面中可见部分)以外的图片之前,它将不会被加载。这和image preloading 的作用正好相反.

点击查看预览效果
点击这里下载源文件


10. bgiframe

轻松的解决IE下的z-index的问题。

javascript-bgiframe

点击查看预览效果
点击这里下载源文件


11. ieFixButtons

  ieFixButtons 是一个修正IE6和7的<button>标签的bug的jquery插件。

点击查看预览效果
点击这里下载源文件


12. 溢出(overflow)修正

  修正ie下的水平溢出。IE在溢出的元素里面显示一个滚动条,特别是如果元素里面只有一行,滚动条就会遮住这行内容。这个插件通过修改padding来修正这个问题。

javascript-overflow-解决

点击查看预览效果
点击这里下载源文件



英文原文:Using Javascript to Fix 12 Common Browser Headaches

中文翻译原文:用JAVASCRIPT修正12个常见的浏览器问题

分享到:
评论

相关推荐

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

    在本文中,我们会揭开你在开发web应用是可能会遇到的12个最常见的CSS问题的javascript解决方案。 1. 自动匹配高度 自从我们抛弃了基于Table的页面布局后,创建同等高度栏目或内容盒子的视觉效果已然是一个挑战。 ...

    用JAVASCRIPT修正12个常见的浏览器问题

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

    Javascript在IE和Firefox浏览器常见兼容性问题总结

    主要介绍了Javascript在IE和Firefox浏览器常见兼容性问题,结合实例形式总结分析了javascript在IE与Firefox浏览器中常见的各种兼容性问题与相应的解决方法,需要的朋友可以参考下

    css与javascript跨浏览器兼容性总结

    主要介绍了css与javascript跨浏览器兼容性,包括常见的css兼容性问题与javascript兼容性问题,以及IE与Firefox等常用浏览器的兼容性分析,需要的朋友可以参考下

    常见的浏览器兼容性问题(小结)

    浏览器的兼容性无非还是样式兼容性(css),交互兼容性(javascript),浏览器 hack 三个方面。 样式兼容性(css)方面 (1) 因为历史原因,不同的浏览器样式存在差异,可以通过 Normalize.css 抹平差异,也可以...

    JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)

    首先这里声明一下,关于我测试浏览器的版本是chrome15.0.874.121 Firefox 8.01 IE9 IETester 下面的代码关于声明 1:获得滚动条的情况 代码如下:function getScroll(){ var t, l, w, h; if (document....

    源文件程序天下JAVASCRIPT实例自学手册

    5.7 浏览器兼容性策略 5.8 本章小结 第6章 String、Math、Array等数据对象 6.1 String对象 6.1.1 如何使用String对象方法操作字符串 6.1.2 获取目标字符串长度 6.1.3 连接两个字符串 6.1.4 验证电子邮件地址的合法性...

    JavaScript基础和实例代码

    5.7 浏览器兼容性策略 5.8 本章小结 第6章 String、Math、Array等数据对象 6.1 String对象 6.1.1 如何使用String对象方法操作字符串 6.1.2 获取目标字符串长度 6.1.3 连接两个字符串 6.1.4 验证电子邮件地址的合法性...

    JavaScript入门经典(第3版) 附书源代码.rar

    麦可匹克 出版社: 清华大学出版社 第1章 eb与JavaScript概述1.1 JavaScript简介1.2 创建JavaScriptWeb应用程序所需的工具1.3 (script)标记:第一个简单的JavaScript程序1.4 浏览器及其兼容性问题1.5 关于“谁将...

    白帽子讲浏览器安全.钱文祥(带详细书签).pdf

    2 浏览器中常见的安全概念 13 2.1 URL 13 2.1.1 URL的标准形式 15 2.1.2 IRI 16 2.1.3 URL的“可视化”问题——字形欺骗钓鱼攻击 18 2.1.4 国际化域名字形欺骗攻击 19 2.1.5 自纠错与Unicode字符分解映射 20 ...

    JavaScript入门经典(第1版)书源代码

    1.4 浏览器及其兼容性问题 1.5 关于“谁将成为亿万富翁?”小测试的简介 1.6 小结第2章 avaScript中的数据类型与变量 2.1 JavaScript中的数据类型 2.2 变量——保存在内存中的数据 2.3 设置浏览器以显示错误...

    前端面试常见问题,大厂必备

    一个包含各种前端面试题的文字文件,其中包括了HTML、CSS、JavaScript、jQuery以及其他相关的前端技术的面试题,以及前端开发的基础知识和方法。文件中还包含了关于面试者所需要掌握的其他技能的题目,以及一些关于...

    前端开发常见问题汇总概要总结.docx

    布局与样式兼容性:不同浏览器对CSS标准支持程度各异,导致布局差异,需要处理盒模型、float、positioning、flexbox、grid等方面的兼容问题。 响应式设计:移动设备适配、屏幕分辨率变化下的布局调整和图像自适应等...

    深入PHP与jQuery开发 pdf格式

    在跨浏览器开发过程中,可方便地使用库内建的兼容所有浏览器的方法而不必手工编码进行浏览器兼容性检查,这极大地节省了编码时间,解决了跨浏览器开发过程中的棘手问题。 提示 我们将在第2章演示使用jQuery的AJAX...

    利用函数的惰性载入提高javascript代码执行效率

    在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题。 例如,我们最常见的为 dom 节点添加事件的函数: 代码如下: ...

    详解适配器在JavaScript中的体现

    适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题、整合多个第三方SDK的调用,都可以看到它的身影。 其实在日常开发中,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就是老前辈们总结...

    mout:模块化JavaScript实用工具

    所有代码都是与库无关的,并且主要由与DOM不直接相关的辅助方法组成,该库的目的不是代替Dojo,jQuery,YUI,Mootools等,而是为常见的问题提供模块化解决方案大多数人都无法解决。 将其视为跨浏览器JavaScript标准...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法...

Global site tag (gtag.js) - Google Analytics