Html 是有一个;显示:表格单元格“;元素不在“内部”;显示:表格行“;元素是有效的构造吗?

Html 是有一个;显示:表格单元格“;元素不在“内部”;显示:表格行“;元素是有效的构造吗?,html,css,Html,Css,在我必须处理的一个示例web应用程序中,我注意到一些元素具有display:table cell样式,但它们的父元素没有display:table row 对我来说,这似乎是错误的,但我一点也不确定 因此有一个问题:这是一个有效的构造吗?如果有的话,会导致什么问题 多谢各位 下面是我的意思的一个例子: <div style="display: block"> <div style="display:table-cell"> <p>Some cont

在我必须处理的一个示例web应用程序中,我注意到一些元素具有
display:table cell
样式,但它们的父元素没有
display:table row

对我来说,这似乎是错误的,但我一点也不确定

因此有一个问题:这是一个有效的构造吗?如果有的话,会导致什么问题

多谢各位

下面是我的意思的一个例子:

<div style="display: block">
  <div style="display:table-cell">
    <p>Some content</p>
  </div>
</div>

一些内容


我有点像是在模仿浮士德,他很好心地找到了规格(但现在似乎已经删除了他的答案)

是的,它(可能)是有效的

HTML以外的文档语言可能不包含中的所有元素 CSS 2.1表格模型。在这些情况下,“缺失”元素必须 为使表格模型正常工作,必须假定。任意表元素 将自动生成周围必需的匿名表对象 本身,由至少三个对应于 “table”/“inline-table”元素、“table-row”元素和 “表单元格”元素

从17.2.1匿名表对象,


这可以理解为匿名框是用非HTML语言创建的,这些语言没有正确的构造,但我假设它也会生成HTML中的匿名表对象。

+1这应该移动到
代码审阅
。就我个人而言,我认为在
tr
之外的任何东西上使用
display:table row
是对正确的CSS/HTML的一种卑劣化@匿名downvotingislame:谢谢你的投票。然而,我不确定这是否真的适合代码审查。恕我直言,这不是一个需要验证或改进的大代码,而是一个关于特定构造有效性的问题。与@anonymousdownvotingislame相反,我要说的是,
display:table cell
被专门引入来显示非表格数据,就像它在表格单元格中一样。在我看来,这是完全有效的,只要你不把表格数据放在div中而不是表格中,从而混淆表格数据。非常感谢你花时间在标准中找到合适的引用!它完美地回答了我的问题。