border 边框属性在浏览器中的渲染方式

2020-05-15 08:04:57易采站长站整理

通过firebug中“计算出的样式”功能我们可以看到最终的边框样式中border-width为0,border-color为#000000,border-style为none。现在我们再看一下IE浏览器中的表现是怎么样的。

在IE浏览器中我们利用的是IE Developer Toolbar来查看浏览器的最终渲染结果,很明显的可以发现IE浏览器对border:0;的解析时产生了一些偏差,仅仅只是渲染了border- width的属性,而对于input标签中的border-style属性继续保持着原有的属性值outset,对于button标签中的border- style属性增加了outset属性值;border-color还是为定义。这时我们也能发现IE浏览器中input标签和button标签的边框已经被定义为相同的属性。

 

此时FF浏览器和IE浏览器之间存在的差异是border-style和border-color两个属性。

border:none;的渲染结果

input {border:none;}
button {border:none;}

border:none;的边框定义方式,从广义上理解,其实只是定义了border-style的属性值,对于这点我们也可以从firebug中的样式可以看到边框的样式定义已经由原来的border:0 none;改成border:medium none;了,改变的内容是border-width的样式定义。

但诡异的一点就是我们这里所看到的medium属性值却在firebug最终“计算出的样式”里看不到。

 

更诡异的内容也要出来了,赶紧打开IE浏览器看看是不是发现在页面中按钮的表现效果也不一样了?

两个浏览器的中按钮在定义了边框为border:none;时居然会在浏览器中的表现方式都不一样了,这个是为什么呢?

 

看了IE Developer Toolbar中的结果后,总算明白了,原来这个时候IE浏览器仅仅只是渲染了border-style为none,而border-width依然保持原有的属性值,所以在才会与FF浏览器产生差异。

border:0 none;的渲染结果

最后剩下的是border:0 none;的边框样式定义方式,对于这个方式,经过上面的两个对比,相信大家能明白这个属性所定义的内容包含了什么,把border-width和 border-style同时定义为0和none值,让边框“无处藏身”,就算有颜色值也没用了。对于这个的渲染结果就不再像上面一一罗列了,感兴趣的同学可以试试看。