收藏 分销(赏)

Windows系统下各浏览器兼容性.doc

上传人:天**** 文档编号:3138325 上传时间:2024-06-19 格式:DOC 页数:21 大小:332.50KB
下载 相关 举报
Windows系统下各浏览器兼容性.doc_第1页
第1页 / 共21页
Windows系统下各浏览器兼容性.doc_第2页
第2页 / 共21页
Windows系统下各浏览器兼容性.doc_第3页
第3页 / 共21页
Windows系统下各浏览器兼容性.doc_第4页
第4页 / 共21页
Windows系统下各浏览器兼容性.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、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是在selectorproperty:value;基础上更改的。selector代表CSS选择器,property代表CSS特性,value代表特性的值。3. FF代表Firefox,Ch代表Chorme,Sa代表Safari,Op代表Opera4. Q代表Quirks Mode,

2、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代码#divcss5bac

3、kground:blue; /*非IE 背景藍色*/background:red 9; /*IE6、IE7、IE8背景紅色*/ 2.区别IE6,IE7,IE8,FF CSS HACK【区别符号】:9、*、_【示例】:#divcss5background:blue; /*Firefox 背景变蓝色*/background:red 9; /*IE8 背景变红色*/*background:black; /*IE7 背景变黑色*/_background:orange; /*IE6 背景变橘色*/【说明】:因为IE系列浏览器可读9,而IE6和IE7可读*(米字号),另外IE6可辨识_(底线),因此可以依

4、照顺序写下来,就会让浏览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。 3.区别IE6、IE7、Firefox (EXP 1) 【区别符号】:*、_【示例】:#divcss5background:blue; /*Firefox背景变蓝色*/*background:black; /*IE7 背景变黑色*/_background:orange; /*IE6 背景变橘色*/ 【说明】:IE7和IE6可读*(米字号),IE6又可以读_(底线),但是IE7却无法读取_,至于Firefox(非

5、IE浏览器)则完全无法辨识*和_,因此就可以透过这样的差异性来区分IE6、IE7、Firefox 4.区别IE6、IE7、Firefox (EXP 2) 【区别符号】:*、!important【示例】:#divcss5background:blue; /*Firefox 背景变蓝色*/*background:green !important; /*IE7 背景变绿色*/*background:orange; /*IE6 背景变橘色*/ 【说明】:IE7可以辨识*和!important,但是IE6只可以辨识*,却无法辨识!important,至于Firefox可以读取!important但不能辨

6、识*因此可以透过这样的差异来有效区隔IE6、IE7、Firefox。 5.区别IE7、Firefox 【区别符号】:*、!important【示例】:#divcss5background:blue; /*Firefox 背景变蓝色*/*background:green !important; /*IE7 背景变绿色*/ 【说明】:因为Firefox可以辨识!important但却无法辨识*,而IE7则可以同时看懂*、!important,因此可以两个辨识符号来区隔IE7和Firefox。 6.区别IE6、IE7 (EXP 1) 【区别符号】:*、_【示例】:#tip *background:b

7、lack; /*IE7 背景变黑色*/_background:orange; /*IE6 背景变橘色*/ 【说明】:IE7和IE6都可以辨识*(米字号),但IE6可以辨识_(底线),IE7却无法辨识,透过IE7无法读取_的特性就能轻鬆区隔IE6和IE7之间的差异。 7.区别IE6、IE7 (EXP 2) 【区别符号】:!important【示例】:#divcss5background:black !important; /*IE7 背景变黑色*/background:orange; /*IE6 背景变橘色*/ 【说明】:因为IE7可读取!important;但IE6却不行,而CSS的读取步骤是

8、从上到下,因此IE6读取时因无法辨识!important而直接跳到下一行读取CSS,所以背景色会呈现橘色。 8.区别IE6、Firefox 【区别符号】:_【示例】:#divcss5background:black; /*Firefox 背景变黑色*/_background:orange; /*IE6 背景变橘色*/ 【说明】:因为IE6可以辨识_(底线),但是Firefox却不行,因此可以透过这样的差异来区隔Firefox和IE6,有效达成CSS hack。 以上包括了IE6IE8IE7火狐浏览器兼容问题及解决方法。CSS Hack汇总快查(CSS兼容代码演示)以下是常用CSS HACK问题

9、及解决代码-DIV+CSS网支持1、屏蔽IE浏览器(也就是IE下不显示)*:lang(zh) select font:12px !important; /*FF的专用*/select:empty font:12px !important; /*safari可见*/这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。2、仅IE7识别hack*+html 当面临需要只针对IE7做样式的时候就可以采用这个HACK。3、IE6及IE6以下识别CSS HACK* html 这个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不

