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

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

如果你不知道原因,不要过于担心,您可以通过下面列出的12个JavaScript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了。

1. 自动匹配高度

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

◆用jQuery设置匹配高度

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

预览效果地址:

http://www.filamentgroup.com/examples/equalHeights/

◆用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用户 ,同时为网站的大多数访客带来最佳的透明效果。

◆强制IE6支持透明

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

预览效果地址:

http://ie7-js.googlecode.com/svn/test/index.html

◆改良iFixPng

修正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在基于当前的浏览器的名字的标签会怎么样?

◆CSS Browser

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

◆jQuery浏览器选择器

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

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

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

预览效果地址:

http://agachi.name/tests/jquery/css-selectors/

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

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

◆jQMinMax

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

◆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里面相当麻烦,特别是你想支持所有主流浏览器。

◆Center element plugin

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

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

7. 在IE里使用Q标签

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

◆QinIE

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

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

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

9. Lazy loader

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

10. bgiframe

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

11. ieFixButtons

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

12. 溢出(overflow)修正

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

JavaScript解决常见浏览器兼容问题相关推荐

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

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

  2. 解决360浏览器兼容模式的页面显示问题

    解决360浏览器兼容模式的页面显示问题 参考文章: (1)解决360浏览器兼容模式的页面显示问题 (2)https://www.cnblogs.com/njy888888/p/7827200.html ...

  3. WEB前端开发人员须知的常见浏览器兼容问题及解决技巧

    为什么会有兼容问题? 由于浏览器种类众多,不同的浏览器其内核亦不尽相同,故各个浏览器对网页的解析有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要做好浏览 ...

  4. 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

    什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们 ...

  5. 浏览器兼容css hack,CSS Hack技术解决多浏览器兼容问题

    本文向大家描述一下如何使用CSS Hack技巧解决DIV+CSS布局多浏览器兼容问题,针对不同的浏览器写不同的CSS代码的过程,就叫CSS Hack,相信本文介绍一定会让你有所收获. CSS Hack ...

  6. html css常见浏览器兼容问题总结

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码: 1 margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height), ...

  7. 360兼容模式页面错位_解决360浏览器兼容模式的页面显示问题

    由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览.基于IE的内核用于兼容网银.旧版网站.以360的几款浏览器为例,我们优先通过Webkit内核渲染主流的网 ...

  8. Ajax解决IE浏览器兼容问题

    ServletContext 被 Servlet 程序用来与 Web 容器通信.例如写日志,转发请求.每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享. 因为Context ...

  9. 常见的浏览器兼容问题及解决方案

    1 浏览器内核 不同浏览器的内核也不尽相同,所以各个浏览器对网页的解析存在一定的差异. 常见的浏览器内核: 浏览器名称 内核 IE Trident内核,也称IE内核 Chrome(谷歌) 以前是Web ...

最新文章

  1. PHP的Composer install、require、update
  2. 【华科考研机试题】最长最短文本
  3. boot分布式计算 spring_腾讯T4大佬剖析SpringBoot2 :从搭建小系统到架构分布式大系统...
  4. Python小白的数学建模课-B3. 新冠疫情 SIS模型
  5. 【转】Android 如何获取SDCard 内存(二)
  6. iQOO Neo5入网:搭载双电芯方案 标配66W快充
  7. 编写一个程序解决选择问题。令k=N/2。
  8. 《zw版·Halcon-delphi系列原创教程》halconxlib控件列表
  9. php mysql旅游管理系统毕业设计网站作品
  10. Hibernate与mybatis比较
  11. 视频类App原型制作分享-VUE
  12. webpack 编译stylus_webpack4 引入stylus和css, npm run build后.styl文件没有提取出来
  13. linux 修改文件的权限
  14. 优雅的处理Exception
  15. 悬浮窗一个怎么够?微信新版本满足你的一心多用
  16. 权重较高的几个分类信息网站
  17. 一万年太久,只争朝夕_散文网
  18. WinEdt字体大小修改
  19. 安全架构--8--我设计的企业安全体系架构
  20. 【RASA】NLU模块组件分析

热门文章

  1. mysql运维监控工具排名_最全的监控工具盘点|无监控,不运维!
  2. 使用TF-IDF对UGC基于用户标签推荐算法的改进
  3. 数的三次方根(C++)
  4. 求问,固态硬盘格式化问题
  5. 超大屏幕模拟鼠标,投影屏幕触摸屏,会场投影屏互动触摸事件
  6. HTML页面自动跳转的五种实现方法
  7. 【数学】相似对角化和约旦标准型求法(附带Matlab代码)
  8. 2018年计算机基础应用教程,[2018年最新整理]Word的使用-计算机基础教程.ppt
  9. Excel如何批量将图片按比例扩大?
  10. 玩谁是卧底吗?用C语言帮你盘逻辑