虽然现在DIV+CSS布局已经很流行并且很成熟了,但仍有一些顽固之人坚持用Table布局,并且嵌套N层表格,他们的理由是追求稳定!进入正题,说一下我最近在一个要用Table布局的项目中遇到的问题:当给页面最顶部的table加了样式以下样式后,该Table的border-top在Firefox(我用的是Firefox3.5)中显示的效果并不是预期的效果,而是比设定的值少几个像素,而在IE上没有问题。如果将border-collapse:collapse;去掉则会(在Firefox与IE中)正常显示。
border-collapse属性设置表格的边框是否被合并为一个单一的边框,还是象在标准的 HTML 中那样分开显示。在一般情况下使用border-collapse并不会出现什么问题,我只在以上的情况中遇到这个问题。为了解决该问题,只有想办法增加在Firefox中距离顶部的距离或是增加上边框的宽度,但并不知道应该增加多少个像素。经过反复试验,发现应该增加的高度(m)与边框高度(b)的关系为:m = (b%2==0) ? b/2 : (b+1)/2。例如上面的边框为5px,则应该增加上边距为3px。
因此为了解决上边距在IE6,IE7, Firefox 3.5中的一致性,样式修改如下:
但是这个方法在IE8上去无法起作用,因为IE8与Firefox识别的是同样的值,即margin:3px auto auto auto,因此在IE8上就要出现边距。到现在还没有找到解决方法。
完整示例如下: