Я столкнулся с проблемой, пытаясь установить горизонтальный макет для LoginForm Vaadin. Единственное решение, для которого у меня есть идея, - это переопределить класс getLoginHTML(), чтобы он возвращал правильный код. Я добавил style="float:left", который работал у меня в обычном html.
Измененная часть кода выглядит так:
(...) + "<div class='v-app v-app-loginpage' style=\"background:transparent;\">"
+ "<iframe name='logintarget' style='width:0;height:0;"
+ "border:0;margin:0;padding:0'></iframe>"
+ "<form id='loginf' target='logintarget' onkeypress=\"submitOnEnter(event)\" method=\"post\">"
+ "<div style=\"float: left;\">"
+ getUsernameCaption()
+ "</div><div style=\"float: left;\">"
+ "<input class='v-textfield' style=\"float: left;\" type='text' name='username'></div>"
+ "<div style=\"float: left;\">"
+ getPasswordCaption()
+ "</div>"
+ "<div style=\"float: left;\"><input class='v-textfield' style='display:inline; float:left;' type='password' name='password'></div>"
+ (...)
И это ведет себя странно - UserField и PasswordLabel находятся в одной строке - все остальные в отдельных строках. Так это выглядит так:
Имя пользователяЯрлык
UserField PasswordLabel
поле пароля
Кнопка
И, как я уже сказал, я бы хотел, чтобы он был альгинирован горизонтально... есть идеи?