css和js的浏览器不兼容问题汇总

前端面试——浏览器兼容问题 前端面试——浏览器兼容问题一、css样式兼容性问题 一、css样式兼容性问题 ie8浏览器不支持css3,像: ie8对选择器支持情况 ie8支持:first-child,但不支持:last-child、:last-of-type、:first-of-type、:nth-child(n)、:nth-last-child(n)、:nth-of-type(n)、:nth-last... 阅读详情


转自:http://blog.youkuaiyun.com/u011043843/article/details/28160483

1.集合类对象问题
说明:IE下,可以使用()或[]获取集合类对象;
Firefox下,只能使用[]获取集合类对象.
解决方法:统一使用[]获取集合类对象.

2.HTML对象获取问题
FireFox:document.getElementById("idName");
ie:document.idname或者document.getElementById("idName").
解决办法:统一使用document.getElementById("idName");

3.const问题
说明:Firefox下,可以使用const关键字或var关键字来定义常量;
IE下,只能使用var关键字来定义常量.
解决方法:统一使用var关键字来定义常量.

4.window.event问题
说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.   Firefox必须从源处加入event作参数传递。Ie忽略该参数,用window.event来读取该event。
解决方法:
IE&Firefox:
Submitted(event)"/>   …
<script   language="javascript">
function   Submitted(evt)   {
evt=evt?evt:(window.event?window.event:null);
}
< /script>

5.event.x与event.y问题
说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;
Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.
解决方法:使用mX(mX   =   event.x   ?   event.x   :   event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.

6.event.srcElement问题
说明:IE下,event对象有srcElement属性,但是没有target属性;
Firefox下,even对象有target属性,但是没有srcElement属性.
解 决方法:使用obj(obj   =   event.srcElement   ?   event.srcElement   :   event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.     请同时注意event的兼容性问题。

7.window.location.href问题
说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;
Firefox1.5.x下,只能使用window.location.
解决方法:使用window.location来代替window.location.href.

8.模态和非模态窗口问题
说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能.
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。
如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口.
例如:var   parWin   =   window.opener;   parWin.document.getElementById("Aqing").value   =   "Aqing";

9.frame问题
以下面的frame为例:
<frame   src="xxx.html"   id="frameId"   name="frameName"   />

(1)访问frame对象:
IE:使用window.frameId或者window.frameName来访问这个frame对象.   frameId和frameName可以同名。
Firefox:只能使用window.frameName来访问这个frame对象.
另外,在IE和Firefox中都可以使用window.document.getElementById("frameId")来访问这个frame对象.

(2)切换frame内容:
在 IE和Firefox中都可以使用window.document.getElementById("testFrame").src   =   "xxx.html"或window.frameName.location   =   "xxx.html"来切换frame的内容.
如果需要将frame中的参数传回父窗口(注意不是opener,而是parent   frame),可以在frame中使用parent来访问父窗口。例如:parent.document.form1.filename.value="Aqing";

10.body问题
Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在.

11.   事件委托方法
IE:document.body.onload   =   inject;   //Function   inject()在这之前已被实现
Firefox:document.body.onload   =   inject();

12.   firefox与IE的父元素(parentElement)的区别
IE:obj.parentElement
firefox:obj.parentNode
解决方法:   因为firefox与IE都支持DOM,因此使用obj.parentNode是不错选择.

13.cursor:hand   VS   cursor:pointer
firefox不支持hand,但ie支持pointer
解决方法:   统一使用pointer

14.innerText在IE中能正常工作,但是innerText在FireFox中却不行.   需用textContent。
解决方法:
if(navigator.appName.indexOf("Explorer")   >   -1){
        document.getElementById('element').innerText   =   "my   text";
}   else{
        document.getElementById('element').textContent   =   "my   text";
}

15.   FireFox中设置HTML标签的style时,所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的。

16.   ie,firefox以及其它浏览器对于   table   标签的操作都各不相同,
在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChild方法也不管用。
解决方法:
//向table追加一个空行:
var   row   =   otable.insertRow(-1);
var   cell   =   document.createElement("td");
cell.innerHTML   =   "   ";
cell.className   =   "XXXX";
row.appendChild(cell);

17.   padding   问题
padding   5px   4px   3px   1px   FireFox无法解释简写,
必须改成   padding-top:5px;   padding-right:4px;   padding-bottom:3px;   padding-left:1px;

18.   消除ul、ol等列表的缩进时
样式应写成:list-style:none;margin:0px;padding:0px;
其中margin属性对IE有效,padding属性对FireFox有效

19.   CSS透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。

20.   CSS圆角
IE:不支持圆角。
FF:   -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border-   radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-   bottomright:4px;。

21.   CSS双线凹凸边框
IE:border:2px   outset;。
FF:   -moz-border-top-colors:   #d4d0c8   white;-moz-border-left-colors:   #d4d0c8   white;-moz-border-right-colors:#404040   #808080;-moz-border-bottom-colors:#404040   #808080;

22.   对select的options集合操作
枚 举元素除了[]外,SelectName.options.item()也是可以的,   另外SelectName.options.length,   SelectName.options.add/remove都可以在两种浏览器上使用。注意在add后赋值元素,否则会失败。

23.   XMLHTTP的区别
//mf
if   (window.XMLHttpRequest)   //mf
    {
    xmlhttp=new   XMLHttpRequest()
    xmlhttp.onreadystatechange=xmlhttpChange
    xmlhttp.open("GET",url,true)
    xmlhttp.send(null)
    }
//ie
else   if   (window.ActiveXObject)     //   code   for   IE
    {
    xmlhttp=new   ActiveXObject("Microsoft.XMLHTTP")
        if   (xmlhttp)
        {
        xmlhttp.onreadystatechange=xmlhttpChange
        xmlhttp.open("GET",url,true)
        xmlhttp.send()
        }
    }
}

24.css中的width和padding
在IE7和FF中width宽度不包括padding,在Ie6中包括padding.

25.css hack
根据不同浏览器对CSS样式的支持程度,解析结果和识别CSS的优先级不同,设计师们就可以根据这些不同浏览器 的特点来书写不同的CSS样式代码。IE6能识别下划线_和星号*,IE7能识别星号*,不能识别下划线_,而firefox两个都不能识别,如此,就可 以针对IE6.IE7和FF通过对这些特殊符号的使用写不同的代码了。

<style>
div{
background:green; /* for FireFox */
*background:red; /* for IE7 */
_background:blue; /* for IE6 */
}
< /style>

该样式显示的效果是:在FireFox中背景色为green;在IE7中背景色为red;在IE6中背景色为blue。

此外,!important声明也可以很好地提升指定样式规则的应用优先权。在IE6和FF中用!important声明可以提高优先级别,但在 IE6中 的!important声明会被之后的同名属性定义替换。所以,通过*和!important声明两者的搭配也可以很好地解决IE6,IE7和FF三者之 间的兼容性问题。

区别FF,IE7,IE6:background:red; *background:green !important; *background:blue;

注:IE都能识别*;FF不能识别*;IE6能识别*,但不能识别 !important;IE7能识别*,也能识别!important;FF不能识别*,但能识别!important;

针对IE7/firefox 在css的前面加 [xmlns], 如下面的left属性,如果我想要只针对IE7/firefox起作用,写法如下:
[xmlns] #left {
float:left;
border:4px solid #999;
padding:5px;
width:200px;
height:200px;
}
只针对IE6起作用,可以在css前面加* html,如:
* html #left {
clear:both;
}

