Firefox 63:滚动内容显示错误

时间:2018-11-05 10:57:24

标签: css firefox

我们使用Eclipse RAP开发了具有一些视图的Web应用程序。在最后一次FF更新到版本63之后,包含树小部件的左视图内容显示不正确。内容超出了视图。内容没有滚动,而是显示在视图外部。水平滚动条不执行任何操作。看起来CSS溢出属性有些混乱。

其他浏览器正确显示内容。

有人知道这个错误吗?

编辑:

如何复制它:

1)创建任何有效的最小Eclipse RAP示例,例如使用EntryPoint。 我们正在使用Eclipse Luna Service Release 1(4.4.1)和RAP target 2.3。 我想任何较新版本的Eclipse或RAP也会复制它。

2)创建一些小部件。该错误出现在org.eclipse.swt.widgets.Label和org.eclipse.swt.widgets.Tree中,也许也存在于其他树中。例如,org.eclipse.swt.widgets.Text很好。

package raptest;
import org.eclipse.rap.rwt.application.AbstractEntryPoint;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

public class BasicEntryPoint extends AbstractEntryPoint {

@Override
protected void createContents(Composite parent) {
    parent.setLayout(new GridLayout());

    Label label = new Label(parent, SWT.BORDER);
    label.setLayoutData(new GridData(200, SWT.DEFAULT));
    label.setText("This is a very looooooooooooooooong text");

    Tree tree = new Tree(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    tree.setLayoutData(new GridData(200, 200));

    TreeItem treeItem;
    String txt = "Very loooooooooooooooong item ";
    for (int i = 0; i < 10; i++) {
        treeItem = new TreeItem (tree, SWT.NONE);
        treeItem.setText (txt + i);
    }

    Text text;

    text = new Text(parent, SWT.BORDER);
    text.setLayoutData(new GridData(200, SWT.DEFAULT));
    text.setText("This is a very looooooooooooooooong text");

    text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    text.setLayoutData(new GridData(200, 200));

    text.setText("This is a very looooooooooooooooong text");
}
}

3)在浏览器中启动RAP应用程序

在Firefox 63中,它看起来像这样(错误):
Widgets display wrong in FF63

在Chromium中看起来像这样(正确): Widgets display correctly e.g. in Chromium (latest version)

也许此问题已在下一个Firefox版本中解决。

最佳,茱莉亚

2 个答案:

答案 0 :(得分:2)

较旧版本的RAP使用-moz-scrollbars-horizontal-moz-scrollbars-verticalmoz-scrollbars现在已弃用。从FF 63开始,您必须在about:config中启用支持(请参见https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#Deprecated

答案 1 :(得分:0)

错误的溢出行为的原因如下:

我使用浏览器的检查工具查看了Eclipse为问题中给出的示例生成的html元素。

对于标签窗口小部件,它生成了两个div元素:一个用于边框,另一个在文本内。

在铬中,它们都具有css溢出隐藏属性。
在firefox中,只有内部div具有此属性,而在外部div中则缺少此属性。如果我将overflow隐藏属性添加到外部div元素,则Label将正确显示。

我仍然不清楚为什么不同浏览器生成的元素不同。我开始相信,问题出在我们使用的相当老的Eclipse和RAP版本中,它们在某种程度上不再与Firefox兼容。

最佳,茱莉亚

编辑:

使用Eclipse Photon和RAP 3.5,一切都可以正确显示。