我有一个HTML + CSS网格布局,就像这个screenshot一样,它本质上是一个面向列的表格(而不是面向行的HTML <table>
,它是逐行构建的)。复杂的面向列的表格布局
为了实现这种布局,我有从<div>
s构建的支撑网格,并将值组作为右浮动<table>
s。最初,我也将值组设置为<div>
s,但这需要固定的单元格宽度(尤其是单元格跨越多列),所以现在我正在使用表格作为值组。无论哪种方式,我可以有一个可变数量的值组,我需要。
我想要做的是使用<table>
作为支持网格,所以我可以免费获得所有漂亮的跨行和列跨越。但是,这已被证明是一项艰巨的任务,因为table
元素被视为流中的单个块(元素不能在其周围流动)。
所以我的问题是这样的:我可能在我的布局中仅使用HTML + CSS使用表格作为“支持网格”吗?此外,请随时为这种布局的建设提供不同的方法。
编辑:
我应该提到,这个布局是动态生成,接下去就是单表解决方案将无法工作。这是因为在这种情况下,项目是静态的,但值组不是。我需要能够轻松地添加/删除值组,以便可以使用模板引擎(如{{mustache}})生成此值。使用单表解决方案时,为了添加一个值组,每个<tr>
必须添加一组额外的<td>
,这在使用任何模板引擎时肯定不是微不足道的,特别是{{mustache}},是我正在使用的。
例如,我的源数据(JSON)可能看起来像:
{
"oneTwoTotal": "$0.00",
"valueGroups":[
{
"groupName":"ValueGroup1",
"values":[
{
"subgroupName":"Column 1",
"item1":"$0.00",
"item2":"$0.00",
"item3":"$0.00",
"total":"$0.00"
},
{
"subgroupName":"Column 2",
"item1":"$0.00",
"item2":"$0.00",
"item3":"$0.00",
"total":"$0.00"
}
]
},
{
"groupName":"ValueGroup2",
"values":[
{
"subgroupName":"Column 1",
"item1":"$0.00",
"item2":"$0.00",
"item3":"$0.00",
"total":"$0.00"
},
{
"subgroupName":"Column 2",
"item1":"$0.00",
"item2":"$0.00",
"item3":"$0.00",
"total":"$0.00"
}
]
}
]
}
想象一下,一个模板引擎构建的单表解决方案,使用该数据。
感谢您的回答。我意识到可以使用带有rowspans和colspans的单个表生成此表。这种方法的问题是产生这样的表格。我应该在我原来的问题中提到这一点;请参阅编辑以获取更多解释。 – mystictheory 2012-03-14 00:08:03