经常遇到的浏览器的兼容性有哪些
方法/步骤:
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度
问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
问题症状:IE6里的间距比超过设置的间距
碰到几率:20%
解决方案:在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
浏览器兼容问题五:图片默认有间距
问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
碰到几率:20%
解决方案:使用float属性为img布局
备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
浏览器兼容问题六:标签最低高度设置min-height不兼容
问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
碰到几率:5%
解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
浏览器兼容问题七:透明度的兼容CSS设置
做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。
/* CSS hack*/
我很少使用hacker的,可能是个人习惯吧,我不喜欢写的代码IE不兼容,然后用hack来解决。不过hacker还是非常好用的。使用hacker我可以把浏览器分为3类:IE6 ;IE7和遨游;其他(IE8 chrome ff safari opera等)
◆IE6认识的hacker 是下划线_ 和星号 *
◆IE7 遨游认识的hacker是星号 *
比如这样一个CSS设置:
height:300px;*height:200px;_height:100px;
IE6浏览器在读到height:300px的时候会认为高时300px;继续往下读,他也认识*heihgt, 所以当IE6读到*height:200px的时候会覆盖掉前一条的相冲突设置,认为高度是200px。继续往下读,IE6还认识_height,所以他又会覆盖掉200px高的设置,把高度设置为100px;
IE7和遨游也是一样的从高度300px的设置往下读。当它们读到*height200px的时候就停下了,因为它们不认识_height。所以它们会把高度解析为200px,剩下的浏览器只认识第一个height:300px;所以他们会把高度解析为300px。因为优先级相同且想冲突的属性设置后一个会覆盖掉前一个,所以书写的次序是很重要的。
1.遇到问题:当前浏览器为ie7及以下版本
解决思路:用一个div覆盖,让用户不能看到正常页面呈现的内容
实现方法:将正常是显示内容的div的display属性设置为none,将覆盖div的display属性设置为block(PS:在其中可以加入浏览器下载链接,让用户尽快正常浏览页面)
2.遇到问题:ie8中不能实现圆角,因为ie8不能很好的支持css3
解决思路:下载PIE使得ie8支持css3中的圆角
1,浏览器兼容问题一:不同浏览器的标签默认的margin和padding不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:
CSS里加一行
1
*{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
2,浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大
问题症状:常见症状是IE6中后面的一块被顶到下一行
碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性
备注:最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。
3,浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度
问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
备注:这种情况一般出现在设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
4,浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
问题症状:IE6里的间距比超过设置的间距
碰到几率:20%
解决方案:在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,它就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以再加上display:inline的话,它的高宽就不可设了。
5,浏览器兼容问题五:图片默认有间距
问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
碰到几率:20%
解决方案:使用float属性为img布局
备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
6,浏览器兼容问题六:标签最低高度设置min-height不兼容
问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
碰到几率:5%
解决方案:如果要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
备注:在B/S系统前端开时,有很多情况下有这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候就会面临这个兼容性问题。
扩展资料:
浏览器兼容性解决方案:
1,对于一般用户来说:
应该用ie8兼容模式浏览网页, 而不应该用ie9或ie10渲染模式. 很多用户安装ie10后发生很多网页显示错乱, 就是兼容性的原因, 因为ie10默认的渲染模式是ie10. 此时应该将其改为ie7渲染模式。
用ie6/7渲染模式的原因如下:
中国所有网页肯定都支持ie,支持ie就是支持ie内核的所有浏览器. 但并不一定支持chrome, firefox,双核浏览器的高速模式,原因很简单,网页开发人员没有那么多时间和精力去兼容及测试那么多浏览器,开发人员能让网页在ie下正常工作已经不错了。
2,对于网站开发者来说:
暂没有统一的能解决这样的工具,最普遍的解决办法就是不断的在各浏览器间调试网页显示效果,通过对css样式控制以及通过脚本判断并赋予不同浏览器的解析标准。
如果所要实现的效果可以使用 框架,那么还有另一个解决办法是在开发过程中使用当前比较流行的JS,CSS框架框架,如jQuery,YUI等等,因为这些框架无论是底层的还是 应用层的一般都已经做好了浏览器兼容,所以可以放心使用。
除此之外,CSS提供了很多hack接口可供使用,hack既可以实现跨浏览器的兼容,也可以实现同一浏览器不同版本的兼容。
浏览器兼容问题一:不同浏览器的标签默认的margin和padding不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:
CSS里加一行
1
*{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大
问题症状:常见症状是IE6中后面的一块被顶到下一行
碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性
备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度
问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
问题症状:IE6里的间距比超过设置的间距
碰到几率:20%
解决方案:在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
浏览器兼容问题五:图片默认有间距
问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
碰到几率:20%
解决方案:使用float属性为img布局
备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
浏览器兼容问题六:标签最低高度设置min-height不兼容
问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
碰到几率:5%
解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
浏览器兼容问题七:各种特殊样式的兼容,比如透明度、圆角、阴影等。特殊样式每个浏览器的代码区别很大,所以,只能现查资料通过给不同浏览器写不同的代码来解决。
JS解决IE6下png透明失效的问题
做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。
经常遇到的浏览器的兼容性有哪些
备注:最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。3,浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度 问题症状:IE6...
经常遇到的浏览器的兼容性有哪些
1、PNG24位的图片在ie6浏览器上出现背景。2、浏览器默认的margin和padding不同。3、i块属性标签float后,又有横行的margin情况下,在IE6显示的margin比设置的大。4、IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute获取自定义的属性;在FireFox下,只能使用getAttribute获取自定义...
兼容模式怎么设置?5个常用浏览器的设置方法
1. 搜狗浏览器右键点击空白处选择【切换到兼容模式】,或者通过【选项】-【高级】-【更多高级设置】启用。2. 谷歌浏览器点击右上角菜单,选择【工具】-【扩展程序】安装【IE tab multi】,启用时点击【IPA图标】进入兼容模式。3. QQ浏览器打开浏览器,点击菜单选择【设置】-【高级】,设置【内核模式...
Web前端中常见的浏览器兼容问题有哪些
使用Trident内核的浏览器:IE、Maxthon、TT; 使用Gecko内核的浏览器:Netcape6及以上版本、FireFox; 使用Presto内核的浏览器:Opera7及以上版本; 使用Webkit内核的浏览器:Safari、Chrome。 而我现在所说的兼容性问题,主要是说IE与几个主流浏览器如firefox,google等。而对IE浏览器来说,IE7又是个跨度...
探讨浏览器的兼容性问题,谈谈常见的cssbug有哪些(总结)
一、常见的主流浏览器1. 主流浏览器 Internet Explorer、 Safari、Mozilla Firefox、 Google Chrome、Opera、百度、360、搜狗、傲游2. 最早的浏览器 : Mosaic \/ Netscape Navigator(网景领航者)(1994-2008)简称NN二、五大浏览器内核 Trident (MSHTML) (三叉戟;三叉线;三齿鱼叉) Gecko (壁虎) ...
浏览器兼容性问题
对专有方法已有涵盖。3、浏览器市场扩大,网站为了宣称自己的兼容能力,一般都能在Mozilla Firefox、Opera、Safari和传统阵营的Internet Explorer、Netscape Navigator正常被浏览。4、浏览器的兼容能力日益受到需要;浏览器亦因应趋势,使自己的浏览器提供更多兼容功能。
IE11浏览器兼容性视图设置无法保存的解决办法
1、打开IE11浏览器,同样的打开“Internet选项”窗口,切换到“常规”选项卡;2、然后在浏览历史模块中,取消勾选取消勾选“退出时删除浏览历史记录”项,然后点击确定退出即可。关于IE11无法保存浏览器兼容性视图设置的解决方法就跟大家介绍到这里了,遇到这样问题的朋友们可以根据上面的方法进行操作即可,...
常规浏览器兼容模式的设置方法
首先,我们以搜狗浏览器为例。在网页空白处点击右键,选择“切换到兼容模式”即可轻松完成设置。接下来,360浏览器的操作方法分为两步。若当前显示"闪电"图标则表示为极速模式,只需点击该图标,选择兼容模式即可完成切换。对于QQ浏览器,操作步骤稍微复杂一些。打开QQ浏览器,找到右上角的菜单按钮,点击...
十大常用浏览器推荐,哪个才是你的最爱!
3. FirefoxFirefox得益于庞大的开发者社区,提供了丰富的工具和插件。它的安全防护出色,但兼容性上可能在某些特定网站遇到挑战。4. 猎豹浏览器猎豹浏览器,由金山网络打造,采用双核引擎,既保证速度又兼顾兼容性。其智能功能如智能地址栏和鼠标手势,使用户操作更为便捷,且注重隐私保护。5. 360极速浏览...
浏览器不兼容怎么办?
四、清除浏览器缓存和Cookie 有时候,旧的缓存文件或Cookie可能会导致插件不兼容。进入浏览器设置,清除缓存和Cookie后,重新加载插件,看问题是否得到解决。详细解释:当我们在使用浏览器时,可能会遇到某些插件不被支持的情况。这可能是由于插件本身存在问题,或者是浏览器与插件之间的兼容性问题。首先,我...
唐毛越鞠: 现在主流的浏览器都有两个内核,一个webkit内核 一个IE内核. webkit内核加载网页的速度会比IE内核快很多,所以你会感觉浏览器确实越来越快了. 但是由于IE的历史比较悠久,很多网站是基于IE的标准建设的.特别是国内的政府网站和银行网站,在安全性的措施上面都使用的是IE专有的技术. 这样在用webkit的时候就会导致网页加载不正常,或者网页的某些功能无法使用. 所以现在浏览器都是双核,来保证日常的使用.一般情况下用webkit,当发生问题的时候就是用兼容模式调用IE内核.
大悟县18594091559: 常见的浏览器兼容性问题有哪些 - ?
唐毛越鞠: 浏览器兼容问题一:不同浏览器的标签默认的margin和padding不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大. 碰到频率:100% 解决方案: CSS里加一行 1 *{margin:0;padding:0;} 备注:这个是...
大悟县18594091559: 工作中常见的浏览器兼容问题,怎么解决的 - ?
唐毛越鞠: 所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以...
大悟县18594091559: html常见兼容性问题有哪些? - ?
唐毛越鞠: 1.当加了doctype<img /> 标签的alt属性在ie8或以上不生效,所以推荐使用title属性.2.什么情况下使用id选择器或class选择器 id选择器复用性比较低,优先级比较高,唯一使用,所以如果某个样式 只是给某一个html元素使用,则选择id选择器,如果一个样式可能给多个 html元素使用,则应当使用class选择器.3.a:link 在ie5,6下无效 可以直接使用a{...}4.IETest工具,也有一个兼容性问题,在win7下,打不开ie6.可以下载绿色版的ie6,不用安装直接用的那种.5.在嵌套div中,如果外层div没有设置边框,内层div的margin-top会无效.
大悟县18594091559: 经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 - ?
唐毛越鞠: 使用开源的库 例如JQuery 还有用modernizr判断浏览器根据不同浏览器修改.IE 6 7 则最好选择放弃
大悟县18594091559: 什么浏览器既快兼容性又好?说个常用的操作简单的 - ?
唐毛越鞠: 楼主您好! 现在很多的浏览器其实用的都是微软IE浏览器做过内核,只有少部分才用到独立的内核技术,进行开发. 常见的浏览器如火狐Firefox、谷歌、搜狗、360安全浏览器、腾讯TT、opera、遨游都是不错的浏览器. 很多浏览器用的是沙盘...
大悟县18594091559: 如何全面解决 CSS 在不同浏览器下的兼容问题 - ?
唐毛越鞠: 常见的浏览器兼容性问题与解决方案大致有以下九种形式: 一、不同浏览器的标签默认的外边界和内填充不同 问题表现:不加样式控制下,margin和padding差异较大 解决方案:css里 *{margin:0; padding:0;} 备注:这是最常见也是最易...
大悟县18594091559: 为什么会出现浏览器兼容性问题? - ?
唐毛越鞠: 兼容性(compatibility)是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度.兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之...
大悟县18594091559: 网页设计中如何解决浏览器兼容问题 - ?
唐毛越鞠: 1. 目标不居中; 一般新手都爱出现这个问题,主要原因是对盒子模型不够理解,如果发现你的页面没有居中,基本上有两种情况: a. 如果是在浏览器中没有居中,就是没盒子,就是要用一个大DIV把所有需要居中元素装起来,然后给盒子一个...
大悟县18594091559: CSS浏览器兼容性问题. - ?
唐毛越鞠: CSS浏览器兼容性问题,很复杂的.影响的地方很多.首先,各个浏览器支持的CSS就不同,IE和FF都给标准的CSS添加了自己的CSS标准,而IE6,IE7,IE8各个版本对于CSS的支持就不一样.像楼上说的,”!important”,这是典型的IE6和FF的hack技术,IE7,IE8不能再用了.要想解决,首先就要少用浏览器对css有分歧的属性,如果实在不行,就给每个浏览器设置一个不同的CSS,可以写在不同的css文件里.JavaScript可以分辨出FF,IE,甚至IE的版本.