java - 生成的 Div 造成严重破坏

标签 java css vaadin

我会尽力描述这个问题。

我正在 Vaadin(类似 GWT 的框架)中开发一个 Web 应用程序,我在其中使用模态窗口来显示表格和其他信息。

模态窗口的大小各不相同,但出于显而易见的原因,我想对所有这些窗口使用相同的 CSS 类。因此,我在 CSS 之外指定了特定于大小的参数,而不是在创建模式窗口时在 java 代码中指定。例如:

public class InventoryAssignSubscription extends Window {

   Panel mainPanel = Cf.panel(I18N.get("inventory.assignsubscription.single.header"));

   public void init(Object customer)    {

        setResizable(false);

        setModal(true);
        setWidth("730px");
        center();

        mainPanel.addStyleName("m2m-modalwindow-mainpanel");

但是,我发现了一个问题。

当我创建一个包含窗口中所有内容的 Panel 组件时,它的宽度将填充窗口的内容宽度,但是当我查看通过 Firebug 生成的标记时,我看到生成了另一个组件,Panel 内的 VerticalLayout 具有另一个宽度比面板。我不知道它是怎么到那里的。我遇到的问题是 VerticalLayout 太大,导致面板底部出现水平滚动。这是它在 Firebug 中的样子:

enter image description here

我发现解决此问题的唯一方法是使用 m2m-modalwindow-mainpanel CSS 类名称设置面板内所有 VerticalLayout 的最大宽度:

.v-panel-content-m2m-modalwindow-mainpanel .v-verticallayout {
    max-width: 1000px;
}

但是,这仅适用于一个窗口,即内容以 1000 像素宽度显示的窗口。更 slim 的 Windows 永远不会让他们的 VerticalLayout 受到这个 CSS 类的影响,因为他们的宽度应该远低于 1000px.... =(

有没有人知道我该如何解决这个问题……?也许不知何故,当我创建面板时,我可以以某种方式告诉它它“生成”的组件(div)应该具有最大宽度..?

如果我的问题描述得太生动,或者您需要更多信息来帮助我解决问题,请随时提出!

谢谢!

编辑:我为面板填充添加了 CSS,并从 Firebug 中添加了一张显示问题的图像。不幸的是,面板底部有一个滚动条没有显示在图像中。

CSS

.v-panel-content-m2m-modalwindow-mainpanel {
    padding: 15px;
}

图片: enter image description here

最佳答案

默认情况下,Vaadin 中的每个面板内部都有垂直布局。您将面板的宽度设置为 730 而布局只有 704 像素宽这一事实表明您的面板中有边距。尝试使用 Firebug 中的布局选项卡查看造成差异的原因。

Vaadin 开发人员付出了很多努力来调整大小,应该没有任何解释。

将您的问题发布到 Vaadin's forum 是个好主意.

关于java - 生成的 Div 造成严重破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556381/

相关文章:

browser - SWT 浏览器组件阻止 SWT UI 线程

java - 如果文件不存在则写入

jquery - 基于 json 值突出显示 Jquery Leaflet 弹出窗口中的文本 - 使用 CSS?

javascript - 使div尽可能高而不重叠

java - 浏览器没有垂直滚动

servlets - 当 Web 应用程序在 Maven 驱动的 Vaadin 14 Web 应用程序中启动时,将我的 Java 代码加载的数据或配置文件放在哪里

java - Gradle 自定义构建

java - "malloc(): memory corruption"

java - 如何在 Angular 7 中使用字符串添加动态查询参数?

jquery 使用下一个/上一个按钮循环遍历多个 div