2

在我编辑的主 wiki 上有一个名为的自定义命名空间Item:,抱怨是该命名空间内的每个页面都显示为Item:This_item-- Item:That_item-- Item:Foo_item

我浏览了该皮肤的网络和 CSS,并遇到了:

span#ca-nstab-main:before,
span#ca-nstab-user:before,
span#ca-nstab-wp:before {
content: "[ ";
}
span#ca-talk:before {
content: "& ";
}
span#ca-talk:after {
content: " ]";
}

它采用命名空间名称“我将main用作示例”和相应的talk页面名称,并使它们显示为[ main & talk ]而不是main talk.

我想知道是否有类似的东西可以让我显示Item:Foo为只是Foo剥离“ Item:”。我知道类别页面上列出的项目在div#mw-pages a标签中。

也许甚至是使用 JavaScript 去除前五个字符的内联方式?我说“内联”是因为$wgAllowUserJs在这个 wiki 上设置为 false。

编辑:维基核心将其解析为:

<style type="text/css">
/*<![CDATA[*/      
a[title^=&quot;Item:&quot;] {
    font-family: 'Lucida Grande', Geneva, Arial, Verdana, monospace;
    font-size: 12px;
    display: inline-block;
    overflow: hidden;
    text-indent: -2.1em;
}
/*]]>*/       
</style>

如何使引号不被解析,有窍门吗?我可以在字体系列线上使用单引号而不是双引号吗?

4

2 回答 2

2

如果你只能使用 CSS,你可以尝试这样的事情。( http://jsfiddle.net/zPJHU/ )

li a {
/* monospace fonts may be more consistant cross browsers */
font-family: "Courier New", monospace;
font-size: 1em;
display:inline-block;
overflow:hidden;
text-indent: -2.9em; /* may have to play with this value */
}
li a:hover{
    font-size: 1.8em; /* just for demonstration of font-size increase */
}

演示标记:

<p>Hover over links to increase font-size</p>
<ul>
    <li><a href="#Item:wicket" title="This really says: 'Item:Wicket'">Item:Wicket</a></li>
    <li><a href="#Item:chewbacca" title="This really says: 'Item:Chewbacca'">Item:Chewbacca</a></li>
    <li><a href="#Item:obiwan" title="This really says: 'Item:Obi Wan Kenobi'">Item:Obi Wan Kenobi</a></li>
</ul>
于 2012-04-20T01:16:40.143 回答
0

不知道这是否可行,但您可以在正确的位置预先并附加一个跨度打开/关闭标签以具有以下内容:

<span class="hideme">Foo:</span>Bar

正如我所说的,我没有尝试过,但我不知道另一种方法,并且可能没有可能仅使用 css 来剪切内容。javascript应该这样做。

于 2012-04-19T23:55:34.270 回答