使用CSS / HTML下拉列表作为MediaWiki模板

时间:2019-02-16 15:47:41

标签: mediawiki mediawiki-templates

我正在尝试将此dropdown用作Mediawiki模板,并允许在URL创建中使用Mediawiki参数(即{{PAGENAME}})。显然,这种html元素没有被解析。尝试$wgRawHtml = true;导致显示模板,但是除了存在安全风险之外,没有其他方法可以解析元素。我确实找到了this template,但我想不通如何调整它以使其与相关下拉菜单的样式配合使用。

2 个答案:

答案 0 :(得分:1)

在页面MediaWiki:Common.css(或MediaWiki:Skinname.css,如果只希望用于特定皮肤的页面)中,添加所需的CSS:

 /* Dropdown Button */
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
  position: relative;
  display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Links inside the dropdown */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #ddd;}

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {background-color: #3e8e41;}

如果模板中的所有内容都将成为内部链接,请将该模板设置为您的模板:

<div class="dropdown">
<div class="dropbtn">{{{title|Dropdown}}}</div>
<div class="dropdown-content"><!--
-->{{#if:{{{1|}}}|[[{{{dropdown|Foo|Bar|Baz}}
}]]}}<!--
-->{{#if:{{{2|}}}|[[{{{2}}}]]}}<!--
-->{{#if:{{{3|}}}|[[{Passing an equal sign ('=') to a parameter in a MediaWiki template}]]}}<!--
-->{{#if:{{{4|}}}|[[{{{4}}}]]}}<!--
-->{{#if:{{{5|}}}|[[{{{5}}}]]}}<!--
</div>
</div>

然后像这样调用它:

Foo

这将使下拉列表中包含指向您的Wiki页面BarBaz<div class="dropdown"> <div class="dropbtn">{{{title|Dropdown}}}</div> <div class="dropdown-content plainlinks"><!-- -->{{#if:{{{1|}}}|<span>{a}</span>}}<!-- -->{{#if:{{{2|}}}|<span>{{{2}}}</span>}}<!-- -->{{#if:{{{3|}}}|<span>{{{3}}}</span>}}<!-- -->{{#if:{{{4|}}}|<span>{{{4}}}</span>}}<!-- -->{{#if:{{{5|}}}|<span>{{{5}}}</span>}}<!-- --></div> </div> 的链接。


如果您必须支持外部链接或纯文本,请改用以下方法:

span

将CSS中的/* Links inside the dropdown */ .dropdown-content span { color: black; padding: 12px 16px; text-decoration: none; display: block; } /* Change color of dropdown links on hover */ .dropdown-content span:hover {background-color: #ddd;} .dropdown-content a, .dropdown-content a:hover{ color: black; text-decoration: none; } 更改为{{dropdown|[[Foo]]|[https://www.google.com/ Google]|Plain text}} ,并添加一条规则以确保它们是黑色而不是蓝色:

Foo

然后,您可以像调用它一样

=

,它具有到页面{{dropdown|1=[https://duckduckgo.com/?q=foo&ia=web Search for Foo]|2=Bar}} 的链接,到Google的链接以及纯文本菜单项。


注意:如果参数包含等号({{1}}),则需要指定所有参数名称,如下所示:

{{1}}

另请参阅:{{3}}

答案 1 :(得分:0)

因此,我尝试使用此功能,但出现了一个问题,即下拉菜单之后的其余页面内容都在下拉菜单中。 IT部门似乎没有关闭任何参数,因此我不确定为什么要这样做。使用MW1.32