Я занимаюсь разработкой приложения с использованием Apache Click, предназначенного для мобильных браузеров, поэтому я ожидаю, что его будут использовать в основном в узких дисплеях (240 пикселей вверх). В настоящее время я пытаюсь использовать org.apache.click.control.Form
с парой org.apache.click.control.Field
с, включая TextField
с и Select
с.
Однако при попытке ограничить ширину всей страницы, скажем, до 240 пикселей, форма по-прежнему переполняется по горизонтали, что вынуждает пользователя перемещаться вправо и делает дизайн «безобразным». Возможной альтернативой будет размещение надписей Field
поверх соответствующих полей ввода, однако я не нашел способа сделать это, поскольку Click отображает каждый Field
как HTML <tr class="field">
с двумя <td>
, один содержит <label>
, а другой - <input>
(для класса TextField
) или <select>
(для класса Select
).
Некоторые идеи, которые я собираюсь изучить:
- Я допускаю, что может быть некоторая «магия CSS», о которой я не знаю, и которая позволяет браузеру «рендерить все
<td>
s друг на друга» или что-то в этом роде.
- Другая идея, которая у меня есть (которая включает в себя некоторую дополнительную работу), состоит в том, чтобы создать подклассы этих классов, явно разместив метку и поля друг над другом, поскольку они отображаются в формате HTML. Некоторые мобильные браузеры (например, на базе Windows Mobile, которые я тестировал) имеют опцию «настроить на один столбец», но это требует явного вмешательства пользователя. В других браузерах, таких как Opera Mobile, похоже, нет подобной опции.
- Явно ставим отдельную метку и
Field
с пустой строковой меткой. Это кажется «глупым» решением, но также и относительно простым.
Я надеюсь, что может быть относительно простой способ сделать это, о котором я не упомянул или не подумал. Поэтому я ищу предложения о том, как настроить Click, или использовать CSS, или что-то еще, чтобы получить HTML, который отображает два элемента Field (метка и фактическое поле ввода) друг над другом вместо «default» "Нажмите рядом, чтобы на узких экранах появился какой-нибудь драгоценный экран.
Заранее спасибо.