对齐中心代码(错误的渲染输出?)在MediaWiki中不起作用

时间:2012-06-08 07:52:12

标签: html html-table mediawiki

我注意到<td align="center">代码在MediaWiki.org页面和en.wikipedia.org页面上的工作方式不同。我在两个wiki上输入了相同的以下测试代码:

来源(测试)代码:

<table border="1">
  <tr>
    <td align="center">
      test test test test test test

      test

      <table border="1"><tr><td>
      [[File:Information_icon.svg|20px]]
      </td></tr></table>

      test
    </td></tr>
</table>

为什么MediaWiki.org页面会生成以下(错误)代码:

<td style="text-align: center;">

代替(预期):

<td align="center">

2 个答案:

答案 0 :(得分:5)

启用wgHtml5时(默认情况下在MediaWiki软件中启用,但在大多数维基媒体基金会wiki上禁用,最近已在mediawiki.org上启用),MediaWiki中的Html处理器会删除表示属性等就像这些一样,并用粗略的等效内联样式属性替换它们。

该系统在诸如此类的场景中存在错误(以bug #36495 (bugzilla.wikimedia.org)提交),因为text-align或float本身并未涵盖所有错误。

另见:

但对于问题的原因这么多。回到手头的问题,简短的版本是:这些属性已被弃用,而你最好不要首先使用它们。

而是使用CSS。或者,在此特定示例中(如前面提到的Bergi),有一种更合适的替代方法:在|center|语法中使用[[File:关键字。

答案 1 :(得分:3)

wiki似乎使用configs for HTML Tidy的不同 $wgCleanupPresentationalAttributes 值运行,这将更正已弃用的样式html属性,而不是css。

然而,align="center"style="text-align:center"并未显示完全相同的行为。虽然align属性同时影响内联元素,块元素和afaik本身,但css属性仅对齐内联元素(文本)。要对齐块元素,您可以使用margin-property。

正确标记:

{| style="text-align:center; border:1px solid;"
| test test test test

test
<div style="margin-left:auto; margin-right:auto;">
[[File:Information icon.svg|20px]]
</div>
|}

或者,甚至更容易:

[[File:Information icon.svg|center|20px|border]]