我计划构建一个数据库表来存储表单的css值。形式是动态的,这意味着人们不能说出它在构图中包含哪种元素。
例如,表单可能包含文本输入框,单选按钮,下拉框的组合。这是我的问题:如果我需要为这种形式存储css值,我如何构建我的表。(css属性及其值也将在表单生成本身上分配)
据我所知,这些表可能是这样的:
考虑两个表:classes, Styles
Classes表包含以下列:id, class_name
样式表包含以下列:id, class_id(foreign key), css_property, css_values
如果我为每个表单元素分配类,那么我可以使用上面的表来存储css值。但这是解决这类问题的直接方法吗?如果没有,有没有比这更好的解决方案?
答案 0 :(得分:3)
您不应该在数据库中存储CSS值。您只是为自己创造更多的工作并减慢流程。你应该做的是在你的表单字段中添加类,并在external stylesheet中编写与每个类对应的样式。
答案 1 :(得分:0)
我认为您可以动态生成表单字段并将字段ID和独特的表单ID作为对象,如果要将css样式设置为位置,颜色,大小等,则可以将所有这些属性和值设置为每个字段喜欢#FormId #FieldID {properties:values;}并将数据存储在唯一的文本字段中。
表格表
FormId | Html | Styles | "the rest of the interested form properties"
:)
答案 2 :(得分:0)
听起来您正在构建一个表单编辑器,允许用户为表单元素指定样式,并且您希望能够将这些更改保存在数据库中。如果是这种情况,您可能已经有一个类似form_elements
的表格和一个类似forms
的表格 - 我只需要添加两个文本列:form_elements.extra_html_attrs
和forms.extra_html
。这将允许您将任意属性附加到每个元素(例如extra_html_attrs = class="fancy-element" style="width:100px"
)并在表单中包含任意html(例如extra_html = <style>.fancy-element{border:blue}</style>
)。在单独的数据库表中对与CSS相关的属性建模会增加复杂性,并且在这种情况下不会为您带来任何好处。
答案 3 :(得分:0)
我会创建一个javascript类并使用JQuery。每个查询都会使用addClass来编写正确的类。您要添加的类将在javascript类中动态创建。