On this page
manage_search
Сетчатый макет
Сетчатый макет позволяет располагать поля в CSS-сетке внутри группы, обеспечивая многоколоночный дизайн форм.
Функция Сетчатый макет позволяет размещать вопросы в многоколоночной сетке внутри группы с использованием тега внешнего вида gridformat<>. Это полезно для форм с плотным вводом данных, где несколько связанных полей должны располагаться рядом, а не вертикально.
Принцип работы
Сетчатый макет применяется на двух уровнях:
- Группа — установите
appearance: field-list grid(weight=N)для определения количества столбцов сетки - Каждое поле внутри группы — установите
appearance: gridformat<row=R col=C colspan=S/>для позиционирования поля
Сетка использует 12-колоночную систему в стиле Bootstrap. weight=N определяет количество логических столбцов; каждый столбец занимает 12/N столбцов Bootstrap.
Внешний вид на уровне группы
| Внешний вид | Описание |
|---|---|
field-list grid(weight=2) | 2-колоночная сетка (каждый столбец = 6 столбцов Bootstrap) |
field-list grid(weight=3) | 3-колоночная сетка (каждый столбец = 4 столбца Bootstrap) |
field-list grid(weight=4) | 4-колоночная сетка (каждый столбец = 3 столбца Bootstrap) |
field-list grid(weight=6) | 6-колоночная сетка (каждый столбец = 2 столбца Bootstrap) |
Синтаксис gridformat<> на уровне поля
gridformat<row=R col=C colspan=S/>
gridformat<row=R col=C colspan=S backgroundcolor=COLOR/>
| Атрибут | Описание |
|---|---|
row | Номер строки (начиная с 1) |
col | Номер столбца (начиная с 1, в пределах сетки, определённой weight) |
colspan | Количество столбцов, которые занимает поле (по умолчанию 1) |
backgroundcolor | Необязательный CSS-цвет фона поля (например, #f0f0f0, lightblue) |
Пример: 2-колоночный раздел опроса домохозяйства
| type | name | label | appearance |
|---|---|---|---|
| begin_group | demographics | Демография | field-list grid(weight=2) |
| text | first_name | Имя | gridformat<row=1 col=1/> |
| text | last_name | Фамилия | gridformat<row=1 col=2/> |
| integer | age | Возраст | gridformat<row=2 col=1/> |
| select_one gender | gender | Пол | gridformat<row=2 col=2/> |
| text | address | Полный адрес | gridformat<row=3 col=1 colspan=2/> |
| end_group |
Отображается как:
[ Имя ] [ Фамилия ]
[ Возраст ] [ Пол ]
[ Полный адрес (охватывает оба столбца) ]
Пример: 3-колоночный ввод данных участка
| type | name | label | appearance |
|---|---|---|---|
| begin_group | plot_data | Данные участка | field-list grid(weight=3) |
| text | plot_id | ID участка | gridformat<row=1 col=1/> |
| decimal | area_ha | Площадь (га) | gridformat<row=1 col=2/> |
| select_one crop_type | crop | Тип культуры | gridformat<row=1 col=3/> |
| decimal | yield | Урожайность (кг) | gridformat<row=2 col=1/> |
| decimal | revenue | Доход | gridformat<row=2 col=2/> |
| text | notes | Заметки | gridformat<row=2 col=3/> |
| end_group |
Цвета фона
Используйте backgroundcolor для визуального разграничения разделов:
| type | name | label | appearance |
|---|---|---|---|
| note | section_a | Раздел А | gridformat<row=1 col=1 colspan=2 backgroundcolor=#e8f4f8/> |
Лучшие практики
- Используйте сетчатый макет только для экранов с интенсивным вводом данных, где расположение полей рядом действительно сокращает прокрутку.
- Делайте поля с
colspan=1короткими (ID, коды, краткие варианты выбора) — широкие метки плохо смотрятся в узких ячейках сетки. - Используйте
colspan=Nдля полей с длинными метками или многострочным текстом. - Тестируйте на наименьшем размере экрана, который могут использовать перечислители — 4-колоночная сетка тесна на телефоне.
- Сетчатый макет лучше всего подходит для веб-форм и планшетов; на мобильных телефонах обычно комфортна максимум 2-колоночная сетка.
Ограничения
gridformat<>работает только внутри группы с внешним видомgrid(weight=N)— на верхнем уровне эффекта нет.- Сетчатый макет является расширением веб-формы rtSurvey и может некорректно отображаться в других ODK-совместимых клиентах.
- Позиционирование строк и столбцов не проверяется при построении формы — перекрывающиеся поля будут отображаться оба, но могут выглядеть некорректно.
Была ли эта страница полезной?