стандартизировать ширину формы 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)
. Поэтому вы также можете изменить тему или просто получить ширину оттуда и использовать ее для своих форм.