2

我注意到<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">
4

2 回答 2

5

wgHtml5启用(在 MediaWiki 软件中默认启用,但在大多数 Wikimedia Foundation wiki 上禁用,并且最近在 mediawiki.org 上启用)时,MediaWiki 中的 Html 处理器会去除诸如此类的表示属性,并将它们替换为粗略的等效内联样式属性。

该系统在诸如此类的场景中有一个错误(归档为错误 #36495 (bugzilla.wikimedia.org) ),因为单独的 text-align 或 float 并不能涵盖所有这些。

也可以看看:

但是问题的原因就这么多了。回到手头的问题,简短的版本是:这些属性已被弃用,你最好不要一开始就使用它们。

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

于 2012-06-08T11:20:43.237 回答
3

wiki 似乎使用$wgCleanupPresentationalAttributes的 HTML Tidy值的不同配置运行,这将更正已弃用的样式 html 属性以支持 css。

然而,align="center"style="text-align:center"没有表现出完全相同的行为。虽然 align 属性同时影响内联元素、块元素和 afaik 本身,但 css 属性仅对齐内联元素(文本)。要对齐块元素,您将使用边距属性。

正确的标记:

{| 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]]
于 2012-06-08T08:54:07.633 回答