Open Hibop opened 6 years ago
在做web前端开发时, 浏览器兼容性的问题没有少碰到过: 对IE浏览器来说,IE7是个跨度,因为之前的版本更新甚慢,bug甚多。从IE8开始,IE浏览器渐渐遵循标准,到IE9后由于大家都一致认为标准很重要,可以说在兼容性上比较好了,但是在中国来说,由于xp的占有率问题,使用IE7以下的用户仍然很多,所以我们不得不考虑低版本浏览器的兼容。
使用meta标签来调节浏览器的渲染方式,告诉浏览器用哪种内核渲染,360双核浏览器就是在ie和chrome之间来回切换,现在使用meta标签来强制使用最新的内核渲染页面:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
CSS3前缀
-webkit- webkit渲染引擎 chrome/safari -moz gecko引擎 firefox -ms- trident渲染引擎 IE -o- opeck渲染引擎 opera
不支持IE8的属性
用css hack
IE6: _ IE7/7: * IE7/Firefox: !important IE7: *+ IE6/7/8: \9 IE8: \0
使用PIE.htc让IE6/7/8支持CSS3部分属性,像CSS3的border-radius,box-shadow,css backgrounds(-pie-background),Gradients,RGBA属性
.border-radius { border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; background: #abcdef; behavior: url(css/PIE.htc); }
:IE浮动margin产生的双倍距离,通常使用float:left来实现,浏览器存在兼容性问题,导致图片与 后面的内容存在margin不一致的问题,解决方法就是给图片添加diaplay:inline即可.
ie8不支持nth-child,但支持first-child和last-child,可以通过转化写法来处理问题,span:nth-child(2)可以转换为span:first-child+span,可以使ie8显示该内容,last-child可以自定义一个class类兼容ie8写法
IE8下不支持HTML5属性placeholder,解决问题的js插件挺多的,常用的使用jquery.JPlaceholder.js插件处理问题
识别HTML5元素,IE中可能无法识别nav/footer,使用html5 div
火狐下表单阻止表单默认提交事件:在form中添加 action=”javascript:”,秒杀上述所有默认行为;
始终为按钮button添加type属性,IE下的默认类型是button,其他浏览器下的默认类型是submit;
IE浏览器下由于参数过长导致通过GET请求下载文件方法报错,解决改为POST请求;
IE浏览器下iframe弹窗中输入框光标丢失(无法输入)问题,解决清一下frame;
IE下删除所有不必要的console语句,IE下当遇到console时不识别之后报错,代码不会执行,或者全局自定义一个window.console方法
兼容IE8 new Date()返回NaN问题,解决自定义方法
function parseISO8601(dateStringInRange) { var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/, date = new Date(NaN), month, parts = isoExp.exec(dateStringInRange); if(parts) { month = +parts[2]; date.setFullYear(parts[1], month - 1, parts[3]); if(month != date.getMonth() + 1) { date.setTime(NaN); } } return date; }
【分享】浏览器兼容性问题综述 -- 正确的认识浏览器兼容性问题
【分享】你的元素居中对齐了吗? --- 关于 'text-align:center' 的问题
【分享】<a>标签的伪类书写顺序问题
【分享】IE6 中 A 标签 hover 伪类特殊性过高的问题
【分享】深入挖掘document.getElementsByTagName()方法的返回值
【分享】警惕你的 Date 对象
【分享】重新认识IE盒模型bug
【分享】你知道吗?--- 表格的盒子模型问题
【分享】CSS Hack的基本原理、常用CSS hack及使用原则
【分享】如何正确的获取scrollTop/scrollLeft的值
【分享】Firefox 中 TABLE 元素百分比宽度属性的问题
【分享】小心,IE中 width/height的设定值可能被其内容撑大
【分享】小心IE 下document.getElementById()的陷阱
【分享】Firefox中table元素的绝对定位子元素包含块判定错误的bug
【分享】小心 IE 中对 IMG 元素 alt 属性的误用
【分享】慎用 INPUT 元素的size属性控制其宽度
【分享】Firefox中神奇的JS引擎逻辑判断代码优化
【分享】警惕缺失单位的CSS长度值
【分享】你肯定没注意过,SPAN元素的宽度高度在IE下竟然有用!!
【分享】当 A 标签缺少 href 属性, :hover还有效么?
【分享】低版本IE对某些CSS选择器的支持缺陷
【分享】IE中,单元格的colspan属性可能影响TABLE元素的自动布局
【分享】奇怪的document.all,浏览器对document.all的支持差异
【分享】非IE浏览器对marquee的支持
【分享】深入挖掘 offsetParant 元素的判定
【分享】你必须知道--IE中的hasLayout
【分享+求救】disabled 能不能使链接失效
【分享】Firefox中 TEXTAREA 元素的 rows 属性很奇怪
【分享】window.onerror,屏蔽JS error的利器?
【分享】零高度的浮动元素是否不影响其他元素定位?
【分享】有关JS中数据类型判断的兼容性问题之:typeof
【分享】浮动元素上 clear 特性的兼容性问题
【分享】FONT 标签字体颜色对文本装饰('text-decoration')的影响
【分享】页面与页面中引入的外部 CSS 文件编码不一致引起的兼容性问题
【分享】IE 中触发 hasLayout 的空 DIV 高度竟然不是 0
【分享】行内元素后的浮动元素的定位在各浏览器中有差异
【分享】@charset使用注意事项
【分享】z-index 默认值引起的兼容性问题
【分享】文件选择控件 input[type=file]的外观可能会引起兼容性问题
【分享】被透明元素遮挡的元素还可以被点击到吗?
【分享】align 在各浏览器中的实现差异及引起的问题
【分享】Table元素的 align='center' 会受 margin 值的影响吗?
【分享】警惕带有中文字符的JS变量
【分享】IE 中一个对象的 native 方法是跟该对象绑定的
兼容性问题太多太让人费心,知道它们可以让我们有效的绕过这些陷阱,并让我们对标准的理解更加深入,有关注W3C CSS2.1标准的可以看这里:说说标准系列目录
不断更新中……
常用hack
使用meta标签来调节浏览器的渲染方式,告诉浏览器用哪种内核渲染,360双核浏览器就是在ie和chrome之间来回切换,现在使用meta标签来强制使用最新的内核渲染页面:
CSS3前缀
不支持IE8的属性
用css hack
使用PIE.htc让IE6/7/8支持CSS3部分属性,像CSS3的border-radius,box-shadow,css backgrounds(-pie-background),Gradients,RGBA属性
:IE浮动margin产生的双倍距离,通常使用float:left来实现,浏览器存在兼容性问题,导致图片与 后面的内容存在margin不一致的问题,解决方法就是给图片添加diaplay:inline即可.
ie8不支持nth-child,但支持first-child和last-child,可以通过转化写法来处理问题,span:nth-child(2)可以转换为span:first-child+span,可以使ie8显示该内容,last-child可以自定义一个class类兼容ie8写法
IE8下不支持HTML5属性placeholder,解决问题的js插件挺多的,常用的使用jquery.JPlaceholder.js插件处理问题
识别HTML5元素,IE中可能无法识别nav/footer,使用html5 div
火狐下表单阻止表单默认提交事件:在form中添加 action=”javascript:”,秒杀上述所有默认行为;
始终为按钮button添加type属性,IE下的默认类型是button,其他浏览器下的默认类型是submit;
IE浏览器下由于参数过长导致通过GET请求下载文件方法报错,解决改为POST请求;
IE浏览器下iframe弹窗中输入框光标丢失(无法输入)问题,解决清一下frame;
IE下删除所有不必要的console语句,IE下当遇到console时不识别之后报错,代码不会执行,或者全局自定义一个window.console方法
兼容IE8 new Date()返回NaN问题,解决自定义方法
【兼容性方案外链】
【分享】浏览器兼容性问题综述 -- 正确的认识浏览器兼容性问题
【分享】你的元素居中对齐了吗? --- 关于 'text-align:center' 的问题
【分享】<a>标签的伪类书写顺序问题
【分享】IE6 中 A 标签 hover 伪类特殊性过高的问题
【分享】深入挖掘document.getElementsByTagName()方法的返回值
【分享】警惕你的 Date 对象
【分享】重新认识IE盒模型bug
【分享】你知道吗?--- 表格的盒子模型问题
【分享】CSS Hack的基本原理、常用CSS hack及使用原则
【分享】如何正确的获取scrollTop/scrollLeft的值
【分享】Firefox 中 TABLE 元素百分比宽度属性的问题
【分享】小心,IE中 width/height的设定值可能被其内容撑大
【分享】小心IE 下document.getElementById()的陷阱
【分享】Firefox中table元素的绝对定位子元素包含块判定错误的bug
【分享】小心 IE 中对 IMG 元素 alt 属性的误用
【分享】慎用 INPUT 元素的size属性控制其宽度
【分享】Firefox中神奇的JS引擎逻辑判断代码优化
【分享】警惕缺失单位的CSS长度值
【分享】你肯定没注意过,SPAN元素的宽度高度在IE下竟然有用!!
【分享】当 A 标签缺少 href 属性, :hover还有效么?
【分享】低版本IE对某些CSS选择器的支持缺陷
【分享】IE中,单元格的colspan属性可能影响TABLE元素的自动布局
【分享】奇怪的document.all,浏览器对document.all的支持差异
【分享】非IE浏览器对marquee的支持
【分享】深入挖掘 offsetParant 元素的判定
【分享】你必须知道--IE中的hasLayout
【分享+求救】disabled 能不能使链接失效
【分享】Firefox中 TEXTAREA 元素的 rows 属性很奇怪
【分享】window.onerror,屏蔽JS error的利器?
【分享】零高度的浮动元素是否不影响其他元素定位?
【分享】有关JS中数据类型判断的兼容性问题之:typeof
【分享】浮动元素上 clear 特性的兼容性问题
【分享】FONT 标签字体颜色对文本装饰('text-decoration')的影响
【分享】页面与页面中引入的外部 CSS 文件编码不一致引起的兼容性问题
【分享】IE 中触发 hasLayout 的空 DIV 高度竟然不是 0
【分享】行内元素后的浮动元素的定位在各浏览器中有差异
【分享】@charset使用注意事项
【分享】z-index 默认值引起的兼容性问题
【分享】文件选择控件 input[type=file]的外观可能会引起兼容性问题
【分享】被透明元素遮挡的元素还可以被点击到吗?
【分享】align 在各浏览器中的实现差异及引起的问题
【分享】Table元素的 align='center' 会受 margin 值的影响吗?
【分享】警惕带有中文字符的JS变量
【分享】IE 中一个对象的 native 方法是跟该对象绑定的
兼容性问题太多太让人费心,知道它们可以让我们有效的绕过这些陷阱,并让我们对标准的理解更加深入,有关注W3C CSS2.1标准的可以看这里:说说标准系列目录
不断更新中……