border:0
把border的边框设为0像素,虽然在页面上看不到,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。
border:none
把border设为“none”即没有,浏览器解析“none”时将不作出渲染动作,即不会消耗内存值。
主要区别
其实border:0;与border:none;的区别主要是浏览器渲染与不渲染的问题,就相似于display:none;与visibility:hidden;的关系。
兼容性差异
在IE6和IE7中,将border设成0和将border设成none对于input标签和button标签是不一样的。
(1)将border设成0,对于所有的浏览器效果都一样。
(2)将border设成none。在IE6、7中无效,在其它浏览器中有效。
border:none有兼容性问题,针对浏览器IE6、IE7下的标签button、input而言,在win、win7、vista 的XP主题下均会出现兼容性问题。
必须对border的width和style进行全部设置方可消除IE6、7下的border。因为浏览器是先解析自身的默认CSS,再解析开发者书写的CSS,所以当有border-width或border-color设置的时候才会令IE6、去解析border-style:none;目前所遇情况都能解释。
让border:none;实现全兼容,只需要在同一选择符上添加背景属性background即可,或者简单快速的方法直接使用border:0 none;
border:0 none;
兼容性写法,解决border:none在IE6、7下不正确显示的问题。