时间:2021-05-08
本文作者:John Howard
编译:胡子大哈
翻译原文:http://huziketang.com/blog/posts/detail?postId=58d8f4d17413fc2e8240855e
英文连接:5 Tricks to Avoid Cross Browser Issues
转载请注明出处,保留原文链接以及作者信息
浏览器兼容性问题总是让人很头疼,这里介绍几个技巧来避免这个问题。
1. CSS3 风格的前缀
如果你正在使用最新的 CSS 代码,比如 box-sizing,或者 background-clip等,确保你使用了合适的供应商前缀。
-moz- -webkit- -o- -ms-2. 使用样式重置
你可以使用normalize.css或者其他从网络上能找到的样式重置都可以。这里我给出一个,来自于 Genesis 框架。
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,a,abbr,acronym,address,big,cite,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,input,menu,nav,output,ruby,section,summary,time,mark,audio,video {border: 0;margin: 0;padding: 0;vertical-align: baseline;}3. 避免 padding 和 width 一起使用
当你给一个包含 width 的元素加 padding,那它实际显示的要比本应显示的大。因为 width 和 padding 会加到一起。比如一个元素 width 是 100px,又给它加了一个 10px 的 padding。那某些浏览器会将该元素显示成 120px。
为了 fix 这个问题,像下面这样做:
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }4. 清理浮动
确保你把浮动都清理掉了,如果不清理掉,可能会出现很奇怪的情况。想要了解更多关于浏览器处理浮动的原理,可以看Chris Coyier 的这篇文章。
可以用下面 CSS 代码清理浮动:
.parent-selector:after { content: ""; display: table; clear: both; }如果你要把你的大部分代码都包起来,有个更简单的方法就是把它添加到你的 wrap 类里面:
.wrap:after { content: ""; display: table; clear: both; }这样你的浮动就被清理掉了。
5. 测试一下
搭建你自己的跨浏览器测试环境,或者用Endtest也可以。
如果你让这 5 个技巧成为你日常开发的习惯,会避免你 95% 的跨浏览器不兼容的问题。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前端是一个苦逼的职业,不仅因为技术更新快,而且要会的东西实在太多了,更让人头疼的是,还要面临各种适配、兼容性问题。为什么会有浏览器兼容性问题?还不是因为浏览器厂
简评:浏览器兼容性问题常常让人头疼,以下是避免出现这些问题的五个技巧。1.前缀CSS3样式如果您正在使用任何类型的现代CSS片段,例如框尺寸(box-sizin
解决浏览器兼容性问题,首先要把设计语言升级到最新的版本,通常最新的CMS都遵循HT-ML5、CSS3等最新的技术标准,很大程度上减少了兼容性问题的产生。另外,在
Chrome浏览器ShockwaveFlash老是崩溃该怎么办?谷歌GoogleChrome浏览器ShockwaveFlash插件存在兼容性问题,尤其是在谷歌C
IE浏览器的兼容性问题给用户们带来了挺大的苦恼,当很多人开心的将浏览器升级到最新的IE11浏览器的时候,却发现又出现了兼容性的问题,当遇到不兼容的网站之后就只能