当您申请border-collapse: collapse;
表格以将其单元格的边框“融合”在一起时,它开始在确定 Javascript 中表格单元格的宽度时出现问题。例如,看这个页面:
http
://game-point.net/misc/browserTests/scratchpads/jsTableWidth/
有两张表格,一张有折叠边框,一张没有。如果单击没有折叠边框的行中的一行,jQuery 的 innerWidth 和 outerWidth 函数会报告我期望看到的内容(内容宽度和内容加上边框宽度;没有填充)。
但是,如果您单击表格中具有折叠边框的行,则会出现与浏览器不一致的行为,尤其是在clientWidth
属性上。在 FirefoxclientWidth
中,与width()
. 在 IE 和 Chrome 中高 1 个像素,在 Opera 中与 相同width()
,但 Operawidth()
太小了。事实上,在width()
我测试过的所有浏览器中,除了 Firefox 之外,它都太小了一个像素。所以如果你截屏并且内容实际上是 80px,width()
就是 79px(jQuery 从计算的 CSS 值中得到它)。为什么是这样?
我想获得实际内容的宽度。我似乎无法使用width()
,因为只有 Firefox 才能使用折叠边框。我不能使用outerWidth()
,因为它包括边框(或者可能只是一个边框,因为它只比实际内容宽度大 1px)。我不能使用clientWidth
,因为它的值在浏览器之间不一致。我应该怎么做,为什么width()
在大多数浏览器中边框折叠时 1px 太短?