Jos*_*tey 16 xhtml semantic-markup
我有一个需要解决的迂腐论点.
作为一个适当的koolaid饮者,当谈到HTML时,我都是关于语义标记.因此,我当然不愿意看到他们不属于的表格.表格的经验法则是你应该只将它们用于"表格数据",但我注意到这是一个非常缺乏定义的短语.我想将以下数据作为表格,但我办公室的其他人不同意在这种情况下表格在语义上是正确的(而不是a dl或ul等):
------------------
| SomeEmployee |
|----------------|
| Field | val |
| Field | val |
| Field | val |
| Field | val |
------------------
Run Code Online (Sandbox Code Playgroud)
在办公室(和互联网)周围询问,我得到了一些关于数据"表格"的答案:
等等等等.这些似乎都不是规范定义,并且它们没有为决策提供很好的分界线.所以,我问你,我聪明的同胞:我们应该如何定义表格数据.
如果可能的话,请引用您的答案的来源,以防止一串"我认为好"的答案.
谢谢!
乔
awr*_*ley 13
您的示例的问题在于它位于两列中.
在该限制中,是否使用TABLE标签或DL标签之间的区别有些模糊.区分的唯一方法是在dl中,DT标签应该是标签而dd应该是"data".如果放在DT标签中的"数据"不是DD标签的标签(也就是元数据),那么您应该使用表格.在你的例子中,这是一种字典,我肯定会使用dl标签.我会使用一个表,其中两列中的每一列中的数据代表一件事的INDEPENDENT属性.但就像我说的那样,区别模糊了.
在"表格"中,"字段"列对我来说更像是元数据.因此规则将是:始终使用最具语义特定的标记.在这种情况下,DL.
我永远不会做的是使用ul或ol标签.很简单,它们适用于单列列表.此外,不要求列表的每一行都是数据,即表示给定事物的属性.UL或OL标记中的内容没有与之关联的元数据:与DL标记和TABLE标记不同,UL和OL标记不提供任何元数据标记.
转到问题的更通用方面,以下内容适用:
与真爱一样,当您看到它时,您会了解表格数据.
正如你所看到的任何事物一样,精确的定义会填补一定数量的难以消化的哲学.首先,您需要在提出问题之前定义数据的含义.
考虑到这些警告,只是为了进行心理锻炼,我们在这里:
A.-表格数据必须是结构化数据:数据必须是分层的或关系的.我的意思是将数据转换为一个或另一个结构(或两者)应该是可能的.
这允许导出以下规则,几乎可以锁定数据表中的CAN,从而回答您的问题并遵守W3C要求使用标记:
原子性:每个数据行必须代表同一个东西的单个UNIT.即,表格的每个CELL中的数据必须是每个数据ROW所代表的属性.这很快就会告诉你为什么有些东西应该放在UL标签中:它们是非结构化的列表,即每一行都可以引用非常不同的东西,而不是STRUCTURED DATA,其中每一行总是代表一类事物的不同实例.
CELLS:将事物的每个属性放在标签(也称为单元格)中应该是可行的.每个细胞的内容必须是数据; 不允许使用布局元素.请注意,这不包括列标题等附件,不应使用标记,应使用功能更合适的标记.
行数定义或数据的"格式化":每行()中的数据必须映射到预定义的"格式".按格式,我的意思是描述给定事物的属性列表.在下文中,术语属性和列可互换使用.
栏目顺序:必须严格按照此格式订购.即,列的顺序不得在行与行之间变化.
ROW INDEPENDENCE:每行中的数据不得依赖于其他行中的数据.也不应该依赖于任何其他行的存在.每行中的数据仅取决于"格式".
ROW INTEGRITY:每行中的数据必须符合格式定义的约束.
相关数据:需要对上述规则进行扩展,以考虑相关和分层数据.通过扩展格式以允许本身就是表的列类型,可以轻松完成此操作.
在上面的规则中,没有任何地方声明"列"应该水平组织.这允许行具有更多"结构"并且仍然符合规则0-6.例如,允许"子"数据的子表出现在与其"父"记录相对应的数据之下.或不.或者可以在其他单元格中显示大型备注字段.仅仅因为它是表格数据并不意味着它不能有布局.
图像数据:目录中的产品图像是数据.但是,在图像的情况下,列约束是图像必须与"格式"的其他"列"相关.例如,这会敲出一个透明的gif,它只能设置一行的物理高度和/或宽度.因为它与行中的其他数据没有内在关系,所以它不符合规则0-7.
B.-表格数据不包括非结构化数据.这更多是必然结果,但解决了标签的"邪恶":
上述内容仅仅是使用废话来完善您自己在问题中所述的以下规则:
电子表格或数据库表格中的任何内容,同时不包括与数据无关的电子表格的使用.
不废话的是显而易见的,但可能含糊不清的说法,表格数据只不过是结构化数据.通过结构化,我的意思是它必须构成一个"强类型"集合.
我再次注意到,此定义排除了列标题,标题,页脚的文本.换句话说,表格数据与tbody标签一起使用.表标记中的所有其他内容都是指向表格数据但不属于表格数据的元数据.
上述规则将数据定义为符合列约束的内容.
所以我想你现在需要一个列约束的定义.但话说回来,当你看到一个......