代码之家  ›  专栏  ›  技术社区  ›  jayarjo

奇怪的桌子-布局:固定;WebKit上的“bug”

  •  2
  • jayarjo  · 技术社区  · 16 年前

    我正在用可排序的列、行等为自己的需要构建网格组件。现有的网格组件要么不适合我的需要,要么太重。我刚开始使用可调整大小的列时,realy意外地 网络工具包 表-布局:固定; Safari/Chrome让我头疼。

    TSort Embriyo

    表-布局:固定 ,因为它更符合动态网格的概念。为了 表的宽度至关重要,此外,我的所有单元格(td/th)都有宽度 溢出:隐藏 , 和 文本-溢出:省略号 以更好地模拟网格外观。

    现在 “臭虫” -两个表的构造方式相同,单元格和表的宽度由相同的函数计算和设置。这个“bug”是无法解释的,因为我使用的方法对顶部表的效果和预期的一样,但对底部表的效果却不好。基本上它的行为就像我没有分配宽度。但是你可以在Web检查器中看到它肯定有宽度。。。所以。。。呵呵?

    我尝试了所有的方法,我交换了函数,我移除了上表,我试着用构建上表的方式构建下表。但它一直在失败。但是,当我直接将生成的表代码复制/粘贴到页面中时,它就开始工作了。所以我猜它有一些表的动力学性质。但是为什么它能在最上面的桌子上工作呢?

    我可以通过创建具有预先指定宽度的表元素来消除这个“bug”。但这并不能解释这种奇怪的行为,不是吗?

    1 回复  |  直到 12 年前
        1
  •  2
  •   sje397    16 年前

    我找到了一个解决办法-仍然不确定到底发生了什么。

    移动:

    self._addColElements(self.bd);
    

    在你的内心深处 construct populate

    你可能已经注意到了 previous test 我添加了一个“数据”选项。我发现了那个电话 填充 从 _init 有了这些数据,一切正常-除非我使用 setTimeout 延迟调用-就像ajaxget那样-然后它太扭曲了表。所以它与时间有关——也许WebKit正在做一些有趣的事情来优化渲染。

    编辑

    好吧,我有一个理论;)

    table-layout:fixed 项目仅在表格有宽度时适用。

    如果创建了表,并对其应用了css(即,因为控件已通过ajax或 ),如果没有宽度,则固定布局没有效果。随后添加项目 甚至设置宽度