我想知道是否可能在每个页面上都制作这样的边栏,以及如何实现?
<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>
将“param1”,“param2”等替换为您实际想要用于信息框的参数,例如“name”,“birth-date”等。如果需要更多参数,请复制并修改现有参数。
然后前往MediaWiki:Common.css并添加一些样式(如果您没有必要的权限来编辑MediaWiki:Common.css,则必须将此CSS作为内联样式添加到模板中的HTML中,或者更好的方法是使用TemplateStyles extension):
.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;
}
{{Infobox
| title =
| image =
| param1 =
| param2 =
| param3 =
| param4 =
| param5 =
}}
{| style="float:right; border:1px solid black"
| My fantastic infobox
|-
| More info
|}
https://www.mediawiki.org/wiki/Help:Tables
你可能会感到惊讶,这只是一个有两列和一些行的表格:
这是代码:{| style="float:right;border:1px solid black"
!colspan="2" | Fantastic Page
|-
!colspan="2" | [[File:Example image.svg|260px]]
|-
! Info
| Stuff
|-
! More Info
| More Stuff
|-
! And Info
| Again Stuff
|}
有用的额外信息:
我不确定@Sophivorus的帖子有多新——没有日期,所以我认为它是2018年的,如果不是——抱歉。
我正在寻找一个教程,解释可怕的infoboxes及其创建过程,但没有找到。维基本身也没有帮助。经过2.5个晚上的搜索,我最终放弃了,并找到了Sophivorus的帖子。它给了我一个提示,即使用简单的CSS在HTML中创建infobox可能是更好、更容易的想法。我认为维基必须将其难以理解的infoboxes转换为HTML,我没有错!:) 我现在拥有一个漂亮的infobox,而不需要学习维基的scribunto-lua-srua-wikitext monster,仅需一些HTML和CSS知识。
我想以逐步方式向像我这样的菜鸟分享解决方案。
<table class"[..]
marker. Note that the whole infobox was highlighted as you moused over the <table class="
<table class="infobox" bla bla bla>
) 2) titles/headers class infobox-subtitle (or whatever; <th class="infobox-subtitle" bla bla>
) 3)give sub-title a class if you wish any sub-titles (<td class="infobox-subtitle" bla bla>
).Copy CSS from here or create your code in CSS by yourselves using classes mentioned above
.infobox {
background-color: #ffff00;
border: 2px solid #008600;
float: right;
margin: 0 0 1em 1em;
padding: 1em;
width: 400px;
}
.infobox-title {
border: 1px solid #000000;
font-size: 1.5em;
text-align: center;
background-color: #ff0000;
}
.infobox-subtitle {
font-size: 1em;
text-align: center;
background-color: #fff00;
}
.infobox-image {
text-align: center;
background-color: #ffff00;
}
在HTML中: 在您希望用户添加信息的地方粘贴{{{somenamehere}}},然后创建一个模板,您将需要将其放置在其他页面上以调用您的Examplenamehere模板:
{|Examplenamehere
|{{{somenamehere1}}}
|{{{somenamehere2}}}
|etc. etc.
|}
在表格顶部放置一个带有页面名称的标题:使用以下代码:{{{nazwa|{{PAGENAME}}}}}
,而不是表格顶部的标题。
如果您想检查或复制我的模板,请访问此处:http://wiki.mrowki.ovh/index.php?title=Szablon:Opis 并检查该页面。