Drupal 6 Forms форматирование - PullRequest
1 голос
/ 11 ноября 2009

Я пытаюсь создать форму в drupal 6, в которой несколько элементов находятся на одной строке. Точнее говоря, я хочу правильно выровненную форму с текстовым полем, выпадающим списком и кнопкой на одной строке.

Я знаю, как создавать предметы, но друпал склонен ставить их всех на отдельные линии. Как мне поставить его в одну строку?

Спасибо

Ответы [ 4 ]

4 голосов
/ 11 ноября 2009

Вам нужно будет использовать CSS для их размещения. Каждый из них должен быть в своем собственном div, так что это не должно быть слишком сложно.

P.S. Жесткое кодирование чего-либо в одной строке в вашей разметке не очень хорошая идея. Вы всегда должны делать макет и позиционирование в своем CSS и оставлять разметку только для вывода элементов на страницу.

1 голос
/ 23 июня 2010

Хотя я согласен с тем, что часто CSS - это верный способ оформления формы, иногда нужны более сильные методы. Я написал статью о тематических сложных формах с табличной информацией , как список людей с полями для их имен и SSN, напечатанными в одну строку.

1 голос
/ 13 ноября 2009

Конечно, я согласен с предыдущим ответом: CSS - это путь! . Реальный вопрос, однако: где вы должны поместить биты CSS?

Я бы настоятельно рекомендовал поместить его в отдельный файл .css, поскольку это значительно облегчит жизнь другим людям, участвующим в проекте, и сохранит переносимый код для другой темы, когда / если наступит время для рестайлинга придет. Это довольно легко сделать, поскольку каждый элемент from генерируется с собственной упаковкой div . Функция, которую вам нужно использовать, чтобы сказать drupal, что нужно использовать данный файл .css (если вы не добавляете свои стили к существующему): drupal_add_css () .

Тем не менее, если вы все еще хотите / нуждаетесь / должны настроить поведение, которое вы упомянули в коде, генерирующем форму, я бы предложил вам использовать свойства # prefix и # суффикс массива $form. Они являются общими для всех элементов формы и позволяют вводить HTML-код непосредственно в визуализированную форму (префикс перед данным элементом, суффикс после него, конечно). Таким образом, вы можете поместить туда, где вам нужны оба html-элемента, такие как <div>, <span> и CSS, через тег <style type="text/css">.

Хочу подчеркнуть, что первое решение (внешний CSS-файл) намного лучше.

Надеюсь, это поможет!

0 голосов
/ 13 ноября 2009

API Drupal Forms обычно выводит каждый элемент, используя элемент div-обертки, установленный с именем класса 'form-item'.

например.

<div class="form-item">

  <label> ... </label>
  <input> ... </input>
  <div class="description"> ...</div>

</div>

Чтобы три элемента сидели рядом друг с другом, вам нужно установить ширину (чтобы элемент был достаточно узким, чтобы поместиться на одной строке) и применить 'float: left;' используя div.form-item в качестве CSS-селектора.

Чтобы обеспечить правильную очистку элементов, примените 'overflow: hidden;' к родительскому элементу, который содержит три элемента формы.

...