何时不在 Twitter Bootstrap 3 中使用表单组?

When NOT to use form-group in Twitter Bootstrap 3?

我正在开发一个 PHP templating engine 将具有围绕 Bootstrap 3 设计的自定义模块。

我正在开发一个 FormBuilder 模块,它将包含 FormField 个元素。这些 FormField 元素将自动呈现表单中的每个字段并为其设置样式。

问题是,我是否应该让这些 FormField 元素自动包装在 <div class='form-group'> 标签中?为什么有人不应该使用 form-group 作为表单组件?

如果有帮助,我计划有一个单独的 FormButton class,因为按钮 behave/style 与其他表单元素不同。

编辑:再考虑一下后,我可以使用抽象 classes 来做这样的事情:

class FormBuilder {
    protected $components = [];    // Array of FormComponents
    ...
}

abstract class FormComponent {
    ...
}

class FormGroup extends FormComponent {
    protected $field;    // A FormField object
    ...
}

class FormField extends FormComponent {
    ...
}

class FormButton extends FormComponent {
    ...
}

这取决于您是否打算拥有一个处理一组单选框或复选框的 FormField。这确实是唯一具有多个没有组的输入标签的控件。对于这两种情况,您最好将其作为可选内容包括在内,因为从不输出表单组 div 或始终输出它们都会 运行 您在外观和感觉方面遇到麻烦。