ie6、ie7、ie8与火狐兼容问题
IE面试储备知识
IE面试储备知识一、什么是IE?IE(Internet Explorer)是微软公司开发的一款网页浏览器。
在过去的几十年中,IE曾经是最受欢迎的浏览器之一,但是随着时间的推移,它的市场份额逐渐被其他浏览器所取代。
尽管如此,仍然有很多公司和个人在使用IE浏览器,因此对IE面试储备知识的了解仍然非常重要。
二、IE的版本IE的版本众多,下面列举一些主要的版本及其特点。
1.IE6:IE6是在2001年发布的,是IE系列中使用最广泛的版本之一。
然而,IE6存在许多安全漏洞和兼容性问题,因此使用IE6已经不再推荐。
2.IE7:IE7在2006年推出,它引入了一些新的功能和改进,如选项卡式浏览、RSS阅读等。
但是,IE7仍然存在许多兼容性问题。
3.IE8:IE8在2009年发布,它进一步提升了兼容性和安全性。
IE8引入了开发者工具和加速度渲染等功能,使得用户体验更加流畅。
4.IE9:IE9在2011年发布,它在性能、安全性和兼容性方面都有了显著的提升。
IE9支持HTML5和CSS3等新的Web标准。
5.IE10:IE10在2012年发布,它进一步改进了性能和兼容性。
IE10还加入了一些新的特性,如触摸支持和全屏浏览模式。
6.IE11:IE11在2013年发布,它是IE系列的最后一个版本。
IE11继续加强了性能、安全性和兼容性,并且支持更多的Web标准。
三、IE面试中可能涉及的问题在IE面试中,以下是一些可能会被提及的问题:1.请介绍一下IE的历史和版本。
2.你在开发过程中如何处理IE的兼容性问题?3.请简要说明IE中的盒模型是什么?4.你如何处理IE中的浮动问题?5.请解释一下IE中的事件冒泡和事件捕获。
6.请简要介绍一下IE中的XMLHttpRequest对象。
7.你在开发过程中如何处理IE中的缓存问题?8.请解释一下IE中的跨域请求问题以及解决方案。
四、IE面试备考建议在备考IE面试时,以下是一些建议可以帮助你更好地准备:1.对IE的历史和版本要有一定的了解,了解每个版本的特点和主要改进。
常见软件对比系列一常见浏览器对比
常见软件(1)对比系列一常见浏览器对比浏览器是大家最常用的软件之一。
常见的浏览器有Internet Explorer(包括众多国产IE 内核(2)浏览器)、Firefox浏览器、Chrome浏览器、Opera 浏览器、Safari浏览器。
一、各浏览器的简要介绍及外观截图1、IE浏览器IE浏览器是微软公司(Microsoft)出品的老牌浏览器:诞生于1995年。
现在市场占有率排名第一。
我们现在一般所见的IE版本有IE6,IE7,IE8,IE9。
其中IE6开始慢慢地被淘汰,但是起占有率尤其是配置较低的旧电脑上比较高。
IE7现在并不常见,因为它与它的升级版本IE8风格外观操作习惯十分相像,所以很快被IE8取代。
IE8在功能上和兼容性(3)上都较IE7有所提升。
IE9是目前微软主推的浏览器。
2、Firefox浏览器Firefox浏览器:由Mozilla基金会(谋智网络)与开源团体共同开发的网页浏览器。
重要历史:诞生于2004年,现在更新到Firefox 3.6版本。
现在市场占有率排名第二。
火狐浏览器以其丰富多彩的插件(Add-on)著称,并以此给使用者巨大的便利。
3、Chrome浏览器Chrome浏览器是谷歌公司(Google)推出的一款浏览器。
诞生于2009年,现在最新版本为Chrome 10.0.X诞生之初,Chrome 就突出一个特点:快。
尤其在与IE8的对比中,其速度占明显优势,并迫使微软投入大量精力研发IE9.并且其在可视面积,书签及扩展应用的同步上做的相当不错。
Chrome是近年来增长速度最快的浏览器。
4、Safari浏览器Safari浏览器是苹果公司(Apple)推出的浏览器,其起初只有Mac版本,在2007年发布了Windows版本,现在最新版本为Safar I for windows 5.0.x。
5、Opera浏览器Opera浏览器是由挪威欧普拉软件公司(Opera Software ASA)制造的一款浏览器。
【珍藏版】IE6,IE7,IE8,Firefox等浏览器兼容的css hack
IE6,IE7,IE8,Firefox等浏览器兼容的css hack一、开发平台的选择我很幸运, 我接触网页前台的时候Firefox2 已经十分红火, 我的所有工作都是在Firefox 上展开, 同时兼容其他浏览器的. 这样做肯定会比在IE 做好再到别的浏览器兼容来得容易, 因为IE 对老标准支持还是很不错的, 而IE 的一些特有功能人家却不支持. 所以我推荐以Firefox 结合Firebug 扩展作为平台.在解决兼容方法上,想定出一个统一的规范,个人认为应该以下面3点为基本原则:权衡成本:在浏览器被淘汰后,如何快速清理掉无用代码可维护:在资源成本和完美间平衡的向后兼容可读:省力、易记二、Hack 的顺序使用Firefox 作为平台, 只要代码写得够标准, 其实要Hack 的地方不会很多的, IE 以外的浏览器几乎都不会有问题, 所以可以暂时忽略,顺序如下:Firefox -> IE8 -> IE7 -> IE6 -> 其他三、CSS 选择器Hack/* Opera */@media all and (-webkit-min-device-pixel-ratio:10000), not all and(-webkit-min-device-pixel-ratio:0){head~body .sofish{display:block;}}这种写法的优缺点是:优点:全面,各种HACK都有;清理无用代码里易认缺点:选择器名称不易记;代码量多(要重复写选择器)四、CSS 属性Hack.sofish{padding:10px;padding:9px\9; /* all ie */padding:8px\0; /* ie8-9 */*padding:5px; /* ie6-7 */+padding:7px; /* ie7 */_padding:6px; /* ie6 */}这种写法的优缺点是:优点:易记;代码少缺点:不全面五、IE 注释<!--[if IE]>IE only<![endif]--><!--[if !IE]>NOT IE<![endif]-->这种写法的优缺点是:优点:安全;向后兼容好;易维护缺点:用不好会增加HTTP请求;用得好代码又多六、浏览器探测:JS/后端程序判断// 以jQuery为例,检测是否是IE6,是则加上class="ie6" if ($.browser.msie && $.browser.version = 6 ){ $('div').addClass('ie6');}这种写法的优缺点是:优点:全面;易维护;可读性高缺点:占资源;代码量大(要重写选择器)总结:-----------------1、尽量使用单独HACK这样维护起来成本比较低,改动不会影响其他的浏览器,而一旦有浏览器淘汰,只要搜索关键字,就可以批量去掉这些代码。
最全的IE6,IE7,IE8与Fireofx浏览器兼容问题整理(2)
从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名.CSS技巧1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。
缺点是要控制内容不要换行2. margin加倍的问题设置为float的div在ie下设置的margin会加倍。
这是一个ie6都存在的bug。
解决方案是在这个div里面加上 display:inline; 例如:<#div id=”imfloat”> 相应的css为 #IamFloat{ float:left; margin:5px; display:inline;}3.浮动ie产生的双倍距离 #box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} 这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline 元素的特点是,和其他元素在同一行上,不可控制(内嵌元素); #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;4 IE与宽度和高度的问题 IE 不认得min-这个定义,但实际上它把正常的width 和height当作有min的情况来使。
这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE 下面根本等于没有设置宽度和高度。
IE6,IE7,IE8,Firefox,Chrome,Safari的CSS hack兼容表
小知识:什么是CSS hack?由于不同的浏览器,比如IE6、IE7、IE8、Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。
这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。
各浏览器CSS hack兼容表:代码示例:#test{color:red; /* 所有浏览器都支持*/color:red !important;/* Firefox、IE7支持*/_color:red; /* IE6支持*/*color:red; /* IE6、IE7支持*/*+color:red; /* IE7支持*/color:red\9; /* IE6、IE7、IE8支持*/color:red\0; /* IE8支持*/}body:nth-of-type(1) p{color:red;} /* Chrome、Safari支持*/整体测试代码示例:.test{color:#000000;color:#0000FF\0;[color:#00FF00;*color:#FFFF00;_color:#FF0000;}其他说明:1、如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:<meta http-equiv=”x-ua-compatible” content=”ie=7″ />2、body:nth-of-type(1) 如果这样写,表示全局查找body,将会对应第一个<body>。
3、还有其他写法,比如:*html #test{}或者*+html #test{}4、*+html 对IE7的hack 必须保证HTML顶部有如下声明:/TR/html4/loose.dtd5、顺序:Firefox、IE8、IE7、IE6依次排列。
不同浏览器兼容报告
Shuo de——中国金融数据及工具首席服务商IE、FF、Safari、OP不同浏览器兼容报告柯伯勋2011-03-08上海万得资讯科技有限公司Shanghai Wind Information Co., Ltd.地址: 上海浦东新区福山路33号建工大厦9楼邮编Zip : 200120电话T el : (8621)6886 2280传真Fax : (8621)6886 2281Email : sales@主页:1浏览器内核简介浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。
负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。
所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。
1.1Trident:IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE8。
Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。
此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。
由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。
史上最全IE6.IE7.IE9.IE10.谷哥.火狐各浏览器网页兼容性介绍总结
兼,是什么!你会想到是什么,作为一个跟HMTL+CSS打交道的人来说,我只能说,我想到的只有兼容性了,兼容性自始至终困惑着许多人,例如坑爹的IE,是纵多主流浏览器中比较戳的那一个,因BUG手下纵多而闻名,家族几代问题层出不穷。
最坑爹的那个就是IE6,被纵多开发人员包括前端人员所憎恶。
却受许多企业的爱戴。
顺便说一下为什么IE6还在中国活得好好的,IE6是Windows XP中自带的一种浏览器,而Windows XP目前来说是微软开发得比较好也是比较成功的系统,使用人数多。
IE6的稳定性也比较好,目前,大多数企业特别是银行和政府的系统还是使用IE6而不愿升级也是有这方面的原因,IE6之所以盛行当然不只这一些原因,至少IE6什么时候会死那只是时间的问题罢了,在没死之前,我们得保证我们能活着。
好了,接下来来看一下一些兼容性的问题吧,这里只列出数项,日后继续完善。
1.注释引起的血案(1)在注释的时候,如果注释不当,部分浏览器会将会解析错误。
(demo1)如:<!-- 这里是注释内容-->正常显示;<!-- 这里是注释内容- ->时则在IE浏览器下正常显示,在Chrome、Firefox、Safari下不可显示。
或者->也是如此。
解决方法:在进行注释时切记不要着急,看好是否注释有问题,最好能够用VS中自带的注释,以保万无一失。
详见demo1。
(2)注释引发的血案(demo11)文字溢出:问题见demo11,test1:去掉<div style=”float:left;”></div> 中的“float:left”,就会发现多出来的字不见了,页面正常显示;同样去除<div style=”width:350px;float:right;”>中的“float:right”,多余的字也同样消失,页面正常显示。
分析:文字溢出与区块的浮动有关。
test2:把注释放到<div style=”float:left”></div>前面,多余的字消失,页面正常显示把注释放到<div style=”width:350px;float:right;”>我就只有一行字</div>后面,多余的字也同样消失,页面正常显示。
最全整理浏览器兼容性问题与项目解决方案
常见浏览器兼容性问题与解决方案所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。
在大多数情况下,我们的需,无论用户用什么浏览器来查看我们的或者登陆我们的系统,都应该是统一的显示效果。
所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。
在学习浏览器兼容性之前,我想把前端开发人员划分为两类:第一类是精确按照设计图开发的前端开发人员,可以说是精确到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 实现,这就是一个必然会碰到的兼容性问题。
Firefox和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里面完全没有效果了。
IE6兼容性大全
IE6兼容性大全相信从事前端开发的朋友对IE6都是深恶痛绝,恨不得先杀后J,然后再大卸八块以解心头只恨。
虽然是这么可恶的一个浏览器,但是IE6迄今为止的市场占有率仍然很高,截止2009年8月份的市场占有率仍然有25%之多。
那么今天创意灵犀通过翻译国外的译文对IE6的兼容问题进行总结概括。
难免有疏漏之处,如若您有更好的建议,欢迎在回复中提出,我会及时加以补充。
1.前言:考虑浏览器的兼容性,我们要做的首先一定要简洁,如果你的布局太复杂,兼容性就更加难以做到。
其次,我们要实用合适的文档声明,因为没有声明的情况下,IE6会出现很多怪异的问题。
W3CSCHOOL指出,XHTML1.0中文档声明包括以下三种:Frameset(框架型)、Transitional(过渡型)、Strict(严格型) 。
而loose为HTML4.01的类型,并非 XHTML的类型。
我们最常用的通常是过渡型,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">第三,当我们完成制作的时候要记得验证我们的代码,有些人认为校验代码没有任何实用价值,但我不这么认为。
校验仅仅只需花费一点点时间,而且将受益于所有浏览器而非仅仅IE6;验证确保了向后兼容并且易于维护。
至少也得验证XHTML!第四,实用渐进增强,即在适当的时候保留一些不兼容浏览器的基本功能,至少不影响用户体验到网站要表现的内容。
最后是如何测试我们的网站,在FF下我们可以使用功能强大的Firebug,可以方便的对网站的CSS及网站结构进行精确快速的运行时查看,甚至对JS设置断点。
而IE下我们的工具相对较为贫乏,但是我们可以使用IETester来测试不同IE版本的显示效果,IETester的开发者也提供了DebugBar这款IE插件免费供个人使用,但商业用户只可试用60天。
Windows系统下各浏览器兼容性
Windows系统下各浏览器常用CSS HACK汇总表1. 此汇总表中测试浏览器的版本为:微软系统自带:IE6、 IE7、IE8火狐:Firefox 3.6.6Safari:Safari 5.0谷歌浏览器:Chrome 6.0.458.1 devOpera浏览器:Opera 10.602. 其中,多数CSS hack是在selector{property:value;}基础上更改的。
selector代表CSS选择器,property代表CSS特性,value代表特性的值。
3. FF代表Firefox,Ch代表Chorme,Sa代表Safari,Op代表Opera4. Q代表Quirks Mode,S代表Standards Mode。
5. Hack Type列的数字,指的是上面CSS hack的实现方式中的列表号。
1是指“利用浏览器对相同代码的解析和支持的不同实现的hack”,2是指以Firefox或Webkit特有的扩展样式实现的hack。
一定遵守CSS hack的三条原则。
CSS hack是没有办法的时候才使用的解决兼容性问题的招术,是用兼容性问题去解决兼容性问题,无异于饮鸩止渴。
切莫一有兼容性问题就使用,时刻记得改掉用CSS hack修补的问题。
IE6、IE7、IE8、Firefox兼容性CSS HACK代码+示例1.区别IE和非IE浏览器CSS HACK代码#divcss5{background:blue; /*非IE 背景藍色*/background:red \9; /*IE6、IE7、IE8背景紅色*/}2.区别IE6,IE7,IE8,FF CSS HACK【区别符号】:「\9」、「*」、「_」【示例】:#divcss5{background:blue; /*Firefox 背景变蓝色*/background:red \9; /*IE8 背景变红色*/*background:black; /*IE7 背景变黑色*/_background:orange; /*IE6 背景变橘色*/}【说明】:因为IE系列浏览器可读「\9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就会让浏览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。
IE8兼容解决方案
IE不同版本兼容问题及解决方案(如有其他问题请及时补充)整理:王东银时间:2011-02-10一、概述整理过程中发现页面反应出来的问题,大部分是代码不规范引起的,真正IE 不兼容问题,只占少部分,所以建议在设计页面时,同样按照规范编码,例如:⏹在页面设计过程中,尽量避免使用物理样式控制界面样式,而尽可能的使用css样式控制,如应避免使用<b>加粗</b>,而使用样式font-weight:bold;控制加粗;⏹编写html标签以及标签属性时,都使用小写字母,如<TABLECELLSPACING=”0”>应写成<table cellspacing=”0”>等;⏹编写html属性时,值需要使用英文双引号””括起来,例如:<tablecellspacing=0>应写成<table cellspacing=”0”>等;⏹编写css属性时,应为属性添加单位,如:<div style=”width:25”>应写为<div style=”width:25px”>等;⏹所有标签都要闭合,如<p>…应写成<p>…</p>,<link …>应写成<link …/>等;以上只是简单的举例,详细内容建议参考:XHTML编写标准!在开始之前,介绍一下浏览器的三种模式,HTML4提供了三种DOCTYPE可选择:⏹过渡型(Transitional )<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd">要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml 的写法)。
ie6、7、8、火狐浏览器兼容性
解决IE7、IE8样式不兼容问题
方法:要在页面中加入如下HTTP meta-tag:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
只要IE8一读到这个标签,它就会自动启动IE7兼容模式,保证页面完整展示。
注:
IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;
另外再补充一个,下划线"_",
IE6支持下划线,IE7和firefox均不支持下划线。
由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。
这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想Байду номын сангаас的页面效果。
IE6 IE7 FF
_ √ × ×
* √ √ ×
!important × √ √
----------------------------------------
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。
<meta http-equiv="x-ua-compatible" content="ie=7" />
浏览器不兼容原因及解决方案
浏览器间不兼容原因及解决办法网页设计遇到最大的麻烦之一莫过于网页对不同浏览器的兼容性问题了,因为IE 6。
0 / IE 7.0 / firefox 2 / Opera 9等主流浏览器对CSS解析不近相同,导致设计的页面效果不一样,所以用什么方法可以有效解决不同浏览器不同页面效果的问题呢?广泛被使用的方法就是 CSS Hack,即使用特别的CSS定义显示网页在不同浏览器的设计风格,针对不同的浏览器去写不同的CSS,最大化兼容浏览器。
一般情况下,我都会兼顾IE 6.0 / IE 7。
0 / firefox 2。
0浏览器,下面是用的较频繁的CSS Hack技巧:用的最广莫过于!important了,它可以针对IE(IE 7.0能正确理解!important)和非IE浏览器设置不同的样式,只要在非IE浏览器样式的后面加上!important,就可以针对其优先了。
所以为了兼顾IE 6.0与火狐之间的差异,我都会使用!important。
1、仅IE7与IE5.0可以识别*+html select {…}当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK.2、仅IE7可以识别*+html select {…!important;}当面临需要只针对IE7做样式的时候就可以采用这个HACK。
3、IE6及IE6以下识别* html select {…}这个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别这个HACK。
其它浏览器不识别。
4、html/**/ 〉body select {…}这句与上一句的作用相同。
5、仅IE6不识别,屏蔽IE6select { display /*屏蔽IE6*/:none;}这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
6、仅IE6与IE5不识别,屏蔽IE6与IE5select/**/ { display /*IE6,IE5不识别*/:none;}这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。
前端设计师如何处理多浏览器兼容性问题
前端设计师如何处理多浏览器兼容性问题随着互联网的快速发展,各种浏览器层出不穷,用户的使用习惯也各不相同,这为前端设计师带来了一个重要的问题,那就是多浏览器兼容性。
不同浏览器之间可能存在各种差异,包括渲染引擎、CSS 支持度、JavaScript 解释器等方面,如何处理这些问题,保证网站在各种浏览器上的正常显示,成为了前端设计师们需要面对和解决的难题。
一、了解各浏览器的特点和差异在解决多浏览器兼容性问题之前,作为一名前端设计师,首先需要充分了解各个常见浏览器的特点和差异,只有深入了解其工作原理,才能有针对性地解决兼容性问题。
以下是一些常见浏览器的特点和差异:1. Chrome:Chrome 是目前使用最广泛的浏览器之一,其渲染引擎是 Blink,对于新的 HTML、CSS 和 JavaScript 技术的支持度非常好。
2. Firefox:Firefox 是一款主流的开源浏览器,其渲染引擎是 Gecko,对于网页的标准化支持较好。
3. Safari:Safari 是苹果公司开发的浏览器,其渲染引擎是WebKit,与 Chrome 使用的 Blink 引擎类似,在渲染方面具有较好的性能。
4. IE/Edge:IE 和 Edge 是微软旗下的浏览器,IE 使用的是 Trident引擎,而 Edge 使用的是 EdgeHTML 和 Chromium 内核。
由于历史原因,IE 的兼容性问题比较严重,而 Edge 在近年来有了很大的提升。
5. Opera:Opera 是一款较为小众的浏览器,其渲染引擎是 Presto。
Opera 从版本 15 开始切换到了 Blink 引擎,与 Chrome 的兼容性较好。
深入了解各个浏览器的特点和差异,有助于前端设计师更好地处理多浏览器兼容性问题。
二、遵循 Web 标准Web 标准是为了使网页在不同的浏览器和平台上呈现一致性的一系列规范。
在解决多浏览器兼容性问题时,前端设计师应该遵循 Web 标准,编写符合规范的代码。
让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
如有雷同,不胜荣幸,若转载,请注明让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在chrome,firefox,safari,opera,360浏览器(极速模式)、搜狗浏览器等浏览器下均没有问题,而在IE8及IE11下发现样式无法显示,然后各种百度啊,最后在雅朋网的一个网友帖子的帮助下解决了问题,也参考了千寻学习网的资料,先将解决方法总结如下:首先需要确保你的HTML页面开始部分要有DOCTYPE声明。
DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响:对标记attributes 、properties的约束规则对浏览器的渲染模式产生影响,不同的渲染模式会影响到浏览器对于CSS代码甚至JavaScript脚本的解析DOCTYPE是非常关键的,目前的最佳实践就是在HTML文档的首行键入:<!DOCTYPE html>大神的帖子总结的bootstrap的查找原因好几条,首先,Bootstrap3 是移动设备优先的原则开发的,所以原因可能如下:1.没有正确调用远程地址即只要是IE9以下,就调用两个专门的js<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --><!--[if lt IE 9]><script src="/libs/html5shiv/3.7/html5shiv.min.js "></script><script src="/libs/respond.js/1.4.2/respond.min.j s"></script><![endif]-->但是我测试发现仅仅使用以上js文件不可行,2.调用方法不正确不要用file://或@import形式引用respond.min.js或respond.js或css文件3.针对浏览器的内容做标识(使用meta标签调节浏览器的渲染方式)bootstrap不支持IE兼容模式,为了让IE浏览器运行最新的渲染模式,将添加以下标签在页面中<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame(可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Chrome浏览器内核),那么就用Chrome内核来渲染。
CSS hack用法大全(举例详解)
另外再补充一个,下划线"_",
IE6支持下划线,IE7、IE8和Firefox、Opera、Safari均不支持下划线。
3.区别IE6、IE7、Firefox (EXP 1)
【区别符号】:「*」、「_」
【示例】:
#divcss5{
background:blue; /*Firefox背景变蓝色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
</head>
<body>
你正在使用:
<!--[if IE 7]>
<h2>IE7</h2>
<![endif]-->
<!--[if IE 6]>
<h2>IE6</h2>
<![endif]-->
<!--[if IE 8]>
<h2>IE8</h2>
<![endif]-->
<br><br>
【区别符号】:「*」、「!important」
【示例】:
#divcss5{
background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
如何解决ie与火狐的兼容问题
如何解决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中亦可正常运⾏。
Win7与IE8浏览器不兼容的问题怎么解决
Win7与IE8浏览器不兼容的问题怎么解决时至今日,仍有很多人对升级到Win7心存顾虑,其中一个原因就是自己惯用的软件在Windows 7上工作不正常,特别是浏览器的网络应用,初次接触Windows 7的用户会感到不知所措。
再被一些盲目跟风的人一唬,就把Win7视作洪水猛兽。
其实,Windows 7有多种方法可以解决浏览器的兼容性问题,这种恐惧心理是完全没有必要的。
英国媒体近日就微软Windows兼容问题参访专家Jackson,并就如何解决第三方程序的兼容问题提问如下:问:微软打算如何促使企业用户放弃使用IE6?Windows 7在这方面有何作用?答:实际上大家还是习惯使用IE6,很多现有商务程序可以直接运行。
很多用户表示,一旦使用Windows 7,就意味着不得不使用IE8,但是大部分人对其并不熟悉,市面上也没有方便大家了解信息的材料。
那么您认为这仅仅是程序移植问题还是复杂的网页开发项目?公司的IT或开发团队是否需要在这方面多下功夫?有些程序可以通过简单移植后直接使用,但可能还需要一些专业人士修改一部分代码。
但是我们的IT团队也确实应该对此项工作的难度有所把握。
如果一个程序开发员表示,“该项目将历时17周”,那么他的本意可能就是,“事实上,这就是更改某些代码的问题,我觉得你能够在17周内解决这个问题。
”您认为在Windows 7下正常使用IE8最需要注意些什么?最主要的是明确自己为什么要用IE8。
很多人在被问及此问题时,都会回答:“因为我要使用Windows 7呀”。
但事实上,如果不明确自己使用IE8的原因,一旦产生了技术上的问题,很多人就会说,“我放弃了,我不是真的需要用IE8,看看有什么方法能继续使用IE6呢?”但这并不是理想的浏览器。
同时,在就兼容性问题作出决策时,如果用户不明确自己看重IE 的什么特点,也就无法确知需要了解其什么性能。
例如,一位用户用IE8是看重它的安全性能,那么一旦出现问题而需要关闭或修复这些安全属性时,用户就会选择对其原始代码进行修复,而不是直接将其关闭了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<#div id=”imfloat”>
相应的css为
#imfloat{
float:left;
margin:5px;/*IE下理解为10px*/
display:inline;/*IE下再理解为5px*/}
3.浮动ie产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}
4 IE与宽度和高度的问题
IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。
比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? “600px”: “auto” );}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
CSS技巧
1.div的垂直居中问题
vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
2. margin加倍的问题
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;
有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。
8.float的div闭合;清除浮动;自适应高度;①例如:<#div id=”floatA” ><#div id=”floatB” ><#div id=”NOTfloatC” >这里的NOTfloatC并不希望继续平移,而是希望往下排。(其中floatA、floatB的属性已经设置为float:left;)
#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
5.页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类,然后CSS这样设计:
–>
</style>
4. 游标手指cursor
cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
5.UL的padding与margin
ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值,所以先定义 ul{margin:0;padding:0;}就能解决大部分问题
7. BOX模型解释不一致问题
在FF和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;} 注意这两个margin的顺序一定不能写反, important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写margin:xx px!important;
8.属性选择器(这个不能算是兼容,是隐藏css的一个bug)
p{}div{}
这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用.属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p中,所有p标签中有id的都是同样式的.
9.最狠的手段 - !important;
/* Clear Fix */
.clearfix:after { content:”.”; display:block; height:0; clear:both; visibility:hidden; }
.clearfix { display:inline-block; }
/* Hide from IE Mac */
如果实在没有办法解决一些细节问题,可以用这个方法.FF对于”!important”会自动优先解析,然而IE则会忽略.如下
被点击访问过的超链接样式不在具有hover和active了,很多人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序: L-V-H-A
Code:
<style type=”text/css”>
<!–
a:link {}
a:visited {}
a:hover {}
a:active {}
这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;
<div id=”left”></div>
<div id=”center”></div>
<div id=”right”></div>
</div>
比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成 float,所以我们应该这样解决
<div id=”page”>
<div id=”bg” style=”float:left;width:100%”>
<div id=”left”></div>
<div id=”center”></div>
<div id=”right”></div>
</div>
</div>
6.DIV浮动IE文本产生3象素的bug
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#box{ float:left; width:800px;}
#left{ float:left; width:50%;}
#right{ width:50%;}
6. FORM标签
这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0,因此,如果想显示一致,所以最好在css中指定margin和 padding,针对上面两个问题,我的css中一般首先都使用这样的样式ul,form{margin:0;padding:0;}给定义死了,所以后面就不会为这个头疼了.
再嵌入一个float left而宽度是100%的DIV解决之
④万能float 闭合(非常重要!)
关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下代码加入Global CSS 中,给需要闭合的div加上 class=”clearfix” 即可,屡试不爽.
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之间加上 <#div class=”clear”>这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。并且将clear这种样式定义为为如下即可: .clear{ clear:both;}
例如某一个wrapper如下定义:
.colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}
③对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:
<div id=”page”>
②作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。
#box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0}
#box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-}