每个小区我知道的唯一方法,比用浮动创建一个虚拟表等<div>
s,正在使用Labeled Section Transclusion(或其等效{{#dpl}}
函数,如果您有Extension:DynamicPageList)。您可以使用<section/>
标签或标题分别标记“列模板”的每个单元格,然后创建一个框架表,通过跨列模板填充每行。该结构将是这个样子:
{|class="wikitable sortable" style="font-size:85%"
|+ table name
! Title 1
! Title 2
! Title 3
|- valign="top
| {{#lst:col1|row1}}
| {{#lst:col2|row1}}
| {{#lst:col3|row1}}
|- valign="top
| {{#lst:col1|row2}}
| {{#lst:col2|row2}}
| {{#lst:col3|row2}}
|- valign="top
| {{#lst:col1|row3}}
| {{#lst:col2|row3}}
| {{#lst:col3|row3}}
...
|}
这种解决方案缺乏折腾出列,你可以折腾出行方式的简单,但可悲的是HTML只是不旨在创造真正的基于列的表格。但是,通过这种布局,每列的所有信息至少可以存储在同一页面上,您可以更轻松地编辑它(如{{col1}}
,{{col2}}
等),如果您正在记录文本信息,则还可以读取每列作为一个可能方便的独特页面。
如果你打算做很多事情,你可以通过创建一个填充每一行的模板来进一步简化它,所以你只需要指定行号,如下所示:(假设你的列总是作为子页面放置在那里他们将出现在文章)的
template:col-based table row
{{!}}- valign="top"
{{!}} {{#lst: {{PAGENAME}}/col1 | row{{{1|}}} }}
{{!}} {{#lst: {{PAGENAME}}/col2 | row{{{1|}}} }}
{{!}} {{#lst: {{PAGENAME}}/col3 | row{{{1|}}} }}
然后标题下你只需要列出:
{{col-based table row|1}}
{{col-based table row|2}}
{{col-based table row|3}}
...
现在,如果你想,直到你用尽模板自动-产生这些行(或换句话说,让表格决定如何许多行的创建没有你手动设置),我不认为我可以帮你。也许你可以用DPL扩展的表生成函数来做一些巧妙的事情,或者安装一个允许你创建循环的扩展,但是我认为你可能会被阻止像上面描述的那样手动创建每一行。
作为最后一点,因为这是内容,而不是格式化,我建议您将列页放在主空间而不是模板名称空间中。事实上,这是子页面所擅长的。
thx,我也会得出这个结论。感谢你给它一些想法。 – Wikis 2010-07-06 17:27:47