10、识别。html/*/ body select 这句与上一句的作用相同。4、仅IE6不识别div hackselect display /*IE6不识别*/:none;这里主要是通过CSS注释分开一个属性与值,流释在冒号前。5、仅IE6识别支持.yangshi_height:20px;这里IE6支持识别CSS属性前“_”短下划线。6、仅IE6与IE5不识别select/*/ display /*IE6,IE5不识别*/:none;这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。7、仅IE5不识别select/*IE5不识别*/ display:none;这一句是在上一句中去掉了属性

11、区的注释。只有IE5不识别8、盒模型解决方法selct width:IE5.x宽度; voice-family :; voice-family:inherit; width:正确宽度;盒模型的清除方法不是通过!important来处理的。这点要明确。9、清除浮动select:after content:.; display:block; height:0; clear:both; visibility:hidden;在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题 。10、截字省略号sele

12、ct -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。11、只有Opera识别media all and (min-width: 0px) select 针对Opera浏览器做单独的设定。以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特

13、别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。12、IE的if条件Hack Only IE 所有的IE可识别 Only IE 5.0 只有IE5.0可以识别 Only IE 5.0+ IE5.0包换IE5.5都可以识别 Only IE 6- 仅IE6可识别 Only IE 6/+ IE6以及IE6以下的IE5.x都可识别 Only IE 7/- 仅IE7可识别13、仅IE8兼容识别divheight:20px9;这里的“9”仅IE8支持识别解决PNG图片在IE6中背景不透明方1、解决PNG图片在IE6中背景不透明的CSS与JS代码 - TOPJS代码function

14、correctPNG() / correctly handle PNG transparency in Win IE 5.5 & 6.var arVersion = navigator.appVersion.split(MSIE)var version = parseFloat(arVersion1)if (version = 5.5) & (document.body.filters) for(var j=0; jdocument.images.length; j+)var img = document.imagesjvar imgName = img.src.toUpperCase()if

15、 (imgName.substring(imgName.length-3, imgName.length) = PNG)var imgID = (img.id) ? id= + img.id + : var imgClass = (img.className) ? class= + img.className + : var imgTitle = (img.title) ? title= + img.title + : title= + img.alt + var imgStyle = display:inline-block; + img.style.cssText if (img.alig

16、n = left) imgStyle = float:left; + imgStyleif (img.align = right) imgStyle = float:right; + imgStyleif (img.parentElement.href) imgStyle = cursor:hand; + imgStylevar strNewHTML = img.outerHTML = strNewHTMLj = j-1 window.attachEvent(onload, correctPNG);CSS代码: #idbackground:url(图片路径) ;_filter: progid:

17、DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=图片路径);_background:none; 2、解决png图片在html中IMG标签使用PNG图片IE6中背景不透明方法 - TOP1、新建一个JS文件为iepngfx.js,进以上JS代码拷贝到JS文件里2、在HTML中声明只有IE6读取此新建JS文件iepngfx.js中只允许IE6读取此JS文件方法:3、在html中使用图片标签IMG运用PNG图片,在IE6试试看PNG图片背景是否透明了。3、在CSS中png作为网页背景时

18、在IE6中背景透明方法 - TOP同样方法1、新建JS文件同上,命名为iepngfx.js,进以上JS代码拷贝到JS文件里2、在HTML中声明只有IE6读取此新建JS文件iepngfx.js中只允许IE6读取此JS文件方法:3、在CSS中运用PNG图片作为背景的地方加入以下CSS代码:#idbackground:url(图片路径) ;_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=图片路径);_background:none;这样即可解决PNG图片

19、在HTML中img作为图片图标背景不能透明或PNG图片作为网页背景background运用的一样实现PNG图片背景透明CSS 针对谷歌浏览器(Chrome) safari的webkit核心浏览器CSS hack我们知道和会运用CSS IE 火狐浏览器之间的区别DIV+CSS HACK,这里为大家再介绍下区别谷歌浏览器(Chrome)苹果浏览器(safari)与IE之间的hack;只有webkit核心浏览器的谷歌浏览器、safari浏览器识别的CSS hackChrome和safari的CSS hack代码,只有谷歌浏览器苹果浏览器读取CSS代码:media screen and (-webki

20、t-min-device-pixel-ratio:0) /* Webkit内核兼容CSS */范例:media screen and (-webkit-min-device-pixel-ratio:0) .yangshi1color:#f00.yangshi2border:1px solid #f00;.yangshi3background:#f00;HTML代码:css样式1divcss5样式2div+css样式3总DIV CSS代码:谷歌浏览器和safari webkit独有区别其它浏览器css hack演示media screen and (-webkit-min-device-pixe

