1

我正在尝试在 drupal 6 中创建一个表单,该表单在同一行上有多个项目。更具体地说,我想要一个右对齐的表单,它有一个文本字段、下拉框和按钮都在同一行。

我知道如何创建项目,但 drupal 倾向于将它们全部放在单独的行上。我怎么把它放在一条线上?

谢谢

4

4 回答 4

4

您需要使用 CSS 来定位它们。他们每个人都应该在自己的 div 中,所以应该不会太难。

PS 在标记中将某些内容硬编码在同一行并不是一个好主意。您应该始终在 CSS 中进行布局和定位,并将标记仅用于将项目输出到页面。

于 2009-11-11T17:51:10.977 回答
1

我当然同意前面的答案:CSS 是要走的路!. 真正的问题是:你应该把 CSS 位放在哪里?

我强烈建议将它放在一个单独的 .css 文件中,因为这将大大减轻参与该项目的其他人的生活,并保持代码可移植到另一个主题,当/如果重新设计的时间到来时。这很容易做到,因为每个 from 元素都是用自己的包装div生成的。您需要用来告诉drupal 使用给定的.css 文件(如果您不将样式添加到现有文件)的函数是drupal_add_css()

也就是说,如果您仍然想要/需要/必须调整您在生成表单的代码中提到的行为,我建议您使用数组的#prefix#suffix属性$form。这些对所有表单元素都是通用的,并且允许您将 HTML 直接注入到呈现的表单中(当然,给定元素之前的前缀,之后的后缀)。这样,您可以通过标签将<div>'s 和<span>'s 和 CSS等 html 元素放在需要的地方。<style type="text/css">

不过我想强调的是,第一个解决方案(外部 CSS 文件)要好得多。

希望这可以帮助!

于 2009-11-13T18:31:58.987 回答
1

虽然我同意 CSS 通常是为表单设置主题的正确方法,但有时您需要更强大的方法。我写了一篇关于使用表格信息对复杂表单进行主题化的文章,例如一个人员列表,其中包含他们的姓名和 SSN 字段都打印在一行上。

于 2010-06-23T17:15:57.727 回答
0

Drupal Forms API 通常使用包装器 div 元素输出每个元素,并使用类名“form-item”设置。

例如。

<div class="form-item">

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

</div>

要让三个元素并排放置,您需要设置宽度(使元素足够窄以适合一行),并应用“float: left;” 使用 div.form-item 作为 CSS 选择器。

为确保元素正确清除,请应用“溢出:隐藏;” 到包含三个表单元素的父元素。

于 2009-11-13T18:48:45.017 回答