IE火狐兼容性问题
- 格式:docx
- 大小:31.09 KB
- 文档页数:12
IE与Firefox兼容性问题一、脚本兼容性脚本语言要使用javascript,不要使用vbscript,因为vbs只有IE支持,火狐是不支持的关于获取form表单数据,国际通用的标准是根据id获得,但是IE也可以通过name获得,为了兼容性,还是选择id吧,另外,FF也不支持IE的document.all,要用通用的document.getElementById自定义属性问题说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.解决方法:统一通过getAttribute()获取自定义属性.document.formName.item("itemName") 问题说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"].解决方法:统一使用document.formName.elements["elementName"].集合类对象问题说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象.解决方法:统一使用[]获取集合类对象.eval("idName")问题说明:IE下,可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能使用getElementById("idName")来取得id为idName的HTML对象.解决方法:统一用getElementById("idName")来取得id为idName的HTML对象.变量名与某HTML对象ID相同的问题说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下则不能。
浏览器兼容新问题W3C对标准的推进,Firefox,Chrome,Safari,Opera的出现,结束了IE雄霸天下的日子。
然而,这对开发者来说,是好事,也是坏事。
说它是好事,是因为浏览器厂商为了取得更多的市场份额,会促使各浏览器更符合W3C标准,而得到更好的兼容性,并且,不同浏览器的扩展功能(例如 -moz,-webkit开头的样式),对W3C标准也是个推进;说它是坏事,因为,多个浏览器同时存在,这些浏览器在处理一个相同的页面时,表现有时会有差异。
这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。
我们把引起这些差异的问题统称为“浏览器兼容性问题”。
而正是这些“浏览器兼容性问题”,无形中给我们的开发增加了不少难度。
从浏览器内核的角度来看,浏览器兼容性问题可分为以下三类:1. 渲染相关:和样式相关的问题,即体现在布局效果上的问题。
2. 脚本相关:和脚本相关的问题,包括JavaScript和DOM、BOM方面的问题。
对于某些浏览器的功能方面的特性,也属于这一类。
3. 其他类别:除以上两类问题外的功能性问题,一般是浏览器自身提供的功能,在内核层之上的。
例如下面的页面,是一个渲染相关的问题:在各个浏览器中都表现的不同,这就属于兼容性问题。
造成浏览器兼容性问题的根本原因就是浏览器各浏览器使用了不同的内核,并且它们处理同一件事情的时候思路不同。
现今常见的浏览器及其排版引擎(又称渲染引擎)及脚本引擎,如下:而造成浏览器兼容性问题的常见原因则是设计师写出了不规范的代码,不规范的代码会使不兼容现象更加突出。
例如:不规则的嵌套:DIV 中直接嵌套 LI 元素是不合标准的,LI 应该处于 UL 内。
此类问题常见的还有 P 中嵌套 DIV, TABLE 等元素。
不规范的DOM接口和属性设置:上面代码中top的值,其实应该是一个字符串值,需有单位。
例如:35px。
总之,人为的原因也占很大一部分。
浏览器兼容性的解决方法随着互联网的不断发展,浏览器也得到了越来越多的重要性。
从最初的简单浏览功能到现在的多样化应用,浏览器正变得越来越重要。
但是,不同的浏览器有不同的协议和语言,可能会导致网页在不同的浏览器中显示不同的效果。
所以我们需要解决浏览器兼容性问题。
浏览器兼容性问题浏览器兼容性问题是在不同的浏览器中显示不一致的问题,有时候还会出现网页无法正常显示的问题。
这是因为每个浏览器都有各自的实现标准和处理方式,而网页制作人员通常只考虑一种浏览器,没有考虑到其他浏览器访问自己的网站,导致了这种兼容性问题。
实际上,在网站开发的过程中,应该优先考虑多种浏览器,尤其是Internet Explorer和Firefox在不同版本之间的差异。
这样才能让网站在不同的环境下,不同的浏览器和不同的操作系统下都能完美的运行。
解决浏览器兼容性问题虽然不同的浏览器有不同的实现标准,但是我们可以采用一些措施来解决这种浏览器兼容性问题。
1.使用标准的HTML/CSS/Javascript遵循HTML、CSS和JavaScript的标准,是解决浏览器兼容性问题的基础。
这样的编写方式通常可以使网站在大多数浏览器中运行良好。
如果您尝试按照标准编写只能在一种浏览器中工作的网页,那么它就不会在其他浏览器上工作良好。
所以,标准的HTML/CSS/Javascript是解决浏览器兼容性问题的关键。
2.使用CSS Reset在CSS Reset中,使用过CSS的开发者可能都有过这样的经历:每种浏览器都默认有自己的样式表文件,这就是为什么某些元素在设计页面时会出现各种奇怪的问题。
CSS Reset 的目的就是将所有浏览器的默认样式表重置,以达到统一的目的,从而减少浏览器兼容性问题。
3.使用BootstrapBootstrap是一个开源的前端框架,它包含众多基于HTML、CSS和JavaScript的组件,可以快速构建一个响应式、移动优先的网站。
网页设计如何解决兼容性问题网页〔制定〕如何解决兼容性问题firefox下div容器定义height后,div不会因为内容超出height而撑大,而i6e下是会被内容撑大,高度限定失效。
所以不要轻易给容器定义height。
下面介绍网页制定如何解决兼容性问题,希望对您有所帮助。
1. 文字大小不兼容同样14px的宋体字,ie下实际占高16px,下留白3px,firefox 下实际占高17px,上留白1px,下留白3px。
文字大小不兼容解决方案:给所有文字设定通用line-height 值2.div高度不兼容firefox下div容器定义height后,div不会因为内容超出height而撑大,而i6e下是会被内容撑大,高度限定失效。
所以不要轻易给容器定义height。
div高度不兼容解决方案:如果设置高度,必须要同时把内容物高度限定,也就是溢出隐藏处理:overflow:hidden;或者当必须要随着内容自适应高度,但又想div有一个最小的高度时候,像这样做min-height: 1400px;max-height:none;_height:1400px;3.div宽度不兼容如果div容器设定float浮动但没设定宽度,那么也会出现ie6和firefox的不兼容。
firefox下内容会撑开容器渗入它前面的div,ie6下该div内容折行而不是我们想象的与同级div在同一行。
div宽度不兼容解决方案:浮动div容器一般必须定义width。
4.div浮动不兼容当前面div有左浮动和右浮动,下面div就会受他们影响也有浮动。
ie或许不用加清除,但firefox下不清除浮动是不行的。
div浮动不兼容解决方案:给下面的div设定清除 clear:both;5. double-margin不兼容ie6下给浮动容器定义margin-left 或者margin-right 实际效果是数值的2倍。
解决方案:给浮动容器定义display:inline。
JavaScript在IE和Firefox(⽕狐)的不兼容问题解决⽅法⼩结复制代码代码如下:if (window.HTMLElement) {HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML) {var r=this.ownerDocument.createRange();r.setStartBefore(this);var df=r.createContextualFragment(sHTML);this.parentNode.replaceChild(df,this);return sHTML;});HTMLElement.prototype.__defineGetter__("outerHTML",function() {var attr;var attrs=this.attributes;var str="<"+this.tagName.toLowerCase();for (var i=0;i<attrs.length;i++) {attr=attrs[i];if(attr.specified)str+=" "++'="'+attr.value+'"';}if(!this.canHaveChildren)return str+">";return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";});HTMLElement.prototype.__defineGetter__("canHaveChildren",function() {switch(this.tagName.toLowerCase()) {case "area":case "base":case "basefont":case "col":case "frame":case "hr":case "img":case "br":case "input":case "isindex":case "link":case "meta":case "param":return false;}return true;});}说明:IE下,可以使⽤()或[]获取集合类对象;Firefox下,只能使⽤[]获取集合类对象.解决⽅法:统⼀使⽤[]获取集合类对象.说明:IE下,可以使⽤获取常规属性的⽅法来获取⾃定义属性,也可以使⽤getAttribute()获取⾃定义属性;Firefox下,只能使⽤getAttribute()获取⾃定义属性.解决⽅法:统⼀通过getAttribute()获取⾃定义属性.说明:IE下,,可以使⽤eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能使⽤getElementById("idName")来取得id为idName的HTML对象.解决⽅法:统⼀⽤getElementById("idName")来取得id为idName的HTML对象.说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使⽤;Firefox下则不能.Firefox下,可以使⽤与HTML对象ID 相同的变量名;IE下则不能。
IE火狐浏览器兼容问题大全1.最简单的鼠标移过手变型的css要改了cursor:pointer;/*Firefox不支持cursor:hand*/ dw8下面自动出来的也没有hand这个属性了,标准的是pointer2.Firefox不支持滤镜最常见的半透明不支持。
filter: Alpha(Opacity=50); /* for IE */opacity: .5;/* for Firefox */style="-moz-opacity:0.5; filter:alpha(opacity=50);cursor:hand;"onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100" onmouseout="this.style.MozOpacity=0.5;this.filters.alpha.opacity=50"3.Firefox不支持expression 例如去掉链接的边框要分别写不同的cssa,area { blr:expression(this.onFocus=this.blur()) } /* for IE */:focus { outline: none; } /* for Firefox */4.Firefox不支持div滚动条的颜色设置,目前还没有找到替换的好方法。
.contendiv {position: absolute; left: 0px; top: 10px; width: 580px;height: 135px;line-height:120%;text-align:left; font-family:"宋体";word-break : break-all; color:#6D6E71; OVERFLOW-Y:auto;OVERFLOW-X:no;SCROLLBAR-ARROW-COLOR: red; SCROLLBAR-TRACK-COLOR:F6F6F6;SCROLLBAR-FACE-COLOR:#F6F6F6;SCROLLBAR-SHADOW-COLOR:#F6F6 F6;SCROLLBAR-DARKSHADOW-COLOR:#F6F6F6;SCROLLBAR-3DLIGHT-COLOR:#F6F6F6;SCROLLBAR-HIGHLIGHT-COLOR:#F6F6F6;}这个在Firefox里面完全没有效果了。
前端框架技术中常见的浏览器兼容性问题及解决方案在前端开发过程中,浏览器兼容性问题一直是一个头疼的难题。
由于不同浏览器的渲染引擎和规范解释存在差异,导致同样的前端代码在不同浏览器上可能会呈现不同的效果甚至出现错误。
为了提供用户一致的体验,我们需要了解并解决常见的浏览器兼容性问题。
一、CSS兼容性问题1. 盒模型差异Chrome、Firefox以及Safari使用的是W3C标准的盒模型,而IE使用的是传统的IE盒模型。
解决方案是使用CSS的box-sizing属性来明确指定所使用的盒模型。
```box-sizing: border-box; /*使用W3C的盒模型*/box-sizing: content-box; /*使用传统的IE盒模型*/```2. 浮动清除在IE6及其以前的版本中,浮动元素没有被正确的清除,可能会导致父容器的高度无法自适应。
解决方案是使用clearfix类或者在父容器上添加clear属性。
```.clearfix::after {content: "";display: table;clear: both;}```3. 层叠样式兼容性不同浏览器的CSS样式的优先级计算存在差异,可能导致样式覆盖问题。
解决方案是合理使用选择器和样式优先级,避免出现覆盖问题。
二、JavaScript兼容性问题1. DOM操作差异不同浏览器对于DOM操作的实现存在差异,可能导致相同的DOM操作代码在不同浏览器上出现错误。
解决方案是使用现代的DOM操作API,如querySelector、addEventListener等,或者使用框架提供的封装方法。
2. 事件处理不同浏览器对于事件处理的实现存在差异,可能导致事件处理代码在不同浏览器上有兼容性问题。
解决方案是使用框架提供的事件处理方法,如jQuery的事件处理方法,或者使用addEventListener来注册事件。
3. AJAX兼容性不同浏览器对于XMLHttpRequest对象的实现存在差异,可能导致AJAX代码在不同浏览器上无法正常工作。
如何解决ie与⽕狐的兼容问题如何解决ie与⽕狐的兼容问题1.document.form.item问题(1)现有问题:现有代码中存在许多document.formName.item("itemName")这样的语句,不能在Firefox(⽕狐)下运⾏(2)解决⽅法:改⽤document.formName.elements["elementName"]2.集合类对象问题(1)现有问题:现有代码中许多集合类对象取⽤时使⽤(),IE能接受,Firefox(⽕狐)不能。
(2)解决⽅法:改⽤[]作为下标运算。
如:⼜如:3.window.event(1)现有问题:使⽤window.event⽆法在⽕狐浏览器上运⾏(2)解决⽅法:⽕狐的event只能在事件发⽣的现场使⽤,此问题暂⽆法解决。
可以这样变通:原代码(可在IE中运⾏):新代码(可在IE和⽕狐中运⾏):此外,如果新代码中第⼀⾏不改,与⽼代码⼀样的话(即gotoSubmit调⽤没有给参数),则仍然只能在IE中运⾏,但不会出错。
所以,这种⽅案tpl部分仍与⽼代码兼容。
4.HTML对象的id作为对象名的问题(1)现有问题在IE中,HTML对象的ID可以作为document的下属对象变量名直接使⽤。
在⽕狐中不能。
(2)解决⽅法⽤getElementById("idName")代替idName作为对象变量使⽤。
5.⽤idName字符串取得对象的问题(1)现有问题在IE中,利⽤eval(idName)可以取得id为idName的HTML对象,在⽕狐中不能。
(2)解决⽅法⽤getElementById(idName)代替eval(idName)。
6.变量名与某HTML对象id相同的问题(1)现有问题在⽕狐中,因为对象id不作为HTML对象的名称,所以可以使⽤与HTML对象id相同的变量名,IE中能。
(2)解决⽅法在声明变量时,⼀律加上var,以避免歧义,这样在IE中亦可正常运⾏。
css对,IE与火狐,360下宽度的兼容问题及解决方法我们修改网站的时候常常遇到div+css各种浏览器的兼容问题,许多都是width的兼容调整问题,那么今天我就对自己的一点经验分享一下:(因为360使用的是ie的内核,所以可以看做是ie);首先css对IE与firefox下宽度的不同:ie下:容器的width值=内容宽度+border+padding;火狐下容器的width=内容宽度。
而对于块级元素与非块级元素在两种浏览器下是有所不同的,对于块级元素下两种浏览器中width设置结果基本相同,不同这处就是上面谈到的差别了,IE下容器宽度多了border+padding的宽度,即其实际内容宽度应减去bordr与padding值。
但是对于非块级元素来讲,二者有明显的不同。
首先,就是ie(以ie6为测试)下正常显示设定的宽度,但火狐下容器实际宽度则不是,其是以内容宽度+padding为参考,设置的width值并没有起作用。
我们以两个块级元素作为例子说下:<div style="width:200px;border: thick solid red; background-color:#009900;">yiyi</div><div >xing</div><div >yiyixing</div>这里所表现出来的即是火狐与IE下的不同,那么如何解决在火狐下不能实现设定宽度呢?首先我们最好在要设定层的外层清除浮动即clear:both;(为了保险)。
下面就是非块级转换成块级元素,即设display:block;这一标签帮助以块元素另起一行显示。
然后设定浮动float与width即可以了。
注意浮动与宽度要同时设定。
这里要是想要在同一行设定多个非块级元素则不能用dispaly:block;,应该只能配合使用float:left/right/none;与width:123px;因为css默认float:none;所以要想两个元素位于同一行就设定同一种浮动。
关于浏览器兼容问题的解决办法,全部都在这⾥了⽬前,最为流⾏的浏览器共有五个:分别是ie,Edge浏览器(属于微软),⽕狐,⾕歌(chrome)Safari和Opera五⼤浏览器。
这五⼤浏览器分别有各⾃的浏览器内核,下⾯介绍以下各个浏览器的内核(包括⼀些国内的浏览器):Trident内核:IE ,360,,猎豹,百度;Gecko内核:⽕狐----------->这个浏览器内核是开源的浏览器内核,插件⾮常多,-------------->缺点:打开速度慢(加载flash插件)<-----额外介绍----->。
Webkit:遨游,苹果,symbian;Bink:chrome浏览器,⼤部分国产浏览器最新版本都采⽤Blink;由于这些浏览器的内核不相同,因此,他们的对编辑页⾯的⼀些属性的⽀持也有所不同,接下来,我就谈⼀谈在解决浏览器兼容⽅⾯的见解:⾸先是关于innerText和textContent的问题的见解:innerText ⾕歌,⽕狐和IE8都⽀持低版本的⽕狐不⽀持innerTexttextContent在IE8中的结果是undefined;textContent在⾕歌和⽕狐中⽀持;这些内容是必须知道的,也是以后解决兼容性问题的引⼦或者思路,同时也是基础。
在解决浏览器兼容性的问题上⾯,⾸先,可以通过获取浏览器的版本来判断这个浏览器是不是⽀持这个属性,但是这种办法⾮常的⿇烦。
具体做法是:我要在⼀系列的信息中找到这个浏览器版本⾥⾯的具体是什么样的,然后⽤正则表达式去匹配,然后确定这个浏览器⾥⾯具体⽤的什么东西。
这就是整个的内容,所以,相当的⿇烦。
当然,获取浏览器版本的代码很简单,就⼀句话,⼀⾏代码,但是仅仅是为了判断这个浏览器是不是⽀持这个属性,是不是放在这⾥好像有点⼉⼤材⼩⽤了。
因此,就直接判断这个浏览器⾥⾯是不是⽀持这个属性就可以了。
为了解决这个不兼容的问题,我们可以编辑以下代码来解决上述问题:1//任意元素都可以设置成⽂本内容----------因此把“任意”元素当成对象(element)传递到函数中23//element---->任意元素4//text--->任意⽂本内容5function setInnerText(element,text) {6if(typeof (element.textContent)=='undefined'){//是IE8浏览器7 element.innerText=text;8 }else{9//浏览器⽀持textContent这个属性10 element.textContent=text;11 }12 }131415//获取任意元素中的⽂本内容16function getInnerText(element) {17if(typeof (element.textContent)=="undefined"){18//如果浏览器不⽀持textContext这个属性则返回innerText的值19return element.innerText;20 }else{21//如果浏览器⽀持textContext属性,则直接返回该属性的值22return element.textContent;23 }24 }上述代码就可以解决innnerText和textContent在各个浏览器之间不兼容的问题(上述代码⽬前只在⾕歌,⽕狐,IE8版本上⾯测试,以后还会在其他的浏览器的不同版本上⾯测试,测试结果还会不断的更新,尽请期待)。
I E浏览器和火狐浏览器兼容问题集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]IE浏览器和火狐浏览器兼容问题.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。
一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!IE浏览器和火狐浏览器兼容问题——CSS篇一、css+div 样式 IE与FF兼容问题汇总IE和火狐的css兼容性问题归总CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和火狐浏览器存在很大的解析差异,这里介绍一下兼容要点。
1、DOCTYPE 影响 CSS 处理2、FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行3、FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width5、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式,值得注意的是,一定要将xxxx !important 这句放置在另一句之上6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。
缺点是要控制内容不要换行7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以8、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。
常见浏览器兼容性问题与解决方案所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。
在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果。
所以浏览器的兼容性问题是前端开发人员经常会碰到与必须要解决的问题。
在学习浏览器兼容性之前,我想把前端开发人员划分为两类:第一类是准确按照设计图开发的前端开发人员,可以说是准确到1px的,他们很容易就会发现设计图的缺乏,并且在很少的情况下会碰到浏览器的兼容性问题,而这些问题往往都死浏览器的bug,并且他们制作的页面后期易维护,代码重用问题少,可以说是比拟结实放心的代码。
第二类是根本按照设计图来开发的前端开发人员,很多细枝末节差距很大,不如间距,行高,图片位置等等经常会差几px。
某种效果的实现也是反复调试得到,具体为什么出现这种效果还模模糊糊,整体布局十分脆弱。
稍有改动就乱七八糟。
代码为什么这么写还不知所以然。
这类开发人员往往经常为兼容性问题所困。
修改好了这个浏览器又乱了另一个浏览器。
改来改去也毫无头绪。
其实他们碰到的兼容性问题大局部不应该归咎于浏览器,而是他们的技术本身了。
文章主要针对的是第一类,严谨型的开发人员,因此这里主要从浏览器解析差异的角度来分析兼容性问题。
浏览器兼容问题一:不同浏览器的标签默认的外补丁与内补丁不同问题病症:随便写几个标签,不加样式控制的情况下,各自的margin 与padding差异较大。
碰到频率:100%解决方案:CSS里*备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin 情况下,在IE6显示margin比设置的大问题病症:常见病症是IE6中后面的一块被顶到下一行碰到频率:90%〔稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题〕解决方案:在float的标签样式控制中参加display:inline;将其转化为行内属性备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。
同内核的浏览器a)Trident内核,代表产品Internet Explorer世界之窗(The World)傲游浏览器(Maxthon)腾讯TT(Tencent Traveler)爱帆浏览器(A vant Browser)360安全浏览器(360SE)搜狗浏览器(兼容模式)(Sougou Explorer)瑞影浏览器(Rayying)360极速浏览器(兼容模式)(360chrome)百度浏览器(兼容模式)b)Gecko内核,代表作品Mozilla FirefoxFirefox、网景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、Songbird、XeroBank。
Google Gadget引擎采用的就是Gecko浏览器引擎。
c)WebKit内核,代表作品Safari、ChromeNDS Browser、Nokia 770网络浏览器d)Presto内核,代表作品OperaOmniWeb、Shiira浏览器对js的兼容性兼容性e)HTML对象的id 作为对象名的问题问题:在IE中,HTML对象的ID 可以作为document 的下属对象变量名直接使用,在FF中不能解决方法:使用对象变量时全部用标准的getElementById("idName")f)用idName字符串取得对象的问题问题:在IE中,利用eval("idName") 可以取得id 为idName的HTML对象,在FF中不能解决方法:用getElementById("idName") 代替eval("idName")g)变量名与某HTML对象id 相同的问题问题:在FF中,因为对象id 不作为HTML对象的名称,所以可以使用与HTML对象id 相同的变量名,IE中不能解决方法:在声明变量时,一律加上var,以避免歧义,这样在IE中亦可正常运行最好不要取与HTML对象id 相同的变量名,以减少错误h)调用子框架或者其它框架中的元素的问题在IE中,可以用如下方法来取得子元素中的值document.getElementById("frameName").(document.)elementNamewindow.frames["frameName"].elementName在FF中则需要改成如下形式来执行,与IE兼容:window.frames["frameName"].contentWindow.document.elementNamewindow.frames["frameName"].document.elementNamei)对象宽高赋值问题问题:FireFox中类似obj.style.height = imgObj.height的语句无效解决方法:统一使用obj.style.height = imgObj.height + "px";j)innerText的问题问题:innerText在IE中能正常工作,但是innerText在FireFox中却不行解决方法:在非IE浏览器中使用textContent代替innerTextk)Window.location问题火狐1.5下不支持window.location.href,所以url链接尽量均使用window.location 以上都是些常见常用的兼容性问题,建议大家再看下文档,或针对某个对象查询下资料onchange事件<input>元素和<select>的<option>元素都支持onchangge事件,但是经常我们会发现元素的内容值变化了却没有触发onchangge事件。
之阳早格格创做IE欣赏器战火狐欣赏器兼容问题.txt22热诚是好酒,年份越暂越醇香浓型;热诚是焰火,正在下处绽搁才愈是劣好;热诚是陈花,收之于人脚有余香.一颗孤独的心需要爱的滋润;一颗酷寒的心需要情谊的温温;一颗绝视的心需要力量的托慰;一颗惨黑的心需要热诚的助闲;一颗充谦警备关关的门是如许需要热诚那一把钥匙挨启呀!IE欣赏器战火狐欣赏器兼容问题——CSS篇一、css+div 样式 IE与FF兼容问题汇总IE战火狐的css兼容性问题归总CSS对付欣赏器器的兼容性具备很下的价格,常常情况下IE战火狐欣赏器存留很大的剖析好别,那里介绍一下兼容重心.1、DOCTYPE 效率 CSS 处理2、FF: div 树坐 margin-left, margin-right 为 auto 时已经居中, IE 不可3、FF: body 树坐 text-align 时, div 需要树坐 margin: auto(主假若 margin-left,margin-right) 圆可居中4、FF: 树坐 padding 后, div 会减少 height 战 width, 然而 IE 不会, 故需要用 !important 多设一个 height 战 width5、FF: 收援!important, IE 则忽略, 可用!important 为FF 特天树坐样式,值得注意的是,一定要将xxxx !important 那句搁置正在另一句之上6、div 的笔曲居中问题: vertical-align:middle; 将止距减少到战所有DIV 一般下line-height:200px; 而后拔出笔墨,便笔曲居中了.缺面是要统造真质不要换止7、cursor: pointer 不妨共时正在 IE FF 中隐现游标脚指状, hand 仅 IE 不妨8、FF: 链接加边框战背景致,需树坐 display: block, 共时树坐 float: left 包管不换止.参照 menubar, 给 a 战 menubar 树坐下度是为了预防底边隐现错位, 若不设 height, 不妨正在 menubar 中拔出一个空格.9、正在mozilla firefox战IE中的BOX模型阐明纷歧致引导出进2px办理要领:div{margin:30px!important;margin:28px;} 注意那二个margin 的程序一定不克不迭写反,据阿捷的道法!important那个属性IE不克不迭辨别,然而别的欣赏器不妨辨别.所以正在IE下本去阐明成那样:div{maring:30px;margin:28px}沉复定义的话依照末尾一个去真止,所以不不妨只写margin:XXpx!important;10、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}关于那个/**/是什么尔也不太明黑,只知讲IE5战firefox皆收援然而IE6不收援,如果有人明黑的话,请报告尔一声,开了!:)11、ul标签正在Mozilla中默认是有padding值的,而正在IE中惟有margin有值所以先定义ul{margin:0;padding:0;}便能办理大部分问题注意事项:1、float的div一定要关合.比圆:(其中floatA、floatB的属性已经树坐为float:left;)<#div id=\”floatA\” ><#div id=\”floatB\” ><#div id=\”NOTfloatC\” >那里的NOTfloatC本去不期视继承仄移,而是期视往下排.那段代码正在IE中毫无问题,问题出正在FF.本果是NOTfloatC 并不是float标签,必须将float标签关合.正在<#div class=\”floatB\”><#div class=\”NOTfloatC\”>之间加上<#div class=\”clear\”>那个div一定要注意声明位子,一定要搁正在最妥当的场合,而且必须与二个具备float属性的div共级,之间不克不迭存留嵌套关系,可则会爆收非常十分.而且将clear那种样式定义为如下即可:.clear{clear:both;}别的,为了让下度能自动切合,要正在wrapper内里加上overflow:hidden;当包罗float的box的时间,下度自动切合正在IE下无效,那时间该当触收IE的layout公有属性(万恶的IE啊!)用zoom:1;不妨搞到,那样便达到了兼容.比圆某一个wrapper如下定义:.colwrapper{overflow:hidden;zoom:1;margin:5px auto;}2、margin更加的问题.树坐为float的div正在ie下树坐的margin会更加.那是一个ie6皆存留的bug.办理筹备是正在那个div内里加上display:inline;比圆:<#div id=\”imfloat\”>相映的css为#IamFloat{float:left;margin:5px;/*IE下明黑为10px*/display:inline;/*IE下再明黑为5px*/}3、关于容器的包涵关系很多时间,更加是容器内有仄止筹备,比圆二、三个float的div 时,宽度很简单出现问题.正在IE中,中层的宽度会被内层更宽的div 挤破.一定要用Photoshop大概者Firework量与像素级的粗度.4、关于下度的问题如果是动背天增加真质,下度最佳不要定义.欣赏器不妨自动伸缩,然而如果是固态的真质,下度最佳定佳.(好像偶尔间不会自动往下撑启,不知讲简曲怎么回事)5、最狠的脚法 - !important;”!important”会自动劣先剖析,然而IE则会忽略.如下.tabd1{ background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}值得注意的是,一定要将xxxx !important 那句搁置正在另一句之上,上头已经提过;IE7.0出去了,对付CSS的收援又有新问题.欣赏器多了,网页兼容性更好了,疲于奔命的仍旧咱们,为办理IE7.0的兼容问题,找去了底下那篇文章:当前尔大部分皆是用!important去hack,对付于ie6战firefox尝试不妨仄常隐现,然而是ie7对付!important不妨粗确阐明,会引导页里出按央供隐现!搜索了一下,找到一个针对付IE7不错的hack办法便是使用“*+html”,当前用IE7欣赏一下,该当不问题了.当前写一个CSS不妨那样:#example { color: #333; } /* Moz */* html #example { color: #666; } /* IE6 */*+html #example { color: #999; } /* IE7 */那么正在firefox下字体颜色隐现为#333,IE6下字体颜色隐现为#666,IE7下字体颜色隐现为#999,他们皆互不搞扰.---------------------------------------------------------------------------------------------------------------------------------先温习一下对付于IE的box-model的破解IE box-model那个臭名昭著的bug存留于IE6/Win往日的每一只版本,那个虫子曲到tantak颁布了流传最为广大的那个hack才启初被驯服IE5.X/win对付box-model的剖析是一般的,他们认为width包罗了边框(border)战补黑(padding),幸运的是那个情况正在IE6中有了佳转然而是IE6正在背后兼容的共时也包涵了往日的过失,IE6本去有二个核心,正在旧的页里前他仍旧表示出对付过失的宽大,惟有正在文档中庄重天加上文档典型(DOCTYPE)声明,IE6才搞够担当粗确的box-model所以,tantak的hack必须战粗确的DOCTYPE共时包罗正在文档中才搞够仄常处事Quotediv.content {width:400px; //那个是过失的width,所有欣赏器皆读到了voice-family: "\"}\""; //IE5.X/win忽略了"\"}\""后的真质voice-family:inherit;width:300px; //包罗IE6/win正在内的部分欣赏器读到那句,新的数值(300px)覆盖掉了旧的}html>body .content { //html>body是CSS2的写法width:300px; //收援CSS2该写法的欣赏器有幸读到了那一句}当前回到中心,咱们时常瞅到!important战(空格)/**/:拉拢正在所有使用,那个写法有什么偶妙呢?瞅刚刚才那个写法,尔那里不妨提供另一种写法也能达到那样的效验Quotediv.content {width:300px !important; //那个是粗确的width,大部分收援!important标记表记标帜的欣赏器使用那里的数值width(空格)/**/:400px; //IE6/win不剖析那句,所以IE6/win仍旧认为width的值是300px;而IE5.X/win读到那句,新的数值(400px)覆盖掉了旧的,果为!important标记表记标帜对付他们不起效率}html>body .content { //html>body是CSS2的写法width:300px; //收援CSS2该写法的欣赏器有幸读到了那一句}共样,那个要领仍必须依好粗确的文档典型声明才搞够仄常处事,本果正在前里已经道过.文档典型声明便像一个启关,挨启背后兼容的已去,而过失使用的话,便是一个Pandora box---------------------------------------------------------------------------------------------------------------ie7.0的里世,尚且不管他是可较之ie6.0先进,ie7战ie6 之间不兼容,毫无疑问又引进了新的痛处,起码正在调试的历程中,又多了一讲步调以及随之而去的洪量不兼容.暂时,使用ie7.0的用户尚且是少量,使用ie6.0的用户仍旧吞噬很大的比沉.然而,洪量通过ie6 尝试的网页,正在ie7.0中皆隐现不仄常.据ie7.0官圆解道:ie7.0正在IE6的前提上引进了strict模式,包罗了许多有关于层叠样式表(CSS)剖析与浮现的矫正.那些矫正意正在普及Internet Explorer 阐明层叠样式表的普遍性,以达到W3C的推荐的尺度,共时为启垦者提供一个不妨依好的功能集中.不管官圆的道话是如许动听,也不管ie7.0是不是果然W3C了,欣赏器之间太多本性化的物品,太多好别,让咱们无可奈何.正在ie7.0下安排出的网页,ie6底下隐现的险些是不堪进目.那么,咱们正在安排网页的时间,正在办理佳ie6.0与火狐的兼容问题的共时,咱们是更多的遵循切合W3C一些的ie7.0,仍旧对付96%的ie6.0妥协?那个问题本去有些多余,咱们能搞的,大概许惟有采用中庸,惟有尽管调试到各个欣赏器皆隐现仄常吧.ie7.0与ie6.0的之间不兼容,暂时便尔知讲的犹如下几个圆里,如有遗漏大概者道错了的场合,欢迎正在后里补充大概者纠正.1. ie7,ie6 div+css出现宽度定义分歧正在宽度定义上出现宽度的阐明分歧,IE7宽度正在IE6上要宽一些,,正是那个本果网页大概会出现溢出问题, 还佳那个问题不妨通过变动数值大概者建改一下百分比办理.2. ie7.0建复了!important那个bug.先前由于ie6.0对付!important辨别存留bug, 正在firefox战IE中的BOX模型阐明纷歧致引导出进2px,大部分网页尺度安排师通过那个bug去兼容ie6.0战firefox,即采与:div {margin:30px!important;margin:28px;}.然而是ie7.0把那个bug给建复了,所以问题又出现了,怎么兼容 ie.7.0的共时又能兼容ie6.0战firefox?3. Box Model的改变正在IE7中,为了切合CSS2.1 box model建改了溢出的止为.4. ie7.0中一些CSS filter将不再可用IE7中建改了许多潜正在剖析过失,那些大概会遏止filter正在往日的IE版本中仄常处事.如:*HTML filter,下划线filter战/**/注释filter等等.5. ie7.0对付很多不典型的css不再收援,对付js语法央供更庄重典型.overflow:hidden那个CSS样式是大家时常使用到的CSS样式,然而是大普遍人对付那个样式的明黑只是限造于隐躲溢出,而对付于扫除浮动那个含意不是很相识.一提到扫除浮动,咱们便会料到其余一个CSS样式:clear:both,尔疑好对付于那个属性的明黑大家皆不可问题的.然而是对付于“浮动”那个词汇到底包罗什么样的含意呢?咱们底下去仔细的叙述一下.那是一个时常使用的div写法,底下咱们去书籍写样式.大家不妨正在DMX中自己搞考查#wai{ width:500px; background:#000; height:500px;}#nei { float:left; width:600px; height:600px; background:red;}不妨瞅到,尔给nei那个id加了一个浮动,咱们惯例的明黑是,咱们允许nei那个id的div的左边出现其余的真质,只消它的宽度不超出wai 那个div战nei那个div的结余值.如果div wai中还包罗其余的div,尔不允许它出当前nei的左侧,咱们则用样式clear:both指定那个div,不允许它浮动正在nei左侧.那些正在ie6内里是粗确的.然而是正在火狐大概者其余欣赏器内里,咱们创造问题并不是如许简朴.咱们创造,当nei那个div的宽度战下度皆大于wai那个div的时间,wai并不被内撑启而是保持隐现为咱们指定的宽下.正在尔的例子中,皆是500.那个时间尔不睬解了,尔搜索了很多的资料,然而是皆出能明黑那是为什么,曲到瞅到他人正在类似的情况下给wai那个div加了一个overflow:hidden那个属性办理了那个问题.咱们曲到overflow:hidden那个属性的效率是隐躲溢出,给wai加上那个属性后,咱们的nei的宽下自动的被隐躲掉了.其余,咱们再搞一个考查,将wai那个div的下度值简略后,咱们创造,wai的下度自动的被nei那个div的下度值给撑启了.道到那里,咱们再去明黑一下“浮动”那个词汇的含意.咱们本先的明黑是,正在一个仄里上的浮动,然而是通过那个考查,咱们创造,那不然而仅是一个仄里上的浮动,而是一个坐体的浮动!也便是道,当nei那个div加上调动那个属性的时间,正在隐现器的正里,它已经摆脱了wai那个div,也便是道,此时的nei的宽下是几,对付于已经摆脱了的wai去道,皆是不起效率的.挨个局里的比圆便是当JJ摆脱BB的时间,JJ的大小对付于BB是不撑启的效率的(有面少女不宜的感觉-_-|||)OK,当咱们周到的明黑了浮动那个词汇的含意的时间,咱们便明黑overflow:hidden那个属性中的阐明,扫除浮动是什么意义了.也便是道,当咱们给wai那个div加上overflow:hidden那个属性的时间,其中的nei等等戴浮动属性的div的正在那个坐体的浮动已经被扫除了,便佳比JJ又加进了BB内,JJ的大小自然又会效率到BB的大小.那便是overflow:hidden那个属性扫除浮动的准确含意.当咱们不给wai那个div树坐下度的时间,nei那个div的下度,便会撑启wai那个div,而正在另一个圆里,咱们要注意到的是,当咱们给wai那个div加上一个下度值,那么无论nei那个div的下度是几,wai 那个下度皆是咱们设定的值.而当nei的下度超出wai的下度的时间,超出的部分便会被隐躲.那便是隐躲溢出的含意!尔疑好,通过尔的那些笔墨,大家对付overflow:hidden那个属性有了崭新的认识.期视大家战尔一般,正在div+css教习中不妨不竭的先进!1、DOCTYPE 效率 CSS 处理2、FF:div 树坐 margin-left, margin-right 为 auto 时已经居中,IE 不可3、FF: body 树坐text-align 时,div 需要树坐margin: auto(主假若margin-left,margin-right) 圆可居中4、FF: 树坐 padding 后, div 会减少 height 战 width,然而 IE 不会,故需要用 !important 多设一个 height 战 width5、FF: 收援 !important, IE 则忽略,可用 !important 为 FF 特天树坐样式6、div 的笔曲居中问题: vertical-align:middle; 将止距减少到战所有DIV 一般下line-height:200px; 而后拔出笔墨,便笔曲居中了.缺面是要统造真质不要换止7、cursor: pointer 不妨共时正在 IE FF 中隐现游标脚指状, hand 仅 IE 不妨8、FF: 链接加边框战背景致,需树坐display: block,共时树坐float: left 包管不换止.参照 menubar,给 a 战 menubar 树坐下度是为了预防底边隐现错位,若不设 height,不妨正在 menubar 中拔出一个空格.9、正在mozilla firefox战IE中的BOX模型阐明纷歧致引导出进2px办理要领:div{margin:30px!important;margin:28px;}注意那二个margin的程序一定不克不迭写反,据阿捷的道法!important 那个属性IE不克不迭辨别,然而别的欣赏器不妨辨别.所以正在IE下本去阐明成那样:div{maring:30px;margin:28px}沉复定义的话依照末尾一个去真止,所以不不妨只写margin:XXpx!important;10、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}关于那个/**/是什么尔也不太明黑,只知讲IE5战firefox皆收援然而IE6不收援.11、ul标签正在Mozilla中默认是有padding值的,而正在IE中惟有margin有值所以先定义ul{margin:0;padding:0;}便能办理大部分问题注意事项:1、float的div一定要关合.比圆:(其中floatA、floatB的属性已经树坐为float:left;)<#div id="floatA" ><#div id="floatB" ><#div id="NOTfloatC" >那里的NOTfloatC本去不期视继承仄移,而是期视往下排.那段代码正在IE中毫无问题,问题出正在FF.本果是NOTfloatC并不是float标签,必须将float标签关合.正在<#div class="floatB"><#div class="NOTfloatC">之间加上<#div class="clear">那个div一定要注意声明位子,一定要搁正在最妥当的场合,而且必须与二个具备float属性的div共级,之间不克不迭存留嵌套关系,可则会爆收非常十分.而且将clear那种样式定义为为如下即可:.clear{clear:both;}别的,为了让下度能自动切合,要正在wrapper内里加上overflow:hidden;当包罗float的box的时间,下度自动切合正在IE下无效,那时间该当触收IE的layout公有属性(万恶的IE啊!)用zoom:1;不妨搞到,那样便达到了兼容.比圆某一个wrapper如下定义:以下为引用的真质:.colwrapper{overflow:hidden;zoom:1;margin:5px auto;}以下前逢到过2、margin更加的问题.树坐为float的div正在ie下树坐的margin会更加.那是一个ie6皆存留的bug.办理筹备是正在那个div内里加上display:inline;比圆:<#div id="imfloat">相映的css为以下为引用的真质:#IamFloat{float:left;margin:5px;/*IE下明黑为10px*/display:inline;/*IE下再明黑为5px*/}3、关于容器的包涵关系很多时间,更加是容器内有仄止筹备,比圆二、三个float的div时,宽度很简单出现问题.正在IE中,中层的宽度会被内层更宽的div挤破.一定要用Photoshop大概者Firework量与像素级的粗度.4、关于下度的问题如果是动背天增加真质,下度最佳不要定义.欣赏器不妨自动伸缩,然而如果是固态的真质,下度最佳定佳.(好像偶尔间不会自动往下撑启,不知讲简曲怎么回事)5、最狠的脚法 - !important;如果真正在不办法办理一些细节问题,不妨用那个要领.FF对付于"!important"会自动劣先剖析,然而IE则会忽略.如下以下为引用的真质:.tabd1{background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */} 值得注意的是,一定要将xxxx !important 那句搁置正在另一句之上,上头已经提过 undefined undefinedirefox不收援hand,然而ie收援pointer办理要领: 统一使用pointer5. padding 问题padding 5px 4px 3px 1px FireFox无法阐明简写,必须改成padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;6. 与消ul、ol等列表的缩进与消ul、ol等列表的缩进样式应写成:list-style:none;margin:0px;padding:0px;其中margin属性对付IE灵验,padding属性对付FireFox灵验7. CSS透明IE:filter:progidXImageTransform.Microsoft.Alpha(style=0,opacity=60). FF:opacity:0.6.8. 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;.9. 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;10. 滤镜IE中收援使用滤镜,而Firefox中不收援.11. 克制采用网页真质:正在IE中普遍用js:obj.onselectstart=function(){return false;};而firefox用CSS:-moz-user-select:none;罕睹兼容问题:模板无忧--mb5u_COm1、DOCTYPE 效率 CSS 处理MB5U@COM2、FF:div 树坐 margin-left, margin-right 为 auto 时已经居中,IE 不可3、FF: body 树坐text-align 时,div 需要树坐margin: auto(主假若margin-left,margin-right) 圆可居中模板无忧--mb5u_COm4、FF: 树坐 padding 后, div 会减少 height 战 width,然而 IE 不会,故需要用 !important 多设一个 height 战 width模板无忧--mb5u_COm5、FF: 收援 !important, IE 则忽略,可用 !important 为 FF 非凡是树坐样式6、div 的笔曲居中问题: vertical-align:middle; 将止距减少到战所有DIV一般下line-height:200px; 而后拔出笔墨,便笔曲居中了.缺面是要统造真质不要换止MB5U@COM7、cursor: pointer 不妨共时正在 IE FF 中隐现游标脚指状, hand 仅 IE 不妨8、FF: 链接加边框战背景致,需树坐display: block,共时树坐float: left 包管不换止.参照 menubar,给 a 战 menubar 树坐下度是为了预防底边隐现错位,若不设 height,不妨正在 menubar 中拔出一个空格.MB5U_COM9、正在mozilla firefox战IE中的BOX模型阐明纷歧致引导出进2px办理要领:MB5U@COMdiv{margin:30px!important;margin:28px;}注沉那二个margin的程序一定不克不迭写反,据阿捷的道法!important 那个属性IE不克不迭辨别,然而别的欣赏器不妨辨别.所以正在IE下本去阐明成那样:div{maring:30px;margin:28px}IE5下MB5U_coMdiv{width:300px;margin:0 10px 0 10px;}div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}MB5U@COM关于那个/**/是什么尔也不太明黑,只知讲IE5战firefox皆收援然而IE6不收援.11、ul标签正在Mozilla中默认是有padding值的,而正在IE中惟有margin有值所以先定义ul{margin:0;padding:0;}注沉事项:MB5U____COM1、float的div一定要关合.MB5U____COM比圆:(其中floatA、floatB的属性已经树坐为float:left;)<#div id="floatB" > 模板无忧--mb5u_COm<#div id="NOTfloatC" >模板无忧-MB5u__com那里的NOTfloatC本去不期视继承仄移,而是期视往下排.模板无忧--mb5u_COm那段代码正在IE中毫无问题,问题出正在FF.本果是NOTfloatC并不是float标签,必须将float标签关合.MB5U_COM正在<#div class="floatB">MB5U____COM<#div class="NOTfloatC">MB5U_COM之间加上<#div class="clear">mb5u---Com-模板无忧MB5U_coM那个div一定要注沉声明位子,一定要搁正在最妥当的场合,而且必须与二个具备float属性的div共级,之间不克不迭存留嵌套关系,可则会爆收非常十分.而且将clear那种样式定义为为如下即可:.clear{模板无忧--mb5u_COm别的,为了让下度能自动切合,要正在wrapper内里加上overflow:hidden;比圆某一个wrapper如下定义:以下为引用的真质:.colwrapper{overflow:hidden;zoom:1;margin:5px auto;}树坐为float的div正在ie下树坐的margin会更加.那是一个ie6皆存留的bug.MB5U_coM办理筹备比圆:<#div id="imfloat">模板无忧-MB5u__commb5u---Com-模板无忧相映的css为MB5U_coM以下为引用的真质:#IamFloat{float:left;margin:5px;/*IE下明黑为10px*/display:inline;/*IE下再明黑为5px*/}mb5u---Com-模板无忧3、关于容器的包涵关系MB5U____COM4、关于下度的问题模板无忧--mb5u_COm假若是动背天增加真质,下度最佳不要定义.欣赏器不妨自动伸缩,然而假若是固态的真质,下度最佳定佳.(好像偶尔间不会自动往下撑启,不知讲简曲怎么回事)MB5U@COM模板无忧--mb5u_COm以下为引用的真质:.tabd1{background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */} 值得注沉的是,一定要将xxxx !important 那句搁置正在另一句之上,上头已经提过 undefined undefinedCSS兼容IE与Firefox重心分解2006-10-15 14:43IE vs FFCSS 兼容重心:DOCTYPE 效率 CSS 处理FF: div 树坐 margin-left, margin-right 为 auto 时已经居中, IE 不可FF: body 树坐text-align 时, div 需要树坐margin: auto(主假若margin-left,margin-right) 圆可居中FF: 树坐padding 后, div 会减少height 战width, 然而IE 不会, 故需要用 !important 多设一个 height 战 widthFF: 收援 !important, IE 则忽略, 可用 !important 为 FF 特天树坐样式div 的笔曲居中问题: vertical-align:middle; 将止距减少到战所有DIV一般下line-height:200px; 而后拔出笔墨,便笔曲居中了.缺面是要统造真质不要换止cursor: pointer 不妨共时正在 IE FF 中隐现游标脚指状, hand 仅 IE 不妨FF: 链接加边框战背景致,需树坐 display: block, 共时树坐 float: left 包管不换止.参照 menubar, 给 a 战 menubar 树坐下度是为了预防底边隐现错位, 若不设 height, 不妨正在 menubar 中拔出一个空格XHTML+CSS兼容性办理筹备小集使用XHTML+CSS构架佳处很多,然而也真真存留一些问题,不管是果为使用不流利仍旧思路不浑晰,尔便先把一些尔逢到的问题写正在底下,省的大家四处找^^1.正在mozilla firefox战IE中的BOX模型阐明纷歧致引导出进2px办理要领:div{margin:30px!important;margin:28px;}注意那二个margin的程序一定不克不迭写反,据阿捷的道法!important那个属性IE不克不迭辨别,然而别的欣赏器不妨辨别.所以正在IE下本去阐明成那样:div{maring:30px;margin:28px}沉复定义的话依照末尾一个去真止,所以不不妨只写margin:XXpx!important;2.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},关于那个/**/是什么尔也不太明黑,只知讲IE5战firefox皆收援然而IE6不收援,如果有人明黑的话,请报告尔一声,开了!:)3.ul标签正在Mozilla中默认是有padding值的,而正在IE中惟有margin 有值所以先定义ul{margin:0;padding:0;}便能办理大部分问题二、CSS对付欣赏器器的兼容性具备很下的价格,常常情况下IE战火狐欣赏器存留很大的剖析好别,即日战大家道道火狐欣赏器战IE欣赏器下CSS兼容的问题,并推荐二篇不错的文章给大家:网页安排师必备的火狐扩展战 IE战火狐的css兼容性问题汇总,底下加进正题:1.DOCTYPE 效率 CSS 处理2.FF: div 树坐 margin-left, margin-right 为 auto 时已经居中, IE 不可3.FF: body 树坐 text-align 时, div 需要树坐 margin: auto(主假若 margin-left,margin-right) 圆可居中4.FF: 树坐 padding 后, div 会减少 height 战 width, 然而 IE 不会, 故需要用 !important 多设一个 height 战 width5.FF: 收援 !important, IE 则忽略, 可用 !important 为火狐特天树坐样式6.div 的笔曲居中问题: vertical-align:middle; 将止距减少到战所有DIV一般下line-height:200px; 而后拔出笔墨,便笔曲居中了.缺面是要统造真质不要换止7.{cursor: pointer 不妨共时正在IE、火狐中隐现游标脚指状,hand 仅IE 不妨}8.FF: 链接加边框战背景致,需树坐display: block, 共时树坐float: left 包管不换止.参照 menubar, 给 a 战 menubar 树坐下度是为了预防底边隐现错位, 若不设 height, 不妨正在 menubar 中拔出一个空格.9.正在mozilla firefox战IE中的BOX模型阐明纷歧致引导出进2px办理要领:div{margin:30px!important;margin:28px;}注意那二个margin的程序一定不克不迭写反,据阿捷的道法! important那个属性IE不克不迭辨别,然而别的欣赏器不妨辨别.所以正在IE下本去阐明成那样:div{maring:30px;margin:28px}沉复定义的话依照末尾一个去真止,所以不不妨只写margin:XXpx! important;11.ul标签正在Mozilla中默认是有padding值的,而正在IE中惟有margin有值所以先定义 ul{margin:0;padding:0;}便能办理大部分问题注意事项:1、float的div一定要关合.比圆:(其中floatA、floatB的属性已经树坐为float:left;) <#div id=”floatA” ><#div id=”floatB” ><#div id=”NOTfloatC”>那里的NOTfloatC本去不期视继承仄移,而是期视往下排.那段代码正在IE中毫无问题,问题出正在火狐欣赏器.本果是NOTfloatC并不是float标签,必须将float标签关合.正在 <#div class=”floatB”><#div class=”NOTfloatC”>之间加上 <#div class=”clear”>那个div一定要注意声明位子,一定要搁正在最妥当的场合,而且必须与二个具备float属性的div共级,之间不克不迭存留嵌套关系,可则会爆收非常十分.而且将clear那种样式定义为为如下即可: .clear{clear:both;}别的,为了让下度能自动切合,要正在wrapper内里加上overflow:hidden;当包罗float的box的时间,下度自动切合正在IE下无效,那时间该当触收IE的layout公有属性,用zoom:1;不妨搞到,那样便达到了兼容.比圆某一个wrapper如下定义: .colwrapper{overflow:hidden;zoom:1;margin:5px auto;}2、margin更加的问题树坐为float的div正在ie下树坐的margin会更加.那是一个ie6皆存留的bug.办理筹备是正在那个div内里加上display:inline;比圆:<#div id=”imfloat”>相映的css为#IamFloat{float:left;margin:5px;/*IE下明黑为10px*/display:inline;/*IE下再明黑为5px*/}3、关于容器的包涵关系很多时间,更加是容器内有仄止筹备,比圆二、三个float的div时,宽度很简单出现问题.正在IE中,中层的宽度会被内层更宽的div挤破.一定要用Photoshop大概者Firework量与像素级的粗度.4、关于下度的问题如果是动背天增加真质,下度最佳不要定义.欣赏器不妨自动伸缩,然而如果是固态的真质,下度最佳定佳.(好像偶尔间不会自动往下撑启,不知讲简曲怎么回事)5、最狠的脚法 - !important;”!important”会自动劣先剖析,然而IE则会忽略.如下 .tabd1{ background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}值得注意的是,一定要将xxxx !important 那句搁置正在另一句之上,上头已经提过IE7.0出去了,对付CSS的收援又有新问题.欣赏器多了,网页兼容性更。
1. CSS样式兼容性问题的出现关于FireFox和IE6对CSS样式的兼容性差异由来已久,它们对标准兼容的差异性,导致了大量网站开发人员的工作量加倍,不得已煞费苦心的在Firefox和IE间进行调试,对于以前很少有关注过CSS样式浏览器兼容性问题的开发人员来说,更是一件雪上加霜的事情,原本调CSS就是一件很烦的事情,再加上兼容性问题的阻碍,使很多开发人员咬牙切齿,却也无可奈何。
2. CSS样式调试工具有句话说得好,工欲善其事,必先利其器。
作为一名IT开发人员来说那就是欲想编程好,必先工具好。
在C++方面有Microsoft Studio的支持,在Java方面有eclipse的支持,而对于市面上调试CSS样式的工具却不是很多,但现有的工具也基本上满足我们的需求。
首先介绍FireFox下的调试工具Firebug,这一款非常优秀的调试工具,不仅对CSS 样式的调试起了所见即所得的功效,同时还支持JS的调试,DOM查看器,控制台,可编辑Html及网络状况监视器等(JS等方面请查看其他相关文档)。
对于开发人员来说,有如此好的调试工具,当然是不容错过的一件事情。
IE6下也提供了一款CSS样式调试工具IE DevToolbar,这款工具相对来说功能相对单一,但为了在IE上也能够进行CSS进行调试,这款工具也勉强派得上用场了。
由于对标准支持的不统一,IE对浏览器领域统治多年,产生了自己的一套标准,而兴起的Firefox及Google的Chrome则是对原有的标准进行了支持,所以两者之间的冲突在所难免。
现在以实例方式来说明两种浏览器之间的差异,并提供相应的解决方法。
希望在浏览器CSS样式兼容性上有需要的朋友可以得到帮助。
3. Firefox与IE的Hack介绍Hack 是指浏览器对CSS样式某些标志的识别,通过这些识别,同一CSS属性我们可以为不同的浏览器指定不同的C SS样式,以规避浏览器不同带来的差异。
首先介绍“!important”,这是我们最常使用的Hack标识,记住,需要“!”作为开头,比如“width:80!important;”。
1、float的div一定要闭合。
例如:(其中floatA、floatB的属性已经设置为float:left;)<#div id=\”floatA\”><#div id=\”floatB\” ><#div id=\”NOTfloatC\” >这里的NOTfloatC并不希望继续平移,而是希望往下排。
这段代码在IE中毫无问题,问题出在FF。
原因是NOTfloatC并非float标签,必须将float标签闭合。
在<#div class=\”floatB\”><#div class=\”NOTfloatC\”>之间加上<#div class=\”clear\”>这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear这种样式定义为如下即可:.clear{clear:both;}2、margin加倍的问题。
设置为float的div在ie下设置的margin会加倍。
这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:inline;例如:<#div id=\”imfloat\”>相应的css为#IamFloat{float:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/}5、最狠的手段- !important;如果实在没有办法解决一些细节问题,可以用这个方法.FF对于”!important”会自动优先解析,然而IE则会忽略.如下.tabd1{background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/ background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}值得注意的是,一定要将xxxx !important 这句放置在另一句之上,上面已经提过;IE7.0出来了,对CSS的支持又有新问题。
浏览器多了,网页兼容性更差了,疲于奔命的还是我们,为解决IE7.0的兼容问题,找来了下面这篇文章:现在我大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用“*+html”,现在用IE7浏览一下,应该没有问题了。
现在写一个CSS可以这样:#example { color: #333; } /* Moz */* html #example { color: #666; } /* IE6 */*+html #example { color: #999; } /* IE7 */那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999,他们都互不干扰。
IE6能识别下划线_和星号*,IE7能识别星号*,不能识别下划线_4、cursor: pointer可以同时在IE FF 中显示游标手指状,hand 仅IE 可以5、FF: 链接加边框和背景色,需设置display: block,同时设置float: left 保证不换行。
6、FF(火狐):设置padding后,DIV会增加height和width,但IE不会,故需要用!important多设一个height和widthCSS+DIV的兼容性问题在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS 设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网可能出去不想出现的效果!所有浏览器通用height: 100px;IE6 专用_height: 100px;IE6 专用*height: 100px;IE7 专用*+height: 100px;IE7、FF 共用height: 100px !important;一、CSS 兼容以下两种方法几乎能解决现今所有兼容.1, !important (不是很推荐,用下面的一种感觉最安全)随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)代码:<style>#wrapper {width: 100px!important; /* IE7+FF */width: 80px; /* IE6 */}</style>2, IE6/IE77对FireFox <from 针对firefox ie6 ie7的css样式>*+html 与*html 是IE特有的标签, firefox 暂不支持.而*+html 又为IE7特有标签.代码:<style>#wrapper { width: 120px; } /* FireFox */*html #wrapper { width: 80px;} /* ie6 fixed */*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序*/</style>注意:*+html 对IE7的兼容必须保证HTML顶部有如下声明:代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">二、万能float 闭合(非常重要!) 可以用这个解决多个div对齐时的间距不对,关于clear float 的原理可参见[How To Clear Floats Without Structural Markup]将以下代码加入Global CSS 中,给需要闭合的div加上class=”clearfix” 即可,屡试不爽.代码:<style>/* Clear Fix */.clearfix:after {content:".";display:block;height:0;clear:both;visibility:hidden;}.clearfix {display:inline-block;}/* Hide from IE Mac \*/.clearfix {display:block;}/* End hide from IE Mac *//* end of clearfix */</style>三、其他兼容技巧(相当有用)1, FF下给div 设置padding 后会导致width 和height 增加, 但IE不会.(可用!important 解决)2, 居中问题.1).垂直居中.将line-height 设置为当前div 相同的高度, 再通过vetical-align: middle.( 注意内容不要换行.)2).水平居中. margin: 0 auto;(当然不是万能)3, 若需给a 标签内内容加上样式, 需要设置display: block;(常见于导航标签)4, FF 和IE 对BOX 理解的差异导致相差2px 的还有设为float的div在ie下margin加倍等问题.5, ul 标签在FF 下面默认有list-style 和padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)6, 作为外部wrapper 的div 不要定死高度, 最好还加上overflow: hidden.以达到高度自适应.7, 关于手形光标. cursor: pointer. 而hand 只适用于IE.贴上代码:兼容代码:兼容最推荐的模式。
/* FF */.submitbutton {float:left;width: 40px;height: 57px;margin-top: 24px;margin-right: 12px;}/* IE6 */*html .submitbutton {margin-top: 21px;}/* IE7 */*+html .submitbutton {margin-top: 21px;}什么是浏览器兼容:当我们使用不同的浏览器(Firefox IE7 IE6)访问同一个网站,或者页面的时候,会出现一些不兼容的问题,有的显示出来正常,有的显示出来不正常,我们在编写CSS的时候会很恼火,刚修复了这个浏览器的问题,结果另外一个浏览器却出了新问题。
而兼容就是一种办法,能让你在一个CSS里面独立的写支持不同浏览器的样式。
这下就和谐了。
呵呵!最近微软发布的IE7浏览器的兼容性确实给一些网页制作人员添加了一个沉重的负担,虽然IE7已经走向标准化,但还是有许多和FF不同的地方,所以需要用到IE7的兼容,有许多朋友问过IE7的兼容是什么,其实我也不知道。
暂时还没找到IE7专用的兼容。
除了前面那片文章,《针对firefox ie6 ie7的css样式》中的兼容方式也是很好用的。
有一点逻辑思想的人都会知道可以用IE和FF的兼容结合起来使用,下面介绍三个兼容,例如:(适合新手,呵呵,高手就在这里路过吧。
)程序代码第一个兼容,IE FF 所有浏览器公用(其实也不算是兼容)height:100px;第二个兼容IE6专用_height:100px;第三个兼容IE6 IE7公用*height:100px;介绍完了这三个兼容了,下面我们再来看看如何在一个样式里分别给一个属性定义IE6 IE7 FF专用的兼容,看下面的代码,顺序不能错哦:程序代码height:100px;*height:120px;_height:150px;下面我简单解释一下各浏览器怎样理解这三个属性:在FF下,第2、3个属性FF不认识,所以它读的是height:100px;在IE7下,第三个属性IE7不认识,所以它读第1、2个属性,又因为第二个属性覆盖了第一个属性,所以IE7最终读出的是第2个属性*height:120px;在IE6下,三个属性IE6都认识,所以三个属性都可以读取,又因为第三个属性覆盖掉前2个属性,所以IE6最终读取的是第三个属性。
1 针对firefox ie6 ie7的css样式现在大部分都是用!important来兼容,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!找到一个针对IE7不错的兼容方式就是使用“*+html”,现在用IE7浏览一下,应该没有问题了现在写一个CSS可以这样:#1 { color: #333; } /* Moz */* html #1 { color: #666; } /* IE6 */*+html #1 { color: #999; } /* IE*/那么在firefox下字体颜色显示为#333IE6下字体颜色显示为#666,IE7下字体颜色显示为#999。