只针对IE7起作用,在css里前面加*+html,如:
*+html #left {
clear:both;
}

书写的顺序都是FireFox的写在前面,IE7的写在中间,IE6的写在最后面。

26.使用IE专用的条件注释

<!--其他浏览器 -->
< link rel="stylesheet" type="text/css" href="css.css" />

< !--[if IE 7]>
< !-- 适合于IE7 -->
< link rel="stylesheet" type="text/css" href="ie7.css" />
< ![endif]-->

< !--[if lte IE 6]>
< !-- 适合于IE6及一下 -->
< link rel="stylesheet" type="text/css" href="ie.css" />
< ![endif]-->

27.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行

28.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以

29.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。

30.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;}
注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

31.IE5 和IE6的BOX解释不一致
IE5下div{width:300px;margin:0 10px 0 10px;}
div 的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以 300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改 div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

ie浏览器兼容性问题汇总 1、去掉箭头函数 可处理 2、ie8不能使用every语句 可处理 3、去掉最后一个逗号,ie最后一个不能加逗号。 可处理 4、ie8不能使用forEach兼容 可处理 5、ie8不能赢媒体查询 可能可处理 解决方法:引用 <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></... 阅读详情

相关推荐

玩转CSS:用ul li +JS 模拟select,避坑浏览器不兼容。

在前端的工作中,经常会遇到 selcet控件,但我们用css来写它的样式时候,总是不那么令人满意,各种浏览器不兼容啊有没有?那么,我本篇文章就给大家提供一个思路:用UL 和li 模拟 select 控件,让我们用起来可以避免令人心烦的调整样式问题。

