【问题标题】:Drupal 6 Forms formattingDrupal 6 表单格式
【发布时间】:2009-11-11 17:36:47
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: php forms drupal-6 coding-style drupal-fapi


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        虽然我同意 CSS 通常是为表单设置主题的正确方法,但有时您需要更强大的方法。我写了一篇关于theming complex forms with tabular information 的文章,就像一个人的列表,他们的姓名和SSN 都打印在一行上。

        【讨论】:

          【解决方案4】:

          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 选择器。

          为确保元素正确清除,请应用 'overflow: hidden;'到包含三个表单元素的父元素。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-06
            相关资源
            最近更新 更多