与http://mkoryak.github.io/floatThead/
一起使用时,我遇到的问题首先发生在我身上在某些页面上,我有一些列的表格。客户端选择水平滚动这些表。因此,这些表包含在具有overflow-x: auto;
在桌面浏览器和Safari / iOS上运行良好。
在某些时候使用floatThead时,它会请求outerWidth()
表的宽度来设置浮动时表头的宽度。在浮动表头的iPad上,与包装元素一样宽,其余的都被裁剪掉了。我调试了容器和表的outerWidth()
值。
在桌面浏览器上,我获得了类似于容器容量为1200px,容器内容量更大的容量为1900px。
但是在Safari iOS中我获得了935px的 容器和表格。容器元素不必设置为滚动较大的内容以产生此错误。我使用Twitter Bootstrap 2.3.2。如果有一个带有容器流体的页面,其宽度将调整为窗口宽度。如果内部有一个宽度较大的桌子,则可以通过overflow: visible;
看到。但是 - 在iPad上 - 当触发floatThead时,浮动的表头宽度被限制为流体容器的宽度(减去其填充)。
因此,我认为其原因是对较小容器内较大元素宽度的不同计算。
如果我理解正确,jQuery的outherWidth()
使用css()
来检索元素的宽度,css()
使用getComputedStyle
或currentStyle
我假设浏览器返回"错误"使用值,并且所有jQuery / floatThead都可以使用。
我想知道我的假设是否正确,或者是否可能有其他因素引发错误"在Safari iOS中计算宽度。
答案 0 :(得分:2)
道歉,在提问之前,我没有再自己检查。制作一个有问题的页面的静态副本并连续删除html,javascript和css代码后,我能够找到原因。
Twitter Bootstrap 2.3.2为表元素设置max-width: 100&;
。在上述情况下(表位于允许抄写其内容的较小容器内),表格宽度不需要以任何方式限制。
它不会在桌面浏览器中造成任何问题。即使在Safari中,表本身的宽度也很好并且滚动工作。只是jQuery的outerWidth()
收到了一个错误的值,导致浮动的thead被裁剪到外部容器的宽度。