uu0216的博客 737

CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法

CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法 关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一、CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对… 一、

java实验室 6万+

阿里云一键登录Java后端实战:5分钟搞定号码认证服务集成(附完整代码)

本文详细介绍了如何在Java后端项目中快速集成阿里云号码认证服务(PNVS),实现高效、安全的一键登录功能。文章从核心架构、安全机制解析入手,提供了完整的Maven依赖配置、服务端环境准备、核心业务逻辑实现(包括Token验证、用户处理、异常降级)以及生产环境下的性能优化、监控与部署方案,并附有可直接使用的完整代码示例。

p1q2r的博客 849

ie浏览器样式兼容写法_针对IE浏览器的CSS样式(兼容性)

1. IE hacks:"_" 是IE6 专有的hack;"\9" 对IE6-IE10都有效;"\0"对IE8-IE10都有效;"\9\0"对IE9-IE10都有效;优点:CSS hacks 内嵌在普通的 CSS 里面,不会产生更多 HTTP 请求。CSS hacks 内嵌在普通的 CSS 里面,编写时比较方便。缺点:它是不标准的产物。内嵌在其他 CSS 中,不便维护。尤其是当 hacks 的数...

weixin_39862794的博客 615

python爬虫自动下载网页链接

需求分析 今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的: Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...

da_kao_la的博客 1万+

RDD2022 数据格式转换与清洗

Rdd2022数据集,是关于道路损伤的数据集,与rdd2020相比增加了两万多张图片但是由于格式不能被yolo直接使用且其中有大量的图片没有符合要求的标注,特写此文章记录数据清洗与格式化的过程。

蓝胖子的博客 9960

CSS浏览器兼容性问题,2

1. Sass中写css hack $hack_ie7:'+'; #iditem{ #{$hack_ie7}display: inline; }   2.      Volecity foreach获取下标和size $!{velocityCount}数量是从1开始的 #foreach($fundDet in $!list)            $!{velocityCount} 

binggoogle的专栏 559

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目 注:本文主要目的是对于往年国奖项目案例-可视化项目的深入剖析讲解,对源码、项目特点、要点、特色继续深入分析。帮助大家学习技术,掌握规律。

一键难忘的博客 3730

针对IE6\7\8\9\10浏览器的CSS 兼容大全详解

