1:问题产生原因:
(1)市场竞争
(2)标准版本的变化
2:厂商前缀
举例:box-sizing,谷歌旧版本浏览器中使用-webkit-box-sizing:border-box
改版:安装插件
浏览器在处理样式或元素时,遇到不能识别的代码,会直接略过(不会报错)。
原因:市场竞争,且标准没有发布。标准还是草案,浏览器厂商希望先坚持
IE:-ms-
chrome,safari:-webkit-
Opera:-0-
firefox:-moz-
CSS hack
1根据不同的浏览器(主要针对IE),设置不同的样式和元素
1:样式:
(×)旧浏览器:IE中CSS的特殊前缀:
比如*属性,兼容IE5~7
比如_属性,兼容IE5~6
属性\9,兼容IE5~11
属性值\0,兼容IE5~11
属性值\9\0,兼容IE9~10
2:条件判断:两种解决兼容性问题的思路,会影响代码的书写风格
渐进增强 & 优雅降级
渐进增强:先适应大部分的浏览器,然后针对新版本浏览器加入新的样式。
书写代码时,现金量避免书写有兼容行问题的代码,完成之后,再逐步加入新标准中的代码。
优雅降级:线制作完整的功能,然后针对低版本浏览器进行特殊处理。
3:查看css兼容性。
caniuse.com[https://caniuse.com/]