关于各个浏览器的兼容问题

1.ie7中a标签的宽高与其父元素li不一样(现在浏览器中宽高是默认一样的)

方法:给a标签设置固定的宽、高

2.ie6以下对除了a之外的元素的hover不起作用等兼容问题

方法:

 body{
        behavior:url(csshover.htc);//引入该文件
      }
//csshover.htc源代码
<attach event="ondocumentready" handler="parseStylesheets"/>
<script language="JScript">
var currentSheet, doc = window.document, activators = {
onhover:{on:‘onmouseover‘, off:‘onmouseout‘},
onactive:{on:‘onmousedown‘, off:‘onmouseup‘}
};
function parseStylesheets(){
var sheets = doc.styleSheets, l = sheets.length;
for(var i = 0; i < l; i++){
parseStylesheet(sheets[i]);
};
};
function parseStylesheet(sheet){
if(sheet.imports){
try{
var imports = sheet.imports, l = imports.length;
for(var i = 0; i < l; i++){
parseStylesheet(sheet.imports[i]);
};
}catch(securityException){};
};
try{
var rules = (currentSheet = sheet).rules, l = rules.length;
for(var j = 0; j < l; j++){
parseCSSRule(rules[j]);
};
}catch(securityException){};
};
function parseCSSRule(rule){
var select = rule.selectorText, style = rule.style.cssText;
if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).test(select) || !style) return;
var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, ‘on$1‘);
var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, ‘.$2‘ + pseudo);
var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];
var affected = select.replace(/:hover.*$/, ‘‘);
var elements = getElementsBySelect(affected);
currentSheet.addRule(newSelect, style);
for(var i = 0; i < elements.length; i++){
new HoverElement(elements[i], className, activators[pseudo]);
};
};
function HoverElement(node, className, events){
if(!node.hovers) node.hovers = {};
if(node.hovers[className]) return;
node.hovers[className] = true;
node.attachEvent(events.on, function(){
node.className += ‘ ‘ + className;
});
node.attachEvent(events.off, function(){
node.className = node.className.replace(new RegExp(‘\\s+‘+className, ‘g‘),‘‘);
});
};
function getElementsBySelect(rule){
var parts, nodes = [doc];
parts = rule.split(‘ ‘);
for(var i = 0; i < parts.length; i++){
nodes = getSelectedNodes(parts[i], nodes);
};
return nodes;
};
function getSelectedNodes(select, elements){
var result, node, nodes = [];
var classname = (/\.([a-z0-9_-]+)/i).exec(select);
var identify = (/\#([a-z0-9_-]+)/i).exec(select);
var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ‘‘);
for(var i = 0; i < elements.length; i++){
result = tagName ? elements[i].all.tags(tagName) : elements[i].all;
for(var j = 0; j < result.length; j++){
node = result[j];
if((identify && node.id != identify[1]) || (classname && !(new RegExp(‘\\b‘ + classname[1] + ‘\\b‘).exec(node.className)))) continue;
nodes[nodes.length] = node;
};
};
return nodes;
};
</script> 

3.检测ie6版本

//js兼容ie6
window.onload=function(){
    //判断是否为IE浏览器
    var isIE=!!window.ActiveXObject;
    var isIE6=isIE&&!window.XMLHttpRequest;
}
//Jquery兼容IE6
$(function(){
    if($.browser.msie&&$.browser.version.substr(0,1)<7){

    }
   //高版本的jquery检验ie6
   $.support.leadingWhitespace
})

4.

时间: 2024-10-12 14:47:45

关于各个浏览器的兼容问题的相关文章

IE6 浏览器常见兼容问题 大汇总(23个)