21、l-ratio:0) .yangshi1color:#f00.yangshi2border:1px solid #f00;.yangshi3background:#f00; /* */ css样式1divcss5样式2div+css样式3可自己动动手复制以上完整演示代码,自己实例实例增加记忆和使用技巧知识演示效果图:css hack演示图说明:左边下方为IE浏览器显示效果,右边上方为谷歌浏览器显示效果,很明显Chrome支持独有生效的此CSS hack代码。CSS网页错位之DIV CSS宽度计算DIV CSS宽度计算之CSS网页布局错位为什么计算宽度计算网页像素宽度是为了CSS网页布局整齐与兼

22、容。常见的我们布局左右结构网页或使用padding、margin布局的时候将计算整页宽度,如果不计算无论是宽度过大过小就会出现错位问题。怎么计算CSS宽度例一:我们计算一个左右结构的布局样式。假如总宽度为400px,那么左右加起来就应当小于400px,那我们可能左边为300px,右边为100px正确代码:左右结构宽度计算.yangshiwidth:400px;.zuo float:left; width:300px; background:#CCC;.you float:right; width:100px; background:#999左边300px右边100px以上为正确的左右结构总宽度

23、刚好等于400px错误:假如我们在总宽度不变情况下,左边为300px,而右边为120px那总宽度超过了20px,我们看看会出现什么问题,DIV+CSS代码如下:左右结构宽度计算.yangshiwidth:400px;.zuo float:left; width:300px; background:#CCC;.you float:right; width:120px; background:#999左边300px右边100px我们根据上图可看出因为总宽度大约了20px,所以导致了左右结构不能平齐,就出现了右边往下掉。这样就出现了错位的兼容问题,一般在实际中因为我们计算的疏忽,一般相差小的时候是1

24、px-2px,那样就不会被我们发现,所以排除错位兼容可以从宽度计算入手。例二:左右结构中有1px边框实例一般左右结构中有1px边框,然后再加上有些边框这时我们设置左右结构时候就需要将此边框宽度与左右结构宽度计算在一起。正确例子:CSS与html代码如下:左右结构宽度计算.yangshiwidth:400px;.zuo float:left; width:298px; border:1px solid #F00; background:#CCC;.you float:right; width:98px; background:#999; border:1px solid #F00;左边300px

25、右边100px结果图:因左右结构都有1px的宽度这个时候各需要减去左右2像素的边框宽度,所以左边最后是298px,右边为98px的宽度如果不减去边框将会造成一下效果:DIV+CSS设置百分比宽度计算有时候我们也需要使用百分比来计算宽度,通常情况也是总的百分比宽度,不能超过100%CSS宽度计算时候注意总结:无论是左右结构、多列的布局还是单独一个DIV宽度的布局设置都需要注意宽度的把握与计算,特别是使用了padding、margin、边框等CSS属性,这个时候我们都需要将它们设置的占用宽度计算入内,牢牢把握同排各宽度之和小于或等于总宽度,如果大于总宽度将会出现错位的兼容问题。所以一般错位时我们就

26、可以从计算宽度入手,当然错位还有很多原因这里也是解决错位兼容问题的方法之一。CSS失效网页乱码原因兼容问题-手写CSS代码注意什么?乱码VS编码前面我们介绍过导致网页乱码、CSS失效等原因一部分是由于自己编写的时候没有注意编码问题,不编码转化问题,常常因为自己写的时候使用一种编码,发现别人比较好的DIV+CSS片段比较好直接就复制过来用,结果别人编码与自己编码不符合从而造成网页在IE中呈现乱码,或CSS失效(CSS声明)。解决办法使用软件中编码转化功能进行网页代码转化。如使用Dreamweaver中功能转化编码。-了解语言编码charset网页编码知识大小写VS失效1、CSS命名选择符大小写为

27、注意常常我们在写html时候使用标签的时候使用全角或中文输入法的时候我们能看出毛病来,但是在手写CSS代码的时候因为自己把CSS命名的选择符这个“.”(点)大写结果会造成此CSS选择器失效,所以注意CSS选择符大小写。(一定使用半角英文输入法小写)2、CSS属性中分号大小写在写CSS选择器内的CSS属性的时候,我们常常因为未注意每个CSS属性和对应值结束的时候需要用“;”(分号)结束分割,或未写或大写都会造成此后的这个选择器内属性失效。当然一个CSS属性选择器最后一个可以不加分号结束,但是我们为了养成良好的习惯一定加上。(每个CSS选择器花括号的CSS属性结束一定要以半角小写分号“;”结束。)

