стандартизировать ширину формы Vaadin в Vaadin 14 Java API

Я заметил, что когда я использую LoginForm, он имеет размер по умолчанию. Я не могу понять, откуда у него такой размер. Я хотел бы стандартизировать размеры всех моих форм, например FormLayout и LoginForm. Я не возражаю против того, чтобы мои FormLayouts соответствовали размеру LoginForm - или - устанавливали LoginForm и FormLayouts на мой собственный предустановленный размер. Проблема в том, что когда я устанавливаю ширину LoginForm в процентах, кажется, что она никогда не соответствует тому же размеру, что и FormLayouts... LoginForm всегда получается меньше на тот же процент.

Есть ли способ установить для моих LoginForms и FormLayouts одинаковую ширину?

1 ответ

В настоящее время не существует способа получить поля из LoginForm с помощью Java API. Для аналогичной проблемы существует проблема с 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). Поэтому вы также можете изменить тему или просто получить ширину оттуда и использовать ее для своих форм.

Другие вопросы по тегам