IE6以及各个浏览器常见兼容问题 大汇总 综述:虽然说IE6在2014年4月将被停止支持,但是不得不说的是,IE6的市场并不会随着支持的停止而立刻消散下去,对于WEB前端开发工程师来说,兼容IE6 兼容各个浏览器,依然是不得不面对的工作. 在此总结了常见的浏览器兼容问题,里面也有IE6的常见兼容问题,供大家分享. 如需转载,请注明出处:网易博客-独行冰海:IE6 浏览器常见兼容问题 大汇总 1.<!DOCTYPE HTML>文档类型的声明. 产生条件:IE6浏览器,当我们没有书写这个文档声明的

强制浏览器使用兼容模式,Web.config,httpProtocol

对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以,强制浏览器使用指定版本的兼容模式运行,变得势在必行. <configuration> <system.webServer> <!-- 设定网站服务器以指定预设兼容性模式 Lionden --> <httpProtocol> <customHeaders&g

关于浏览器的兼容问题

浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题.在网站的设计和制作中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示.而对于浏览器软件的开发和设计,浏览器对标准的更好兼容能够给用户更好的使用体验. 产生原因:因为不同浏览器使用内核及所支持的HTML等网页语言标准不同:以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果.最常见的问题就是网页元素位置混乱,错位. 解决方法: 对于网站开发者来说 目

【转载】各浏览器CSS兼容问题

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并 整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名. CSS技巧 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容

sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法

昨晚配置完成office web apps 2013的外部网络访问之后,今天发现了一个很奇怪的问题,就是IE 11不支持文档在线浏览,找了很多方法,打补丁什么的,都不管用,最后在预览文件的页面,看到<head>标签,里面有一句代码: <meta http-equiv="X-UA-Compatible" content="IE=99" /> 我把他改成了 <meta http-equiv="X-UA-Compatible&quo

强制浏览器使用兼容模式(IE)

对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以,强制浏览器使用指定版本的兼容模式运行,变得势在必行. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <configuration>   <system.webServer>     <!-- 设定网站服务器以指定预设兼容性模式 Lionden -->

如何强制浏览器使用兼容模式

对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以,强制浏览器使用指定版本的兼容模式运行,变得势在必行.若要使 Microsoft IIS 能够定义自定义 HTTP 响应标头以便所有页面自动以 EmulateIE7 模式呈现,您可以使用以下 web.config 示例 <configuration>   <system.webServer&g

[转文]浏览器的兼容

浏览器的内核 Mozilla Firefox ( Gecko ) Internet Explorer ( Trident ) Opera ( Presto ) Safari ( WebKit ) Google Chrome ( WebKit )<!--more-->腾讯TT.世界之窗.360浏览器.遨游浏 览器都是给IE加了个外壳,不过如果电脑上装的是ie8的话,这些浏览器还是调用ie7的内核.搜狗浏览器比较特殊,它有两种浏览模式:一是兼容模式,该 模式使用IE内核:二是高速模式,该模式使用W

浅谈浏览器的兼容问题

前端以产品为核心,以用户体验为基础.自然作为前段开发人员,做好用户体验,浏览器的兼容问题不可忽视,合理的布局自不必提.接下来列举几种常见的浏览器兼容问题及解决办法. 字体大小问题 FireFox浏览器的默认字体为13px:而IE浏览器默认为16px. 解决方法:指定字体大小,font-size:14px;. ul和ol列表的缩进问题 消除ul.ol列表的缩进样式.设置样式:list-style:none;margin:0;padding:0;(margin属性针对IE生效,padding属性针对

IE6以及各个浏览器常见兼容问题 大汇总

综述:虽然说IE6在2014年4月将被停止支持,但是不得不说的是,IE6的市场并不会随着支持的停止而立刻消散下去,对于WEB前端开发工程师来说,兼容IE6 兼容各个浏览器,依然是不得不面对的工作.在此总结了常见的浏览器兼容问题,里面也有IE6的常见兼容问题,供大家分享. 如需转载,请注明出处:网易博客-独行冰海:IE6 浏览器常见兼容问题 大汇总1.<!DOCTYPE HTML>文档类型的声明.产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象:解决办法