28、DIVCSS5总结:无论是使用工具制作DIV CSS网页还是手写,平时多注意这些小问题,一点一滴积累和养成好的习惯将会让你在制作网页时候不易出错,记住细节决定成败!IE的if条件css hack针对不同的IE浏览器版本,使用if条件来设置对应css样式,从而解决css hack Only IE 所有的IE可识别 Only IE 5.0 只有IE5.0可以识别 Only IE 5.0+ IE5.0包换IE5.5都可以识别 Only IE 6- 仅IE6可识别以内的css样式 Only IE 6/+ IE6以及IE6以下的IE5.x都可识别 Only IE 7/- 仅IE7可识别以内的css样式特

29、别说明ie8不能使用if条件来设置div css样式,这里的“!-”是css注解、css注释、css解释中用到相同,可以进入了解css 注释。这里使用css注释方式来解决if条件隐藏条件,从而在其它不符合if条件浏览器下不显示条件及解释if条件里样式,你可以了解下css隐藏其它方法。通过以上的if条件来对不同版本浏览器调用不同css样式来解决css hack方法。实例如下:接下来我们只实验一个只有微软IE可识别,火狐不识别例子代码如下IE的if条件css hack实例 <!-if IE> Only IE <!endif->我是测试

30、样式截图如下左边为微软IE浏览器,右边为火狐浏览器,通过if条件对样式设置只在ie中起作用后效果图。特别说明的if条件在ie8中不能生效。区别IE8浏览器的CSS hack上次我们介绍了ie6、ie7、火狐(firefox)浏览器的css hack区别方法及运用,接下来我们介绍微软最新IE成员ie8与前面浏览器的css hack写法区别。在使用css hack中我们运用了CSS读取原理。同时安装ie6、ie7、ie8浏览器方法:IETester浏览器测试工具介绍。CSS hack区分如下注意顺序与浏览器CSS HACK位置:CSS hack:区分IE6,IE7 ,IE8,firefox区别不同

31、浏览器,CSS hack写法:区别FF与IE6:background:orange;*background:blue; 解释:FF只能识别background:orange; IE6识别*background:blue; 区别IE7与IE6:background:green !important;background:blue;或者*background:green;_background:blue;区别IE6与IE8:background:orange; /*/background:blue;/*/区别IE7与IE8:background:orange; /*/background:blue

32、;/*/区别FF与IE7:background:orange; *background:green !important;区别FF,IE7,IE8,IE6:background:orange;*background:green important;background:#1119;_background:blue; 或者使用区别FF,IE7,IE8,IE6:background:orange;*background:green !important;background:#1119;*background:blue;CSS Hack实例例子:DIV+CSS各浏览器css hack测试,测试我是

33、测试颜色,不在不同浏览器下显示颜色不同哦!-我是颜色在IE6显示 我是颜色在ie7显示 我是颜色在ie8显示 我是颜色在火狐(firefox)显示在线演示-点击这里以上代码你拷贝到一个新建的html文件在不同版本浏览器测试就会有不同效果。运用此例子即可解决我们在日常DIV+CSS开发时候的css hack问题。同时我们如果不想那么的麻烦来做IE8的css hack,我们只需要在html的之间加入,最好加到CSS文件下发即可,在IE8 下和IE7下显示内容相同,这样我们只需区分IE6、IE7、火狐(firefox)的css hack即可。很多大型站点都采用在head加入此代码来减少css bug

34、。CSS hack之区别不同浏览器的写法我们在开发DIV+CSS页面时候常常会遇到开发出的网页的一些地方在各大浏览器比如微软IE6、微软IE7、微软IE8、火狐浏览器、谷歌浏览器有一些不同,如宽度、高度等地方有相差误。IE6比较老的版本浏览器,用户比较多,IE7较新浏览器,更接近标准浏览器,IE8算是微软标准浏览器,但差别于浏览器,火狐(Mozilla, Firefox)和谷歌浏览器(chrome)是比较标准的IE浏览器,一般我们以这个浏览器为开发参考平台,同时IE8与这两个浏览器解释CSS比较接近,一般只要通过火狐、谷歌浏览器测试兼容,一般就能确定IE8.因此一般我们区别这些浏览器CSS hack的方法就变得简单,我们只需考虑IE6IE7火狐(Firefox)这3个浏览器即可兼容全部浏览器。具体区别如下:区别IE6与FF:backgro

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服