ExtJS:在Firefox中删除不必要的表单项滚动条

时间:2011-01-14 04:08:04

标签: css extjs overflow scrollbars

我正在寻求关于某些表单项上出现的不必要滚动条的一些建议。该问题的屏幕截图如下所示。请注意,这是最不需要的滚动条。

bad_scrollbars http://img21.imageshack.us/img21/9307/scrollfu.png

罪魁祸首似乎是以下css,在基于gecko的浏览器中添加overflow: auto;以在窗口中形成项目(问题出现在Firefox上):

.ext-gecko .x-window-body .x-form-item {
    outline: medium none;
    overflow: auto;
}

删除这种风格可以解决问题,但我对可能的副作用持谨慎态度 - 虽然我还没有注意到任何副作用,但这种风格显然是有原因的。

知道更多关于Ext样式的人知道是否重写此css以删除overflow: auto;样式会导致其他问题吗?

顺便说一句,这只是一个问题(到目前为止)与某个组件 - Ext.ux.form.MultiSelect组件的自定义扩展 - 即使其他组件使用更多的垂直空间。有谁知道可能的原因吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

overflow:auto告诉浏览器如果元素的内容大于元素客户区减去任何填充,则向元素添加滚动条。摆脱CSS中的滚动条就是这样。无论如何,它都会使滚动条消失。

您的工作的副作用是,如果客户端之外有内容,则使用将无法看到它。此外,除非您在自定义类中应用解决方法,否则这不仅会发生在此表单中,而且会发生在应用程序中的每个表单中。

正确的解决方法是弄清楚为什么您的内容区域大于表单的客户区域。 Firebug对此非常有帮助,因为您可以检查DOM并查看容器的大小以及所有子项的大小。

我怀疑你的清晰选择控件(这是一个自定义控件吗?)没有正确调整自己的大小(即在你的表单布局中你告诉它是x像素高但它实际上是自己调整x + 1(记住边距)表单布局正在完成所有工作,以决定包装区域(带滚动条的区域)的大小,控件必须适合该区域。