1

我注意到当我使用 LoginForm 时,它有一个默认大小。我不太清楚它是如何得到这个尺寸的。我想标准化所有表单的大小,例如 FormLayout 和 LoginForm。我不介意让我的 FormLayouts 与 LoginForm 的大小相匹配 - 或者 - 将 LoginForm 和 FormLayouts 设置为我自己的预设大小。问题是,当我将 LoginForm 的宽度设置为百分比时,它似乎永远不会与 FormLayouts 匹配相同的大小......对于相同的百分比,LoginForm 总是会变小。

有没有办法将我的 LoginForms 和 FormLayouts 设置为始终具有相同的宽度?

4

1 回答 1

0

目前,似乎没有办法使用 Java API 从 LoginForm 获取字段。有一个类似问题的GitHub问题。

如问题中所述,您可以执行 JavaScript 来获取相关元素。然后,您可以手动修改其 CSS。要设置 LoginForm 的宽度,您可以使用vaadin-login-form-wrapper.

UI.getCurrent().getPage().executeJavaScript("document.getElementsByTagName('vaadin-login-form-wrapper')[0].style.width = '200px';");

或者,您可以使用原始 CSS 并更改此元素的属性。

在调查了 CSS 之后,您会发现表单的宽度是由 CSS 变量定义的--lumo-size-m。的最大宽度由vaadin-login-form-wraper定义calc(var(--lumo-size-m) * 10)。因此,您也可以更改主题或仅从那里获取宽度并将其用于您的 FormLayouts。

于 2019-09-25T04:53:09.213 回答