我正在尝试在我的 MediaWiki 安装上设置一些简单的信息框。
我使用了这个答案。这是我当前的代码(与该问题完全相同,而且我确实有 ParserFunctions):
Template Page
<div class="infobox">
<div class="infobox-title">{{{title|{{PAGENAME}}}}}</div>{{#if:{{{image|}}}|
<div class="infobox-image">[[File:{{PAGENAME:{{{image}}}}}|300px]]</div>}}
<table class="infobox-table">{{#if:{{{param1|}}}|<tr>
<th>Parameter 1</th>
<td>{{{param1}}}</td>
</tr>}}{{#if:{{{param2|}}}|<tr>
<th>Parameter 2</th>
<td>{{{param2}}}</td>
</tr>}}{{#if:{{{param3|}}}|<tr>
<th>Parameter 3</th>
<td>{{{param3}}}</td>
</tr>}}{{#if:{{{param4|}}}|<tr>
<th>Parameter 4</th>
<td>{{{param4}}}</td>
</tr>}}{{#if:{{{param5|}}}|<tr>
<th>Parameter 5</th>
<td>{{{param5}}}</td>
</tr>}}</table>
</div>
Relevant CSS (Part of Common.css)
.infobox {
background: #eee;
border: 1px solid #aaa;
float: right;
margin: 0 0 1em 1em;
padding: 1em;
width: 400px;
}
.infobox-title {
font-size: 2em;
text-align: center;
}
.infobox-image {
text-align: center;
}
.infobox-table th {
text-align: right;
vertical-align: top;
width: 120px;
}
.infobox-table td {
vertical-align: top;
}
这工作正常,直到我想将具有信息框的多个页面转换为单个页面。
当我这样做时,信息框水平堆叠而不是垂直堆叠。由于 MediaWiki 在嵌入后编写 HTMl 的方式,信息框之间有几个 HTML 元素(主要是
<p>
)。
我确信这是一个简单的修复,但无论我做什么,我似乎都无法让它工作。
我唯一能想到的就是以某种方式在页面右侧制作一个部分,用于保存每个信息框,但我不知道如何为维基上的每个页面制作类似的东西,并且只让它保存专门的信息框。老实说,我可能完全看错了方向。
您可以在嵌入页面之前插入
<br clear="all" />
。