1

我正在使用 jquery UI 垂直调整 div 的大小(IE 使用 n 句柄)。我正在使用帮助器,因此它仅在用户停止拖动后才调整大小。调整大小完成后,我调用一个函数来设置周围元素的尺寸,以便它们都适合容器。

这在 chrome 和 IE 中都有效,但在 Firefox 中添加了 top 的 css 属性,这会将 div 吹出容器。

我已经尝试在事后删除最高值,这很有效,但这是一种黑客行为,也会导致 div “跳跃”。

这是一个错误吗?是否有使用 jquery css html 等的解决方法?

要了解我的意思,请检查小提琴并调整元素的大小,如果您在 Firefox 中检查它,则会有一个顶级 css 属性,但在 chrome 中没有。

谢谢,卢克

4

1 回答 1

3

在我看来,这是一个错误。

解决方法:如果您在IEtop: 0;的 css 规则中添加 a #resizable,则 chrome 和 firefox 具有相同的行为。另请参阅更新的示例

=== 更新 ===

这是一个Firefox的错误。我从 jQuery UI resizable方法代码一直走到 jQuery (main) 代码的css方法来寻找答案。在我的搜索结束时,我发现firefox为非/静态定位元素返回csstopauto,但0px如果设置了相对位置则返回;在这两种情况下top都没有定义(它们可以设置为auto没有区别 - 这是默认值)。

另请参阅此示例

resizable方法中,这个结果会有所不同(jQuery UI 通过添加一个类来设置 DOM 元素的相对位置)。如果该错误(我已向 mozilla 报告)将得到修复,则您的示例在 Firefox 中的行为应该与 chrome 中的相同。

如果有新的东西我会在这里报告...

=== 更新 ===

现在我有一个解决方法给你:

对于您描述的特殊情况,将可调整大小元素的 css 位置手动设置为static.

添加到您的样式表:

#resizable { position: static; }

另请参阅您更新的示例

于 2012-07-04T18:12:53.023 回答