Loading AI tools
来自维基百科,自由的百科全书
表格可以用多行多列的形式排列及整理內容。在維基百科的頁面裡,能用特殊的維基代碼製作表格,要自設表格的話也有許多樣式和竅門可以運用。
按一下編輯工具欄裡的 或 (添加表格)便會自動增添表格。在工具欄找不到“添加表格”的按鈕的話,可依照這裡的說明增添這個按鈕。
按下“添加表格”後會加入左面的代碼,這段代碼會生成右面的表格:
{| class="wikitable" |- ! 標題 !! 標題 !! 標題 |- | 例子 || 例子 || 例子 |- | 例子 || 例子 || 例子 |- | 例子 || 例子 || 例子 |} |
|
表格裡的佔位文字(“標題”、“例子”)應該替換成實際要添加的內容。
儘管HTML的表格標記也能用,但使用維基代碼可以更快捷地製作表格。下面一系列含豎線符號的代碼和HTML表格標記的功能完全相同,所以你懂得運用後者的話,便很容易看明白前者。含豎線符號的代碼有這些:
{|
”,結尾則用“|}
”。這兩組代碼都必須自成一行:{| 這是表格內容 |}
|+
”並附上文字:{|
|+ 表格標題
這是表格內容
|}
|-
”。這個橫行裡的單元格的代碼要在再下一行輸入。{| |+ 表格標題 |- 這是一行的內容 |- 這是下一行的內容 |}
{| |+ 表格標題 |- | 這是單元格的內容 |- | 這是下一行首個單元格的內容 | 這是下一個單元格的內容 |}
||
”。這三種代碼的效果都一樣:{| |+ 表格標題 |- |單元格1 || 單元格2 || 單元格3 |- |單元格A |單元格B |單元格C |}
{| border="1" |- |格式代碼(不會顯示) |這些內容 |(包括豎線符號在內) |全都會顯示在 |單元格1裡 ||單元格2 |- |格式代碼 |後面這些內容 ||格式代碼|會顯示在 |單元格4裡 |} | ||||
|
不過格式代碼也有其用處:
{| border="1" |- | 單元格1(無格式代碼) |- | style="text-align:right;" | 單元格2(靠右對齊) | style="background:#FFB6C1;" | 單元格3(紅底色) |} |
|
謹記:每個單元格的代碼內單獨的豎線符號不可以出現超過兩次!
|
”替換為“! scope="col" |
”,以及將“||
”替換為“!! scope="col" |
”。表頭單元格的顯示效果通常會與正常的單元格不同,實際效果視乎瀏覽器而定,不過往往會是粗體且居中對齊。在採用“class="wikitable"
”等類別標記的維基格式表格裡,不需要加入“scope="col"
”這段代碼。{|
|+ 表格標題
! scope="col" | 直列表頭1
! scope="col" | 直列標題2
! scope="col" | 直列標題3
|-
| 單元格1 || 單元格2 || 單元格3
|-
| 單元格A
| 單元格B
| 單元格C
|}
|
”替換為“! scope="row" |
”,並且將同一行隨後的單元格移至下一行。在採用“class="wikitable"
”等類別標記的維基格式表格裡,不需要加入“scope="row"
”這段代碼。{| |+ 表格標題 ! scope="col" | 直列表頭1 ! scope="col" | 直列表頭2 ! scope="col" | 直列表頭3 |- ! scope="row" | 橫行表頭1 | 單元格2 || 單元格3 |- ! scope="row" | 橫行表頭A | 單元格B | 單元格C |}
{| border="1"
|+ 表格標題
! scope="col" | 直列表頭1
! scope="col" | 直列表頭2
! scope="col" | 直列表頭3
|-
! scope="row" | 橫行表頭1
| 單元格2 || 單元格3
|-
! scope="row" | 橫行表頭A
| 單元格B
| 單元格C
|}
|
|
要將所有單元格的邊框寬度縮小至1像素的話,可以在表格首行加入一段代碼來指定:
{| border="1" style="border-collapse:collapse;"
|+ 表格標題
! scope="col" | 直列表頭1
! scope="col" | 直列表頭2
! scope="col" | 直列表頭3
|-
! scope="row" | 橫行表頭1
| 單元格2 || 單元格3
|-
! scope="row" | 橫行表頭A
| 單元格B
| 單元格C
|}
|
|
不過最簡單的方法是用維基百科的表格用外部樣式表,例如“class="wikitable"
”。
{| border="1" class="wikitable"
|+ 表格標題
! 直列表頭1
! 直列表頭2
! 直列表頭3
|-
! 橫行表頭1
| 單元格2 || 單元格3
|-
! 橫行表頭A
| 單元格B
| 單元格C
|}
|
|
表格和單元格可用的參數與HTML的一樣,見www<colgroup>
和<col>
這兩個元素。Mediawiki從版本號1.18起會支援<thead>
、<tbody>
和<tfoot>
。維基百科目前版本號是1.44.0-wmf.2 (8fd6c9c)。
即使所有單元格都不填上內容,表格仍然有其用處。例如可以用參數來更改單元格的底色,將表格變成圖表,見元維基的8 × 8五格骨牌範例。與真正的圖像相比,用表格製成的“圖像”較容易修改。
每一行的單元格數目必須和其餘橫行一樣,這樣子表格裡直列的數目才會保持一致。如果要將單元格置空,應該輸入不換行空格“
”,以確保這個單元格依然會顯示出來。要在單元格裡顯示豎線符號的話,輸入“<nowiki>|</nowiki>
”或者“|
”。
運用“colspan”和“rowspan”可以將不同直列或橫行的單元格合併,見下面的混雜形式示例。不過要注意這樣做的壞處是表格會無法正常地進行排序。
以下兩組代碼的效果相同,可因應每行有多少個單元格、每個單元格內有多少內容來決定用哪一種代碼為佳。留意顯示效果,這個表格是沒有邊框的:
{| | A | B |- | C | D |} {| | A || B |- | C || D |} |
|
留意以下示例使用了“class="wikitable"
”調用維基百科的表格用外部樣式表,調整表格的外觀。這段代碼添加了邊框和底色,並且將表頭文字變成了粗體。
{| class="wikitable" style="text-align:center; width:200px; height:200px;" |+ 乘數表 |- ! × ! 1 ! 2 ! 3 |- ! 1 | 1 || 2 || 3 |- ! 2 | 2 || 4 || 6 |- ! 3 | 3 || 6 || 9 |- ! 4 | 4 || 8 || 12 |- ! 5 | 5 || 10 || 15 |} |
|
表格整體的寬度和高度以及每行的行高全都可以指定。要指定直列的列寬,只需要指定該列任一單元格的寬度就可以。如果有一些直列的列寬或者有一些橫行的行高沒有特別指定的話,就會陷入不明狀態,實際效果視乎瀏覽器而定。
{| style="width:60%; height:200px" border="1"</span> |- | abc || def || ghi |- style="height:100px;"</span> | jkl || style="width:200px;" |mno || pqr |- | stu || vwx || yz |} |
|
要注意在某些瀏覽器裡像“style="width:75%;"
”這樣的文內CSS會無法生效。如果要確保代碼的兼容性,像“width="75%"
”這種擁有同等功能的舊式寫法可能會在較多的瀏覽器裡生效。
表格的邊框預設為一種複雜且有底色的雙行線(這是HTML的預設),不過也可以利用格式參數(例如“style="border:1px solid darkgray"”)將邊框改為一條窄小的實線,例子如下。(注意:在設定邊框的同時也想指定單元格邊距(cellpadding)或單元格間距(cellspacing)的話,就必須運用以下格式。)
留意最後一行的文字用“align="center"”改為居中對齊,但星星圖片並無居中。
上面的“File:”代碼只要不輸入thumb參數的話,便不會在表格裡顯示圖片標題(除非滑鼠游標停留在圖片上)。這裡的邊框顏色“darkgray”與條目裡的普通表格和信息框的一樣,不過也可以換成其他顏色名稱(例如“style="border:1px solid darkgreen;"”)或十六進制編碼(例如“
直列的格式代碼(以豎線符號“|……|”包圍的內容)可以輸入格式參數,指定每個單元格的邊框樣式,例子如下:
{| cellpadding="2" style="border:1px solid darkgray;" ! width="140" | 左 ! width="150" | 中 ! width="130" | 右 |- align="center" | style="border:1px solid blue;"|</span> [[File:StarIconBronze.png|120px]] | style="border:1px solid #777777;"|</span> [[File:StarIconGold.png|120px|這是滑鼠游標停留在圖片上時會出現的文字]] | style="border:1px solid #22AA55;"| [[File:StarIconGreen.png|120px|綠色星星]] |- align="center" | 棕色星星 || 金色星星 || 綠色星星 |} | |||||||||
|
留意只有放了圖片的單元格才有個別的邊框,放了文字的單元格並沒有。
十六進制編碼中越小的就越接近黑色(例如“
表格本身、橫行的內容和單元格的內容的定位全都可以調校,但沒有參數可以同時指定表格裡所有內容應如何定位。見元維基上的表格範例。
2009年4月之前曾一度建議不要用“float”(浮動)來指定表格的定位,不過現在在大字體狀態下“float”也不一定會破壞頁面的顯示效果。在下面的“居中的浮動圖片”章節可以看到浮動圖片的顯示效果。
floatleft
和floatright
(區分大小寫)這兩個表格類別可以讓表格浮動,同時調整外邊距(margin),讓表格不會緊貼週圍的文字。floatleft
會讓表格向左浮動並調整右外邊距;floatright
則相反。例子如下:
本段落出現於表格之前。因為格式代碼“rowspan=2”會讓第2列裡的文字佔用兩個橫行,因此第2行沒有出現“第2列”的文字,只有“第1列”和“第3列”。 {| class="wikitable floatright" | 第1列第1行 | rowspan="2" | 第2列第1(及第2)行 | 第3列第1行 |- | 第1列第2行 | 第3列第2行 |} {| class="wikitable floatleft" | 第1列第1行 | rowspan="2" | 第2列第1(及第2)行 | 第3列第1行 |- | 第1列第2行 | 第3列第2行 |} 本文為測試文字…… | ||||||||||
本段落出現於表格之前。因為格式代碼“rowspan=2”會讓第2列裡的文字佔用兩個橫行,因此第2行沒有出現“第2列”的文字,只有“第1列”和“第3列”。
本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。本文为測試文字。这段文字用于说明格式,请勿删除。這段文字用於說明格式,請勿刪除。海納百川,有容乃大。維基百科,自由的百科全書。 |
表格可以居中定位,但並不意味著同時也會“浮動”;即是說,文字並不會就此出現於表格兩邊。竅門是要使用“{| style="margin:1em auto 1em auto;"
”這段代碼。
表格之前的文字…… {| class="wikitable" style="margin:1em auto 1em auto;" |+ '''單元格靠左對齊,表格居中''' ! scope="col" | Duis ! scope="col" | aute ! scope="col" | irure |- | dolor || in reprehenderit || in voluptate velit |- | esse cillum dolore || eu fugiat nulla || pariatur. |} ……表格之後的文字 |
表格之前的文字……
……表格之後的文字 |
注意:使用嵌套表格會造成無障礙方面的問題,所以應該盡量避免。 |
下面的示例將七個不同的表格(藍色)嵌套了在另一個表格的單元格內。表格|A|和|B|B|自動變成直向排列,但是單元格裡的文字正常應該橫向排列。表格|C|和|D|則利用了“float”,在單元格內各自擺放於一邊。同樣的方法也可用在圖表上。嵌套表格的代碼必須在換行後才能輸入。
{| border="1" | α | style="text-align:center;"| 單元格2 {| border="2" style="background:#ABCDEF;" <!-- 嵌套表格的代碼必須在換行後才能輸入 --> | 嵌套 |- | 表格 |} | style="vertical-align:bottom;"| 回到原來的表格 | style="width:100px;" | {| border="2" style="background:#ABCDEF;" | A |} {| border="2" style="background:#ABCDEF;" | B || B |} | style="width:50px;" | {| border="2" style="background:#ABCDEF; float:left;" | C |} {| border="2" style="background:#ABCDEF; float:right;" | D |} |} |
|
表格可以整個放進捲動列表裡,這樣的話新的橫行出現於熒幕上時舊的也會同時消失。條目內容應該在不同的瀏覽介面上都能輕鬆取閱,但因為捲動表格會隱藏部分內容,所以Wikipedia:格式手冊 (捲動列表)不建議在條目名字空間內使用捲動表格,不過在維基百科別的名字空間內則允許。
<div style="width:75%; height:10em; overflow:auto; border:2px solid #088;"> {| style="width:75%; height:200px" border="1" |- | abc || def || ghi |- style="height:100px;" | jkl || style="width:200px;" | mno || pqr |- | stu || vwx || yz |} </div> | |||||||||
|
下面列出了指定單元格裡文字和背景顏色的兩種方法:
{| | style="background:red; color:white" | abc | def | bgcolor="red" | <span style="color:white;"> ghi </span> | jkl |} |
|
和其他參數一樣,也可以對一整行或者整個表格指定顏色,對橫行指定的參數優先於表格的參數,而對單元格指定的參數也會凌駕橫行的參數。(留意沒有任何簡易的方法可以對一整個直列指定顏色,只可以對直列裡的每個單元格逐個指定。可考慮使用編輯工具解決。)
{| style="background:yellow; color:green" |- | stu || style="background:silver" | vwx || yz |- style="background:red; color:white" | stu || style="background:silver" | vwx || yz |- | stu || style="background:silver" | vwx || yz |} |
|
要讓表格和頁面背景看起來一致的話,可以用“style="background:none;"
”或者“style="background:transparent;"
”。(注意:“style="background:inherit;"
”在某些瀏覽器裡無法生效,包括IE6!)
要強制讓單元格的顏色變得和class="wikitable"
模板裡的預設顏色一樣的話,可以將“style="background:
f2f2f2"
”用於較深色的表頭文字,而較淺色的主體文字則使用“style="background:
f9f9f9"
”。另見:en:Wikipedia:Background color、顏色列表、網頁顏色以及Template:Coltit。
在單元格的開頭可以輸入參數,之後要加上豎線符號,例如“style="background:red;"|
”會將單元格的底色設為紅色。要指定更多參數的話,記得在各參數之間留有空格。
{| style="color:white" |- | style="background:red;"|單元格1 | style="width:300px; background:blue;"|單元格2 | style="background:green;"|單元格3 |} |
|
表格內容在垂直對齊方面預設為居中,於是看上去會有一點奇怪:
{| border="1" cellpadding="2" style="width:400px;" |- ! scope="row" style="width:10%;"| 橫行表頭 | style="width:70%;"|較長的文字:本文為測試文字…… | style="width:20%;"|較短的文字 |- ! scope="row" | 橫行表頭 | 本文為測試文字…… | 較短的文字 |} |
|
要避免這種情況的話,可以將“valign="top"”參數應用於橫行(不過要逐行指定)。
{| border="1" cellpadding="2" style="width:400px;" |- valign="top" ! scope="row" style="width:10%;" | 橫行表頭 | style="width:70%;"|較長的文字:本文為測試文字…… | style="width:20%;"|較短的文字 |- valign="top" ! scope="row" | 橫行表頭 | 本文為測試文字…… | 較短的文字 |} |
|
單元格的內容可以用CSS樣式“padding-left
”縮進。
{| border="1" cellpadding="2" width="300px" |- | 沒有縮進的單元格內容:本文為測試文字…… |- | style="padding-left:2em" | 已縮進的內容:本文為測試文字…… |} |
|
直列的列寬預設為該列裡最寬內容的寬度,要強制指定列寬的話,可參考以下示例。留意文字會自動換行。
{| border="1" cellpadding="2" ! scope="col" style="width:50px;" | 名稱 ! scope="col" style="width:225px;" | 效用 ! scope="col" style="width:225px;" | 見於哪幾款遊戲? |- | 精靈球 || 普通精靈球 || 所有版本 |- | 超級球 || 比普通精靈球更佳 || 所有版本 |} |
|
要在沒有直列表頭的表格裡指定列寬的話,可以在每列的首個單元格裡設定寬度。
{| border="1" cellpadding="2" |- | style="width:100pt;" | 本列寬度為100點 | style="width:200pt;" | 本列寬度為200點 | style="width:300pt;" | 本列寬度為300點 |- | blah || blih || bluh |} | ||||||
|
另外也可以用百分比來指定,例如要將表格分成兩個均等的直列,可以把其中一個列寬指定為“width:50%
”。指定列寬的其中一個用處是可以將排列在一起的表格的直列對齊:
|
在寬度橫跨整個頁面的表格裡,一些較窄的單元格內的文字常常會自動換行。要讓一整個直列都不再自動換行的話,可以在該列最寬或者內容最長的單元格裡(不可以是表頭單元格)用“style="white-space:nowrap"
”,這樣子會對整個直列都有效。
不使用“nowrap”時,顯示如下: | 使用“nowrap”後,會顯示為: | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
注意:使用與以下示例類似的表格會造成無障礙方面的問題,所以應該盡量避免。例如嵌套表格(即表格內含其他表格)應盡量分拆成不同的表格。 |
以下是個更深入的例子,展示了更多製作表格時可用的功能。不過要留意一點,使用“colspan”和“rowspan”合併單元格後,表格會無法正常地進行排序。
用戶可以自行製作表格試驗以下功能,看一看會得到甚麼效果。這些技巧並非在所有情況下都適用,舉例來說,即使可以添加底色也不代表每次都應該這麼做。表格代碼應盡量保持簡潔,方便其他也在編輯條目的人。總而言之,下面的例子說明了製作表格時可以達到何種效果。
居中表格之前的文字…… {| border="1" cellpadding="5" cellspacing="0" align="center" |+ '''表格範例''' |- ! style="background:#efefef;" | 表頭1 ! colspan="2" style="background:#ffdead;" | 表頭2 |- | 左上 | | rowspan="2" style="border-bottom:3px solid grey;" valign="top" | 右邊 |- | style="border-bottom:3px solid grey;" | 左下 | style="border-bottom:3px solid grey;" | 中下 |- | colspan="3" align="center" | 嵌套表格之前的文字…… {| border="0" |+ ''表格裡的表格'' |- | align="center" width="150" | [[File:Wiki.png]] | align="center" width="150" | [[File:Wiki zh-hans.png]] |- | align="center" colspan="2" style="border-top:1px solid red;<!-- --> border-right:1px solid red; border-bottom:2px solid red;<!-- --> border-left:1px solid red;" | 兩個維基百科的標誌 |} ……嵌套表格之後的文字 |} ……居中表格之後的文字 | |||||||||||||||
居中表格之前的文字……
……居中表格之後的文字 |
表格可以用來包圍圖片,這樣的話就能向頁面中間浮動(例如用“style="float:right;"”),不過表格的外邊距、邊框和字體大小都必須與圖片的正常顯示方式吻合。“File:”代碼的thumb縮圖參數(雖然在自動縮圖時寬度會按用戶設定而定)會強制性地添加頗大的左外邊距,擠走週圍的文字,所以可以用center參數來抑制這個左外邊距製造的空白。不過有時候“center”會將圖片標題擠到下一行去(在居中的框“[]”下面),所以也可以略去“thumb”,改為直接指定圖片大小、添加灰色(
{| style="float:right; border:1px solid #BBB; margin:.46em 0 0 .2em;" |- style="font-size:86%;" | valign="top" |[[File:DuraEuropos-TempleOfBel.jpg|180px]]<!-- --><br />(浮動的)[[柏爾 (神話)|]]神殿 |}
浮動表格裡的文字字體大小指定為“style="font-size:86%;"”。這個圖片表格就和正常的圖片框一樣,也會浮動,不過同時容許調整圖片的左外邊距(見下面的浮動圖片示例)。
信息框A | |
---|---|
有了這個信息框範例便可以看到旁邊的浮動圖片框如何向中間靠攏。 |
(浮動的)柏爾神殿 |
圖片標題可以略去,或者可以移除thumb參數,隱藏標題,直到滑鼠游標停留在圖片上時才顯示。不巧的是,(用來顯示圖片標題的)thumb參數同時也負責自動縮圖功能,會將圖片縮小至用戶設定的大小。要隱藏標題同時保留自動縮圖功能的話,可以將“|thumb|
”替換為“|frameless|right|
”。
圖片如果指定了left參數,就會有頗大的右外邊距(即是和right參數的左外邊距剛好相反),所以要向左浮動的話就需要將圖片放在表格裡,表格指定為“style="float:left; margin:0.46em 0.2em"”。
別忘記,在圖片表格以外的時候,right參數會令圖片定位在信息框上面或者下面,但就算不會在信息框旁邊浮動。
謹記這條“優先法則”:首先是指定了“right|”的信息框或圖片,然後是浮動圖片表格,最後如果還有空位的話便是包圍著這些物件的文字。假如第一個字太長,就不會有任何文字可以填補左邊的空隙,所以要小心避免製造這種“鋸齒狀的左邊空白”,即是說浮動表格旁邊剩下的空位塞不下任何文字。
如果有好幾個單項圖片表格堆疊在一起的話,這些表格會在頁面上浮動並按頁面寬度定位。週圍的文字會被擠壓,在自動定位的情況下把這些浮動表格盡量塞進去,到最後左邊還能塞下文字的話便放進去並自動換行。
……逐個塞到這一邊來 |
……全都按float:right…… |
這些圖片…… |
自動定位這一點可以用來建立圖片的“浮動展示廊”:一組共20個浮動表格,可以像文字填塞空間般一個一個先從右至左、再從上而下地排列在頁面裡(留意是從右至左,和正常方向相反)。要循正常方向(即從左至右)定位的話,可以指定表格頂部的參數為“style="float:left; margin:0.46em 0.2em"”,將所有的浮動表格變為向左浮動。只要活用多個浮動圖片,就能在文字週圍做到更彈性的圖片排版效果。
{| border="1" cellpadding="5" cellspacing="0" |- | 第1列 || 第2列 || 第3列 |- | rowspan="2" | A | colspan="2" style="text-align:center;" | B |- | C <!-- 單元格A已佔用第1列 --> | D |- | E | rowspan="2" colspan="2" style="text-align:center;" |F |- | G <!-- 單元格F已佔用第2和第3列 --> |- | colspan="3" style="text-align:center;" | H |} |
|
留意對單元格G用“rowspan="2"
”加上對單元格F用“rowspan="3"
”並不會在G和F下面再增添一行,因為這樣做的話該行所有(隱含的)單元格都是置空的。同理,如果同一直列的單元格統統都是空的,就整列都不會顯示。非置空和置空的單元格之間的邊框也可能不會顯示(視乎瀏覽器而定),所以在空的單元格裡要用“
”作佔位內容。
下面這個方法可以讓一列數字的小數點對齊:
{| cellpadding="0" cellspacing="0" | align="right" | 432 || .1 |- | align="right" | 43 || .21 |- | align="right" | 4 || .321 |} |
|
即使這一列數字是在含有單元格邊距(cellpadding)或單元格間矩(cellspacing)的表格裡,還是可以在對齊小數點的同時也避免中間出現礙眼的空隙。在每個數字所出現的單元格裡各自再嵌入一個表格,並指定列寬,這些列寬必須全部一樣。(假如用這個方法還是無法對齊小數點,最外層的表格可能是列寬太小了。如果是因為這樣的話,就用參數指定將列寬加大。)
{| border="1" cellpadding="4" cellspacing="2" | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align:right; width:50%;" | 432 || .1 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align:right; width:50%;" | 43 || .21 |} |- | {| cellpadding="0" cellspacing="0" style="width:100px;" |- | style="text-align:right; width:50%;" | 4 || .321 |} |} |
|
如果是預格式化文字的話,甚至可以摒棄表格,只需要每行用空格開頭,然後用空格來排列數字:
代碼(只是用了空格!): | 顯示為: | |
---|---|---|
432.1 43.21 4.321 |
432.1 43.21 4.321 |
不過要留意的是,在條目裡要用預格式化的文字的話最好有充分的理由。
在表格代碼第一行的“{|”後面,除了可以直接指定樣式外,還可以指定類別。這些類別同樣可以用來設置樣式。這些類別的樣式可以用好幾種方法指定:
在“{|
”後面指定適當類別的話,就不用再記住要輸入哪一些表格參數。這樣做會讓表格的樣式變得統一,想修正樣式問題或者同時修改使用同一類別的多個表格,只需要修改類別本身就可以。
只要套用“class="wikitable" ”,便會把表格的文內CSS替換掉……
|
……變成這樣 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{| cellpadding="2" |+ 乘數表 |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |} |
|
{| |+ 乘數表 |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |} |
|
這是因為MediaWiki:Common.css裡的wikitable類別含有幾項名為“table.wikitable”的CSS樣式規則。只要將表格指定為這個類別,這些樣式規則便統統會應用於表格上。之後可以按需要再添加其他樣式規則,這些規則會凌駕於類別所指定的那一批,讓你可以在類別樣式的基礎上再隨意疊加其他樣式。
{| class="wikitable" style="font-style:italic; <!-- -->font-size:120%; border:3px dashed red;" |+ 乘數表 |- ! scope="col" | × ! scope="col" | 1 ! scope="col" | 2 ! scope="col" | 3 |- ! scope="row" | 1 | 1 || 2 || 3 |- ! scope="row" | 2 | 2 || 4 || 6 |- ! scope="row" | 3 | 3 || 6 || 9 |- ! scope="row" | 4 | 4 || 8 || 12 |- ! scope="row" | 5 | 5 || 10 || 15 |} |
|
留意上面的表格雖然保留了wikitable類別的灰色底色,表頭文字也仍然是粗體且居中,但是文字格式已經被表格本身的style聲明優先指定了。現在表格裡所有的文字都變成了斜體、字體比原來的大了20%,wikitable類別本來指定的外框也變成了紅色的虛線框。
當然,這只有在支援文內CSS的瀏覽器裡才會有效。如果要確保一定生效的話,可以用XHTML標記(例如用“<big>
”代替“font-size:120%”)或者維基代碼(例如用“''text''
”代替“font-style:italic”)。
類別也可以用來將表格摺疊起來,讓表格內容預設為隱藏。用collapsible類別就可以啟用摺疊功能。指定為“collapsible”的表格預設為張開的狀態,想改作別的顯示狀態的話,可以再加上collapsed或者autocollapse類別(後者是指,除了這個表格之外同一頁面還有超過三個摺疊表格的話,這個表格就用摺疊狀態顯示)。摺疊表格必須含有表頭橫行,因為“顯示”和“隱藏”連結會顯示在這一行裡。例子如下:
{| class="wikitable collapsible collapsed" ! 表頭文字 |- | 預設為隱藏的內容 |- | 更多會隱藏的內容 |} |
|
另外還可以用這兩組代碼(在MediaWiki版本號1.19rc1下可使用無誤,見testwiki:User:Krinkle/CollapsingTestpageMw):
{| class="wikitable sortable mw-collapsible" … |} |
| ||||
{| class="wikitable sortable mw-collapsible mw-collapsed" … |} |
|
要啟用表格的排序功能,可以添加“class="sortable"
”這段代碼,詳見Help:排序。排序功能用處極大,所以在製作表格時最好謹記這項功能有甚麼是可以做到和無法做到的,例如:
縮略內容可以在表格以外用索引的形式完整展示。
{| class="wikitable sortable" border="1" |+ 可排序的表格 |- ! scope="col" | 字母排序 ! scope="col" | 數字排序 ! scope="col" | 日期排序 ! scope="col" class="unsortable" | 不可排序 |- | d || 20 || 2008-11-24 || 這個 |- | b || 8 || 2004-03-01 || 直列 |- | a || 6 || 1979-07-23 || 設定為 |- | c || 4 || 1492-12-08 || 不可 |- | e || 0 || 1601-08-13 || 排序 |} |
|
參見Help:排序。
可排序表格也可以同時設定為可摺疊,只需要用“{| class="wikitable sortable collapsible"
”這段代碼。將上面的表格設為可摺疊的話會變成下面這樣:
{| class="wikitable sortable collapsible" border="1" |+ 可排序兼可摺疊的表格 |- ! scope="col" | 字母排序 ! scope="col" | 數字排序 ! scope="col" | 日期排序 ! scope="col" class="unsortable" | 不可排序 |- | d || 20 || 2008-11-24 || 這個 |- | b || 8 || 2004-03-01 || 直列 |- | a || 6 || 1979-07-23 || 設定為 |- | c || 4 || 1492-12-08 || 不可 |- | e || 0 || 1601-08-13 || 排序 |} |
|
想將表格預設為摺疊狀態的話,可以將“{| class="wikitable sortable collapsible collapsed"
”改成“{| class="wikitable sortable collapsible"
”。
要將章節連結(或地圖裡的連結)指向表格中的特定橫行的話,可以在該橫行開頭的“|-
”後加上“id="section link anchor name"
”這個參數,添加HTML錨:
|- id="章節連結的名稱"
注意錨的名稱不能與同一頁的其他錨重複(也包括各章節標題),以免得出不合規格的XHTML。
在按下地圖裡含連結的國家名稱時,例如代碼為“[[#Table_row_11|斯洛文尼亞]]
”的連結,因為這個連結指向表格中代碼為“|- id="Table_row_11"
”的錨,於是會捲動頁面,將目標橫行顯示在最上面。
|
↦ |
|
不管是用維基代碼還是用HTML製作的表格也好,表格裡每個橫行的代碼都會十分類似(有時甚至不同的表格也是這樣)。相似的地方有:
在這種情況下,可考慮建立模板來生成表格橫行所需的代碼,用要列出的內容作為參數。這樣做有很多好處:
<span style="display:none">
標籤來分別指定排序時和正常顯示時用的格式以下例子套用了Help:表格/example row template這個模板:
{| class="wikitable sortable" border="1" |- ! scope="col" | a ! scope="col" | b ! scope="col" | a/b {{Help:表格/example row template| 50|200}} {{Help:表格/example row template| 8| 11}} {{Help:表格/example row template|1000| 81}} |} |
|
要用解析器函數決定是否顯示表格中某特定橫行的話,可以用像這樣的代碼:
代碼 | 效果(留意第2行並沒有顯示) | |||||
---|---|---|---|---|---|---|
{| class="wikitable" border="1" <!-- 第1行會顯示,因為這個“1”的邏輯值為真。 --> {{ #if:1|{{!}}- ! scope="row" {{!}} 第1行第1列 <!-- 所有的“{{!}}”都會替換為豎線符號“|”,因為Template:!這個模板的內容只是“|”。 --> {{!}}第1行第2列}} <!-- 第2行並不會顯示,因為“:”和“|”之間的空格的邏輯值為假。 --> {{ #if: |{{!}}- ! scope="row" {{!}} 第2行第1列 {{!}}第2行第2列}} <!-- 第3行會如常顯示。 --> |- ! scope="row" {{!}} 第3行第1列 | 第3行第2列 |} |
|
MediaWiki也支援用下列方法製作表格:
這三種方法MediaWiki都支援,而且(現時)都會生成符合規格的HTML代碼,不過豎線符號系列代碼是最簡單的一種。另外,HTML加“|”豎線符號系列代碼這種混合用法(即是沒有正確地關閉的“|”和“|-”標籤),各瀏覽器將來不一定仍會支援,尤其是用可上網的移動裝置瀏覽的時候。
參見HTML元素#表格。注意MediaWiki現時並不支援<thead>
、<tbody>
、<tfoot>
、<colgroup>
、<col>
這幾個元素。
XHTML | 維基式豎線符號系列代碼 | |||||
---|---|---|---|---|---|---|
表格 | <table></table> |
{| |} | ||||
表格標題 | <caption>表格標題</caption> |
|+ 表格標題 | ||||
橫行 | <tr></tr> |
|- | ||||
主體單元格 | <td>單元格1</td><td>單元格2</td> <td>單元格3</td> |
| 單元格1 || 單元格2 | 單元格3 | ||||
表頭單元格 | <th scope="col">直列表頭</th> <th scope="row">橫行表頭</th> |
! scope="col" | 直列表頭 ! scope="row" | 橫行表頭 | ||||
表格範例 |
| |||||
<table> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </table> |
{| | 1 || 2 |- | 3 || 4 |} | |||||
好處 |
|
| ||||
壞處 |
|
| ||||
XHTML | 維基式豎線符號系列代碼 |
由馬格奈斯·曼司克(Magnus Manske)開發的豎線符號系列代碼用豎線符號「|」來代替HTML標籤。這個網上腳本可以將HTML表格轉換成用豎線符號系列代碼寫成的表格。
在這套代碼裡,豎線符號必須在新一行開頭輸入,除了用來將參數和內容分隔開,或者在同一行裡用“||
”分隔開不同單元格的時候。參數是選填的。
表格用以下代碼定義:
{| 參數 |}
生成的HTML代碼是“<table 參數>...</table>
”。
在表格內,第一行的HTML標籤<tr>
會自動生成。要添加新行的話,可以用:
|-
這樣會生成另一個“<tr>
”標籤。
參數可以這樣添加:
|- 參數
生成的代碼是“<tr 參數>...</tr>
”。
注意:
<td>
標籤的代碼出現的地方,<tr>
這個開標籤會自動生成。</tr>
和</table>
標籤的代碼出現的地方,</tr>
這個關標籤會自動生成。單元格可以這樣生成:
|單元格1 |單元格2 |單元格3
又或者像這樣:
|單元格1||單元格2||單元格3
上面兩組代碼都會生成“<td>單元格1</td>
<td>單元格2</td>
<td>單元格3</td>
”。在這裡“||”等同於換行加“|”。
單元格裡的參數可以這樣指定:
|參數|單元格1||參數|單元格2||參數|單元格3
這樣會生成:
<td 參數>單元格1</td>
<td 參數>單元格2</td>
<td 參數>單元格3</td>
表頭的代碼會生成<th>
,功能和<td>
一樣,只是樣式不同。“!”取代了橫行開頭的“|”,“!!”則取代了“||”。參數依然用“|”與內容分隔開。例子如下:
!參數|單元格1
<caption>
標籤由以下代碼生成:
|+ 表格標題
這樣會生成“<caption>表格標題</caption>
”這段HTML代碼。
同樣地,也可以在這裡指定參數:
|+ 參數|表格標題
生成的代碼是“<caption 參數>表格標題</caption>
”。
只要在表格的開頭添加概述屬性,就可以生成表格概述。螢幕閱讀器可以利用這個概述將表格的大綱提供給有視力障礙的讀者,讓讀者不用聽一遍整個表格的內容。例如這段代碼:
{| summary="Artistic renderings of Germania became more triumphant and monumental." | [[File:Philipp Veit 008.jpg|thumb|upright|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]] | [[File:Image Germania (painting).jpg|thumb|upright|alt=Robed woman, standing, holding a sword|Philipp Veit, ''Germania'', 1848]] | [[File:Niederwald memorial 2.JPG|thumb|upright|alt=Monument of robed woman, standing, holding a crown in one hand and a partly sheathed sword in another|Johannes Schilling, ''Germania'', 1871–83]] |}
會顯示為:
{{Table cell templates}}提供了一系列的模板,可以用來統一地修改單元格的文字和顏色,例如用“yes”、“no”、“n/a”這些字詞。
要為正方形的螢幕或視窗製作表格的話,可以先用卷尺量度你的長方形螢幕的高度,然後用這個高度來量度螢幕下方,看看如果螢幕變成正方形的話會有多寬。量度時用筆或者膠帶標記好這個寬度,接下來把瀏覽器的視窗大小調整到這個標記的位置,這樣的話這個視窗就是準確的正方形了。
正方形的螢幕和視窗容納不了專為長方形和寬闊的螢幕而設計的表格和圖像廊。如果有表格或圖像廊是比螢幕還要寬的話,就會令每一行文字也變得特別寬。下面這個圖像廊用的像素大小是在量度了正方形視窗之後定下來的:
以下這段代碼:
{| style="background: transparent; margin: auto;" | [[File:Some window blinds.JPG|192x155px|thumb|left|各種百葉窗]] | [[File:Vert-blinds-2145-rs.jpg|192x170px|thumb|left|垂直排列的百葉窗]] | [[File:Gardine.jpg|192x155px|thumb|left|這個不是百葉窗]] |} {| style="background: transparent; margin: auto;" | [[File:Vorhang.jpg|192x155px|thumb|left|結實的窗簾]] | [[File:Jalousie-1.jpg|328x55px|thumb|left|橫向排列的百葉窗]] |} {| style="background: transparent; margin: auto;" | [[File:Some window blinds.JPG|205px|thumb|left|窗簾、百葉窗;垂直和橫向排列的百葉窗]] | [[File:Miniblinds detail of mechanism.jpg|388px|thumb|left|<!-- -->小型百葉窗附帶的轉桿的近攝圖]] |}
會顯示為:
有些情況下(例如表格內容大部分是數字時),將文字從左向右或右向左的排列方式,改為上至下或下至上會比較好。現時,不同的瀏覽器在HTML或CSS方面對這種樣式的支援程度各不相同(Internet Explorer是當中少數在CSS方面支援這種樣式的瀏覽器之一,不過是非標準的支援)。另一種方法則在絕大部分的瀏覽器裡都通行,就是用圖片來代替文字。例如下面的表格用了SVG圖片來取代文字,於是直列表頭變成從下向上排列:
通常這樣做會有個問題,就是讀者按下圖片後會到不同的頁面去。要解決這個問題,又或者要將讀者指向其他頁面的話,可以用“link
”參數。直列表頭可以用這段代碼:
! style="width:3em;" | [[File:wpvg vg project.svg|link=xxxx]]
這樣的話圖片便會連結到“xxxx”指定的頁面。
如果link
是置空的話(例如“[[File:wpvg hd date page.svg|link=]]
”),讀者按下圖片後並不會到任何頁面去。要用圖片當連結的話,或者可以將圖片裡的文字弄成藍色,提示讀者。還有,圖片格式建議使用SVG,這樣的話圖片無論如何放大或縮小都不會變形。
不過更大的問題是,視障人士無法利用螢幕閱讀器和類似的裝置檢閱這種“轉動後的文字”,於是就不能“閱讀”這些直行表頭了。搜尋引擎的自動化網絡爬蟲也同樣無法檢閱這些文字。
表格可以用來將圖片並列展示,就像圖像廊一樣(用<gallery>
的話),不過圖片會大一點,各圖片之間的空隙也比較小。
用“class="wikitable"”就可以設定好樣式,生成表格裡各圖片週圍的窄線框,製成簡單的帶框圖像廊:
使用普通的<gallery>
標籤的另一個問題是,2007年到2008年時,這樣做會讓每行可放上4張圖片,超越了維基百科條目垂直顯示(譬如800 × 600像素大小)時右邊的頁邊,除非圖像廊只有三張圖片或以下。另一方面,表格裡用的是正常的圖片連結,可以自設圖片大小,例如“"[[Image:XXX.jpg|130px]]”,這樣的話便可以在寬度為600像素的頁面裡用表格的一行展示4張圖片(在螢幕大小為800 × 600像素的情況下)。
{| class="wikitable" border="1" |- |<!--第1列-->[[File:Worms 01.jpg|130px]] |<!--第2列-->[[File:Worms Wappen 2005-05-27.jpg|125px]] |<!--第3列-->[[File:Liberty-statue-with-manhattan.jpg|125px]] |<!--第4列-->[[File:New-York-Jan2005.jpg|125px]] |- |<!--第1列-->通向沃爾姆斯的尼伯龍根橋 |<!--第2列-->沃爾姆斯及其姊妹城市 |<!--第3列-->自由神像 |<!--第4列-->紐約市 |} | ||||||||
|
用表格來展示圖片的另一好處是,和<gallery>
的樣式不同,表格裡的圖片如果要限制在某一高度內的話,可以用參數調整。圖片大小參數用兩個數字指定(例如“199x95px”)的話,第二個數字便會限定高度。
{| class="wikitable" border="1" |- |<!--第1列-->[[File:Liberty-statue-with-manhattan.jpg|199x95px]] |<!--第2列-->[[File:New-York-Jan2005.jpg|199x95px]] |<!--第3列-->[[File:Gold star on blue.gif|199x95px]] |<!--第4列-->[[File:Worms 01.jpg|100x95px]]<!--尺寸較小--> |- |<!--第1列-->自由神像 |<!--第2列-->紐約市 |<!--第3列-->藍色背景下的星星 |<!--第4列-->通向沃爾姆斯的橋 |} |
留意下面三張大小指定為“199x95px”的圖片顯示為同一高度,都是95像素高(第四張是故意弄得比較小的)。這個“95px”限制了圖片的高度,而“199x”則可以容納不同的寬度(甚至是“999x”):
|
即是說,指定大小參數“199x95px”(或者“999x95px”)可以達到<gallery>
標籤做不到的自動調校高度的效果,可以將縮圖的高度擴大(像“199x105px”),甚至可以故意將某些圖片弄得比其他95像素高的圖片要小。高度變很小(例如“70px”)的話,表格內便可以顯示更多圖片:
{| class="wikitable" border="1" |- |<!--第1列-->[[File:Liberty-statue-with-manhattan.jpg|199x70px]] |<!--第2列-->[[File:Gold star on blue.gif|199x70px]] |<!--第3列-->[[File:New-York-Jan2005.jpg|199x70px]] |<!--第4列-->[[File:Gold star on deep red.gif|199x70px]] |<!--第5列-->[[File:Worms 01.jpg|199x70px]]<!--同一高度--> |<!--第6列-->[[File:Gold star on blue.gif|199x70px]] |} |
上面的維基代碼會顯示為下面這個有六行的表格:
|
圖片只要放到表格內,要再添加圖片的時候便可以控制樣式。
要挪動表格內的圖片,可以在圖片連結前後添加不換行空格(“ ”),譬如“ [[Image:]]”這樣。要讓圖片自動居中對齊的話,只需要在圖片連結兩邊添加居中對齊的標籤(“<center>[[File:…]]</center>”)。
留意在下面的示例裡,第2列用了<center>
,第3列則用了“ ”:
{| class="wikitable" border="1" |- |<!--第1列-->[[File:Domtoren vanaf Brigittenstraat.jpg|299x125px]] |<!--第2列--><center>[[File:Utrecht 003.jpg|299x125px]]</center> |<!--第3列--> [[File:Uitzicht vanaf de Domtoren.jpg |299x125px]] |- |<!--第1列-->[[布里吉頓街]]的[[多姆塔]] |<!--第2列-->[[烏得勒支]][[多姆教堂]]內回廊包圍著的庭院 |<!--第3列--> <small>從鐘樓往下看的景觀</small> |} |
上面的代碼會顯示為下面這個表格。留意中間的庭院圖片是居中對齊的(但左邊的沒有),而右邊的圖片在“從”字前有兩個空格:
|
留意上面的<small>
標籤使圖片標題變小了。字體大小還可以用百分比來指定(像“style="font-size:87%;"”),這個百分比實際顯示時會因不同字體可以用的大小而異。
| style="font-size:87%;" | 從鐘樓往下看的景觀
上面這個直列參數就用了“style=”來指定圖片標題的大小。“font-size:65%;”會顯示很小的字體,而“font-size:87%;”則是中等大小,比<small>
標籤要大一些。
用的是en:Template:Visualizer或者{{metavisualizer}}。
要將Gnumeric、MS Excel、OpenOffice.org Calc等類型的試算表轉換為維基代碼格式的表格的話,可以用這個Copy & Paste Excel-to-Wiki轉換器,或者將試算表儲存為.csv格式後用這個csv2wikitable轉換器。
csv2wp轉換器會把逗号分隔值(CSV)格式的內容轉換為豎線符號系列代碼,可以用來匯入Excel等的表格(詳見de:Benutzer:Duesentrieb/csv2wp (en))。
由於維基代碼有點複雜(尤其是在製作表格方面),所以常常會有人問有沒有任何視覺化編輯器可以簡化製作和修改表格的工序。其中一種解決方法是先用HTML編輯器(例如Adobe Dreamweaver)製作表格,然後將生成的HTML代碼複製到頁面裡。
2012年起維基百科開始局部試用視覺化編輯器,不過尚未全面支援編輯表格的功能。技術程度較高或勇以嘗試的用戶也可以試用WYSIFTW,但留意這個編輯器的使用方式不一定完全是所見即所得。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.