Mediawiki表:"高效"对不同的列应用不同的对齐方式

时间:2014-06-30 16:19:41

标签: css html-table mediawiki

如何在左对齐其他列时有效地居中对齐某些列?

我想做这样的事情。

-------------------------
|     A      |B         |
-------------------------
|     C      |D         |
-------------------------    

此代码使所有列居中。

{| class="wikitable" style="text-align: center;"
|-
! Header 1
! Header 2
|-
| A
| B
|-
| C
| D
|}

我知道以下代码可以满足我的需求。

{| class="wikitable"
|-
! Header 1
! Header 2
|-
| style="text-align: center;" | A
| B
|-
| style="text-align: center;" | C
| D
|}

但是因为我需要制作一张相当长的桌子,所以这很乏味。

是否有任何代码只使用非常简单的一行代码对齐第一列?

2 个答案:

答案 0 :(得分:2)

除非您在LocalSettings.php中将其停用,否则您可以使用页面MediaWiki:Common.css向所有页面添加额外的样式表。使用纯CSS,在那里做你需要的。 E.g:

.myTableClass td {
    text-align: left;
}

.myTableClass td:first-child {
    text-align: center;
}

...然后将该类添加到表中

{| class="wikitable myTableClass"
|-
| A
| B
|-
| C
| D
|}

答案 1 :(得分:1)

接受的答案虽然正确,但通常可能很繁琐,因为您需要为所需的每个列位置和文本对齐组合创建一个独特的CSS类。

一次性的另一种方法是将CSS直接嵌入到wiki页面中。在仅由受信任用户编辑的wiki上,您可以启用$wgRawHtml。在其他人,您可以使用Extension:CSS等扩展名。如果您有多个表,则可以使用#id选择器限制每个表的样式。

<html>   <!-- assumes $wgRawHtml = true; safer alternatives exist -->
    <style>
        table#accounts tr td:nth-child(3),
        table#accounts tr td:nth-child(4) 
        { 
            text-align: right; 
        }
    </style>
</html>
{| class="wikitable" id="accounts"
! Account Number !! Account Name !! Source Balance !! Target Balance
|-
| 1234 || UK Savings     ||    402.00 ||    323.21
|-
| 5432 || Car Fund       || 12,943.00 || 23,433.21
|-
| 6789 || Other Expenses ||      4.21 ||      6.21
|}

编辑:再考虑一下,采用全局方法确实可以在维基页面中产生更清晰的语法,特别是如果您有许多表格要对齐列。我已经为MediaWiki:Common.css页面中的每个对齐创建了CSS类:

table.col-1-center td:nth-child(1) { text-align: center; }
table.col-2-center td:nth-child(2) { text-align: center; }
table.col-3-center td:nth-child(3) { text-align: center; }
table.col-4-center td:nth-child(4) { text-align: center; }
table.col-5-center td:nth-child(5) { text-align: center; }
table.col-6-center td:nth-child(6) { text-align: center; }
table.col-7-center td:nth-child(7) { text-align: center; }
table.col-8-center td:nth-child(8) { text-align: center; }
table.col-9-center td:nth-child(9) { text-align: center; }

table.col-1-right td:nth-child(1) { text-align: right; }
table.col-2-right td:nth-child(2) { text-align: right; }
table.col-3-right td:nth-child(3) { text-align: right; }
table.col-4-right td:nth-child(4) { text-align: right; }
table.col-5-right td:nth-child(5) { text-align: right; }
table.col-6-right td:nth-child(6) { text-align: right; }
table.col-7-right td:nth-child(7) { text-align: right; }
table.col-8-right td:nth-child(8) { text-align: right; }
table.col-9-right td:nth-child(9) { text-align: right; }

然后,在您的维基页面中,您可以简单地引用CSS类:

{| class="wikitable col-3-right col-4-right"
! Account Number !! Account Name !! Source Balance !! Target Balance
|-
| 1234 || UK Savings     ||    402.00 ||    323.21
|-
| 5432 || Car Fund       || 12,943.00 || 23,433.21
|-
| 6789 || Other Expenses ||      4.21 ||      6.21
|}

此方法的另一个好处是您不需要启用$wgRawHtml或安装扩展程序。