2008/11/11

border-collapse

以下特徵可以用來設定報表(TABLE)內的小格子(cell)的邊線之展現方法。另外也可以用 border, padding, outline 設定格子的邊界。

border-collapse | border-spacing | empty-cells
border-collapse

設定報表(TABLE)內的格子的邊線,有兩種風格,可設定的值有:

  • collapse:所有的邊線都連在一起,此為預設值。TABLE 元素的邊線重疊時,要依據 邊線衝突解決法
  • separate:每一個格子都有各自的邊線。雖然官方手冊說 collapse 是預設值,可是下面的範例顯示,主要的瀏覽器都將 separate 定為預設值。
  • inherit:繼承父元件的特徵值。
  • 風格用法:

    <style type='text/css'>
    .clp    {width:40%}
    .clp TD {border:2px solid red }
    </style>
    <table class='clp' style='border-collapse:collapse'>
    <tr><td>蔡依林<td>曾沛慈
    <tr><td>周杰倫<td>蕭敬騰
    </table>

    <br />
    <table  class='clp'>
    <tr><td>蔡依林<td>曾沛慈
    <tr><td>周杰倫<td>蕭敬騰
    </table>

    <br />
    <table width=40% style='border-collapse:collapse'>
    <col  style='border:solid blue 4px; background:#737'>
    <tr>
      <td>蔡依林<td>曾沛慈
    <tr>
      <td>神木<td>瞳
    <tr style='border:solid green 4px; background:#773'>
      <td>周杰倫<td>蕭敬騰
    </table>

  • 執行結果:

    蔡依林曾沛慈
    周杰倫蕭敬騰

    蔡依林曾沛慈
    周杰倫蕭敬騰

    蔡依林曾沛慈
    神木
    周杰倫蕭敬騰
  • 上面第一個例子用 collapse,第二個例子用預設的 separate。
  • 第三個例子,在 COL 元素與 TR 元素加上邊線,必須配合 collapse 使用;使用 separate 會失效。第三個例子在 IE6 失敗;Firefox, Safari, Chrome 成功。

設定 margin, outline, padding

  • 風格用法:

    <style type='text/css'>
    .otl    {width:40%; border-spacing:20px}
    .otl TD {border:4px solid red;
             outline:4px solid white;
             padding:8px;
             margin:20px;
            }
    </style>

    <table class='otl'>
    <tr><td>好玩遊戲<td>線上遊戲
    <tr><td>彈珠遊戲<td>空戰遊戲
    </table>
    外緣

    <p>
    <table class='otl' style='border-collapse:collapse'>
    <tr><td>好玩遊戲<td>線上遊戲
    <tr><td>彈珠遊戲<td>空戰遊戲
    </table>
    外緣

  • 執行結果:

    好玩遊戲線上遊戲
    彈珠遊戲空戰遊戲
    外緣

    好玩遊戲線上遊戲
    彈珠遊戲空戰遊戲
    外緣
  • 上例中 border 是紅色,outline 是白色。border-spacing 設的太小時,outline 會連在一起。padding 有效果,但是 margin 沒效果,margin 被 border-spacing 取代。IE6 沒有支援 outline。
  • 第二個例子用 collapse,此時 border-spacing 會失效。第二例的展現結果在不同瀏覽器有不同。