iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Modern Web

跟著 OXXO 一起學 HTML系列 第 48

( Day 19.1 ) HTML 表格 <table>、<tr>、<td>

  • 分享至 

  • xImage
  •  

如果要在 HTML 裡放入表格,最基本是使用 <table><tr><td> 來製作表格,這篇教學會介紹如何在 HTML 裡放入表格並設計表格。

原文參考:表格 table、tr、td

認識 <table><tr><td>

<table><tr><td> 三個標籤,是 HTML 裡最基本也是必備的表格元素,三個元素需要按照表格的規範,共同組成一個表格:

表格元素 說明
<table> 表格本體。
<tr> 垂直列 ( row )。
<td> 水平欄 ( column )。
  • <table><tr><td> 屬於「容器元素」,需要有「起始標籤」以及「結束標籤」。
  • <table> 顯示類型為「table 表格元素」,預設會強制換行,內容只允許放入表格相關元素。
  • <tr> 顯示類型為「table-row 表格垂直列元素」,只能作為 <table><thead><tfoot><tbody> 的子元素。
  • <td> 顯示類型為「table-cell 表格水平欄元素」,只能作為 <tr> 的子元素。

下方的 HTML 會呈現一個表格最基本的架構 ( 額外加入邊框樣式 )。

<style>
  table{
    border:1px solid #000;
  }
  td{
    border:1px solid #000;
    padding:10px;
  }
</style>

<table>
  <tr>
    <td>a</td>
    <td>b</td>
    <td>c</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

HTML 教學 - 表格 、、

<table><tr><td> 支援屬性

<table><tr><td> 支援「全域屬性」以及「可見元素的事件屬性」( 參考「HTML 元素屬性」),例如下方的 HTML,會分別將各個 <td> 加入 style 屬性,改變其背景顏色。

<style>
  table{
    border:1px solid #000;
  }
  td{
    border:1px solid #000;
    padding:20px;
  }
</style>

<table>
  <tr>
    <td style="background:#f99;">a</td>
    <td style="background:#9f9;">b</td>
    <td style="background:#99f;">c</td>
  </tr>
  <tr>
    <td style="background:#f9f;">1</td>
    <td style="background:#ff9;">2</td>
    <td style="background:#9ff;">3</td>
  </tr>
</table>

HTML 教學 - 表格 、、

消除儲存格的間距

表格裡每個 <td> 彼此之間都會預留「間距」,透過設定 <table> 的 border-collapse 樣式,就能進行間距的設定,設定 collapse 表示間距折疊 ( 合併 ),設定 separate 表示預留間距 ( 分開 ),以下方的 HTML 為例,各個儲存格之間就不會有間距。

<style>
  table{
    border-collapse: collapse;
  }
  td{
    padding:20px;
  }
</style>
<table border=1>
  <tr>
    <td>a</td>
    <td>b</td>
    <td>c</td>
  </tr>
  <tr>
    <td>100</td>
    <td>200</td>
    <td>300</td>
  </tr>
</table>

HTML 教學 - 表格 、、

<table> border 屬性

<table> 除了共用的屬性,還存在一個 border 屬性,如果有設定 border 的內容 ( 正整數 ),就會自動替表格加上邊框,內容數值為表格最外層的寬度 ( 不論設定多少,內容 <td> 的邊框都會變成 1px )。

<style>
  td{
    padding:20px;
  }
</style>

<table border=5>
  <tr>
    <td>a</td>
    <td>b</td>
    <td>c</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

HTML 教學 - 表格 、、

<td> colspan、rowspan 屬性

<td> 除了共用的屬性,還存在「合併列或欄」的 colspan 和 rowspan 屬性,colspan 是用來水平合併多欄 ( column ) 的儲存格,rowspan 則用來垂直合併多列 ( row ) 的儲存格,以下方的 HTML 為例,第一個 <td> 裡設定屬性 colspan 為 2,表示第一個 <td> 水平合併了兩個儲存格 ( 注意第一個 <tr> 裡的 <td> 只有兩個 )。

<style>
  td{
    padding:20px;
  }
</style>

<table border=1>
  <tr>
    <td colspan=2>a</td>
    <td>c</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

HTML 教學 - 表格 、、

下方的 HTML 裡,第一個 <td> 裡設定屬性 rowspan 為 2,表示第一個 <td> 垂直合併了兩個儲存格 ( 注意第二個 <tr> 裡的 <td> 只有兩個 )。

<style>
  td{
    padding:20px;
  }
</style>

<table border=1>
  <tr>
    <td rowspan=2>a</td>
    <td>b</td>
    <td>c</td>
  </tr>
  <tr>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

HTML 教學 - 表格 、、

如果將 rowspan 設定為 0,則會從該列直接合併到最後一列。

<style>
  td{
    padding:20px;
  }
</style>

<table border=1>
  <tr>
    <td>a</td>
    <td>b</td>
    <td>c</td>
  </tr>
  <tr>
    <td rowspan=0>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>x</td>
    <td>y</td>
  </tr>
  <tr>
    <td>100</td>
    <td>200</td>
  </tr>
</table>

HTML 教學 - 表格 、、

<table><tr><td> 預設樣式

下方是 <table><tr><td> 的預設樣式:

table {
  display: table;
  border-collapse: separate;
  border-spacing: 2px;
  border-color: gray;
}

td {
  display: table-cell;
  vertical-align: inherit;
}

tr {
  display: table-row;
  vertical-align: inherit;
  border-color: inherit;
}

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 18.3 ) HTML 無序清單 <ul>、<li>
下一篇
( Day 19.2 ) HTML 表格元素 <th>、<caption>
系列文
跟著 OXXO 一起學 HTML90
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言