添加的内容 删除的内容
小 (文本替换 - 替换“(維|维)基文本”为“wikitext”) |
SolidBlock(留言 | 贡献) 无编辑摘要 |
||
第1行:
{{NoteTA|G1=IT|G2=MediaWiki}}
'''表格'''({{lang-en|'''table'''}})是在页面中非常常见的文本形式,用于呈现以二级形式排列的数据。
需要注意的是,不要滥用表格。表格一般不应当用来排版,更不应该添加花里胡哨的样式。在求闻百科中使用表格时,须遵守[[Qiuwen:无障碍访问]]方针。
== 基本语法 ==
第20行 ⟶ 第18行:
</pre>
效果如下:
{| class="wikitable"
|+ 标题文本
第39行 ⟶ 第28行:
| 示例 || 示例 || 示例
|}
在这个例子中,<code>{|</code>表示一个表格的开始,必须位于一行的开头。每个wikitext表格都是以这个符号开头的,其后接表格的基本属性。大多数表格都需要wikitable类以实现基本的格式化,因此添加<code>class="wikitable"</code>。
其后以<code>|+</code>开头的是表格标题({{lang-en|caption}}),标题会显示在表格的最顶部,宽度不会超过表格自身的宽度。标题是可选的,通常包含对这个表格的基本描述。
<code>|-</code>将表格分成了多行。每一行则是由相等数量的单元格组成。在上面的例子中,以<code>|</code>开头的是普通的单元格({{lang-en|table cell}});以<code>!</code>开头的是表头({{lang-en|table heading}}),从屏幕显示中可以看出表头的背景颜色比普通的单元格略深一些,且默认会显示为居中、加粗。表头也是可选的,但通常情况下一个表格应该要有一个表头。单元格按照先分行({{lang-en|row}})后分列({{lang-en|column}})的顺序排列。
在代码的同一行内,多个单元格可以使用<code>!!</code>和<code>||</code>分开,如果每个单元格一行,则单元格可以直接以<code>!</code>或<code>|</code>开头。
== 跨列与跨行 ==
第92行 ⟶ 第89行:
== 属性 ==
你可以为表格的各个元素添加'''属性'''({{lang-en|'''attribute'''}}),这些属性包括表格属性、单元格属性、行属性和表格标题属性。属性通常用来设置表格的样式,有时也可以使用其他的属性。
=== 表格属性 ===
表格属性添加在表格最开头的<code>{|</code>后面,将应用于整个表格。我们通常所添加的<code>class="wikitable"</code>就是应用于整个表格的。下面这个例子中,我们不添加wikitable类,而是为整个
-{}-{| <mark>class="wikitable" style="color:green; border:2px dashed blue"</mark>
第116行 ⟶ 第113行:
=== 单元格属性 ===
单元格属性应用于单个单元格。单元格属性应用在单元格内容与单元格分隔符之间,并用<code>|</code>隔开。例如,在这个例子中,将左下角的单元格设置文本颜色并添加边框,而不影响其他的单元格:
-{}-{| class="wikitable"
第180行 ⟶ 第177行:
== 样式 ==
{{参见|Help:CSS}}
'''样式'''({{lang-en|'''style'''}})是表格内容最常见的一种属性,它主要包括了表格的各种显示方式。例如,表格如何排版布局,显示为什么颜色,这些都属性样式。定义表格样式所使用的是[[CSS|<abbr title="层叠样式表">CSS</abbr>]]。
=== 宽度和高度 ===
CSS的<code>width</code>和<code>height</code>属性可以设置表格的宽度和高度。宽度和高度的类型都属于长度,其值
宽度和高度可以应用于整个表格,也可以应用于单个单元格。当应用于单元格时,其同一行或同一列的单元格的
=== 简单的宽度和高度 ===
下面这个表格的宽度为80%,这是一个相对值,意味着表格将占用容器宽度的80%。其中,第一列的宽度为2em,这是一个绝对值,无论容器的大小是多少,第1列的宽度都是2em。不难推断出,第2列将占用表格的剩余的空间。
-{}-{| class="wikitable" <mark>style="width: 80%"</mark>
! 标题1
! 标题2
|-
| <mark>style="width:2em" |</mark> 1行1列
| 1行2列
第196行 ⟶ 第200行:
{| class="wikitable" style="width: 80%"
! 标题1
! 标题2
|-
| style="width:2em" | 1行1列
| 1行2列
第203行 ⟶ 第210行:
|}
-{}-{| class="wikitable"
! 标题1
! 标题2
! 标题3
|-
| <mark>style="width:20%"</mark> | 1行1列
| <mark>style="width:20%"</mark> | 1行2列
第217行 ⟶ 第226行:
{| class="wikitable"
! 标题1
! 标题2
! 标题3
|-
| style="width:20%" | 1行1列
| style="width:20%" | 1行2列
第225行 ⟶ 第238行:
| 2行3列
|}
{{mbox|text=注意,设置宽度和高度使用的是<code>style</code>中的<code>width</code>和<code>height</code>CSS属性,如<code>style="width=80%"</code>而不是直接设置像<code>width="80%"</code>这样的节点属性。}}
==== 复杂的宽度与高度 ====
在一些情况下,绝对宽度和相对宽度或高度可能都没有办法满足需求。在这种情况下,可以使用复杂的表格宽度和高度。这里仅作参考,事实上并不推荐使用过于复杂的宽度和高度。
下面这个表格的宽度为<code>min(max(70%, 20em), 100%)</code>。意思是,当20em的长度小于容器宽度的70%时,这个表格的宽度是20em,否则为容器宽度的70%。但是,如果容器宽度本身小比较小,以至于小于20em,那么表格的宽度就是容器宽度的100%,以免超出容器宽度。
-{}-{| class="wikitable" <mark>style="width: min(max(70%, 20em), 100%)"</mark>
|+ 标题文本
|-
! 标题文本 !! 标题文本 !! 标题文本
|-
| 示例 || 示例 || 示例
|-
| 示例 || 示例 || 示例
|}
{| class="wikitable" style="width: min(max(70%, 20em), 100%)"
|+ 标题文本
|-
! 标题文本 !! 标题文本 !! 标题文本
|-
| 示例 || 示例 || 示例
|-
| 示例 || 示例 || 示例
|}
下面这个表格的宽度为<code>calc(100% - 2em)</code>。这个很好理解,这个宽度是相对宽度和绝对宽度的混合,其宽度是容器宽度减去2em。
-{}-{| class="wikitable" <mark>style="calc(100%, 2em)"</mark>
|+ 标题文本
|-
! 标题文本 !! 标题文本 !! 标题文本
|-
| 示例 || 示例 || 示例
|-
| 示例 || 示例 || 示例
|}
{| class="wikitable" style="calc(100%, 2em)"
|+ 标题文本
|-
! 标题文本 !! 标题文本 !! 标题文本
|-
| 示例 || 示例 || 示例
|-
| 示例 || 示例 || 示例
|}
==== 表格内容的自动排版 ====
一般情况下,如果不指定宽度,那么表格的宽度以及各单元格的宽度是自动调整的,会根据内容来进行分配。如果指定了整个表格的宽度和高度,但是没有指定单元格的宽度和高度,那么这个单元格的宽度和高度也会自动分配。
在下面这个例子中,表格的宽度不会超过40个字符的宽度,字符多的单元格会分配更宽的宽度。
-{}-{| class="wikitable" style="width: min(40em, 100%)"
|+ 自动排版的表格
|-
! 标题1 !! 标题2 !! 标题3
|-
| 这是一个很多文本的单元格,内容非常非常多,需要占用比较多的空间,以便呈现其内容。
| 内容很少的单元格
| 这个单元格的内容也比较少。
|-
| 这个内容很少。
| 内容很少的单元格。
| 这个单元格的内容也是比较少的。
|}
{| class="wikitable" style="width: min(40em, 100%)"
|+ 自动排版的表格
|-
! 标题1 !! 标题2 !! 标题3
|-
| 这是一个很多文本的单元格,内容非常非常多,需要占用比较多的空间,以便呈现其内容。
| 内容很少的单元格
| 这个单元格的内容也比较少。
|-
| 这个内容很少。
| 内容很少的单元格。
| 这个单元格的内容也是比较少的。
|}
=== 表格对齐 ===
|