目前IE内核浏览器仍然是国内主流浏览器,占据着PC浏览器的大部分市场份额,版本从IE6到IE10,所有前端工作者都必须面对和解决多个IE浏览器对代码的兼容性问题。在很多情况下,我们需要专门针对IE写css样式,即针对IE的css hack,下面将详细介绍这些内容: 1、常见的特殊符号的应用: IE6: _selector{property:value;} selector{ property:v...

luwenze的博客 884

3.PCIe协议分析1-预备知识点

PCIE协议分析1主要讲一下四方面: PCI-E配置空间 PCI-E地址映射 PCI-E Bar空间 PCI-E层级结构详谈 (1)PCIE配置空间 我们过来学习PCIE的同学应该都接触各种类型的功能芯片吧,这些功能芯片连接在电路里面我们可以认为它是一个外部设备,这些设备里面有自己独有的寄存器区域,比如SDRAM里面的ID寄存器或者其他配置寄存器。好的,其实我们PCIE板卡也相当...

一个早起的程序员 4145

SAP 物料主数据 Forecasting 视图,别把预测只当成一个数字字段

摘要(150字): SAP S/4HANA物料主数据的Forecasting视图常被忽视,但对依赖历史消耗规律的物料至关重要。该功能基于工厂维度的历史消耗数据,结合预测参数自动计算未来需求,动态调整重订货点和安全库存。预测模板(Forecast Profile)能标准化参数设置,而消耗数据(Consumption Values)的质量直接影响预测结果。预测值作为MRP输入,需注意保存操作才能生效。自动重订货点功能通过分析消耗波动和服务水平,实现库存策略的动态优化。Individual Forecast功能则

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1437

常见的浏览器css和js兼容性问题汇总

随着现代浏览器发展速度太快,种类多,版本多,不同厂商浏览器或同一厂商不同版本的浏览器,对css的解析不同,以至于出现浏览器的渲染规范和css的渲染规范出现不兼容性,表现为同样的代码在不同浏览器下的显示效果出现差异化。下面是我的一些解决兼容性的方法。 css兼容 1、 css hack css hack,让css代码兼容IE浏览器,呈现出和其他厂商浏览器相同的UI界面。 方式一:条件注释...

mo123456opuiop的博客 1413

python:实现矩阵SVD分解(附完整源码)

python:实现矩阵SVD分解(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 604

不同浏览器CSS样式不兼容问题

  一句话,我想的太复杂了。向朋友请教才了解到,其实只要加个判断即可,首先获取到浏览器的基本信息,像什么版本啊,名称啊、默认语言啊等等,然后根据不同浏览器默认加载不同CSS样式即可,获取浏览器版本的连接如下:   获取浏览器版本信息的具体方法:https://www.cnblogs.com/muscleape/p/6897356.html   第二个感觉很全的连接:https://b...

diaoshu2256的博客 640

cesium 实现经纬线绘制和经纬度标注

废话不对数直接上线效果图及代码 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=

一碗老面的博客 2570

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

201906学习计划-css不兼容ie8汇总

css 兼容 ie8 汇总

chenxiaoyi0207的博客 436

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CSS、JS在不同浏览器的兼容性问题

1.css在不同浏览器下显示效果不同 firefox和IE对某些css样式的认定有不少区别,包括: ul和ol的默认padding值是不一样的,在Firefox中,padding-left默认值为40px左右,而IE中为0,只能将它们指定为20px才保证在两个浏览器中显示效果一样;对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大,也只能设置为14px

1951

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

前端浏览器开发中的浏览器兼容问题【持续更新】

浏览器兼容问题指:“不同浏览器(IE、Chrome、FireFox、Safari、Edge)对同一种CSS样式或同一段JS代码的解析和渲染会有所不同”,从而用户在不同浏览器环境下的访问呈现的页面效果不一致。浏览器兼容问题分为:“CSS兼容问题”、“JavaScript兼容问题造成浏览器兼容问题的根本原因是:“不同浏览器使用的内核不同”,不过随着时代的发展Webkit内核逐渐统一市场,浏览器兼容问题也越来越少。浏览器内核IETridentChromeBlinkFirefoxGecko。

zheshiyangyang的博客 2477

CSS、JS文件无法正确加载至页面问题与解决

在开发Java Web项目时,遇到CSS和JavaScript文件无法正确加载至页面的问题

sakurapaid的博客 9912

浏览器兼容性(手机、电脑。js、html、css)

浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。 碰到频率:100% 解决方案:CSS里 *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。 浏览器兼容问题二:块属性标...

枫叶时代的博客 2362

前端开发中常见的浏览器兼容性问题及解决方案

所谓的浏览器兼容性问题,是指因为不同浏览器对同一段代码有着不同的解析,所造成页面显示效果不统一的情况。为此,解决浏览器兼容,也成为了跨浏览器开发的一个核心问题。当初微软不加入W3C,使得后者不采用IE的方案,而在IE掉队,Chrome与Firefox崛起后,已经有大量开发者基于IE标准开发了大量的Web产品,让浏览器不得不用兼容模式来解决这一问题。再加上不同浏览器采用的内核不同,由于缺乏统一的开发标准,以及各大浏览器厂商为了凸显产品的特色,更是使得整个浏览器行业出现了百花齐放的状态。

qq_34082921的博客 1万+

js 打印预览_JavaScript设置默认横向打印,兼容IE浏览器,谷歌浏览器

通常来说我们需要使用打印功能一般都是直接使用window.print(),因为此方法兼容目前所有浏览器,但如果需要设置打印的一些参数的话,其实各种浏览器之间都有种区别,造成不兼容。这里说一下关于设置默认横向打印的一些写法,亲测有效。首先先说谷歌浏览器吧,它设置默认横向是比较简单的,可以通过设置css或js的方法,如://一般语言的css写法: js写法,只需要将下面代码调用放在window.pri...

weixin_39902472的博客 3204

JS 实现指定 UA 访问网站跳转弹窗提醒,解决夸克等浏览器兼容性问题

部分移动端浏览器(如夸克、UC、百度APP、微信内置浏览器)存在兼容性问题,导致网页显示异常、功能失效。我们通过JS检测浏览器UA,对不兼容的浏览器自动跳转至提示页,引导用户使用标准浏览器。该方案无需修改服务器配置,前端即可快速部署,有效提升了用户体验和访问稳定性。测试表明,该方法能准确识别问题浏览器并提供清晰提示,同时不影响正常浏览器的使用。

2403_89860807的博客 1322
上一篇: 浏览器兼容问题汇总
下一篇: 第五届在线编程大赛月赛第一题:完全平方数的个数
wingahi
博客等级 码龄15年 15粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值