Home > Windows > Opera > ver.9 Under CSSによるボーダー指定がないcollapseボーダーのテーブルでセル枠が表示されない

CSSによるボーダー指定がないcollapseボーダーのテーブルでセル枠が表示されない

CSSでボーダーのプロパティを指定せずにtable要素のborderプロパティだけで枠を設定しているテーブルに対して border-collapse: collapse; を指定すると、テーブル全体を囲む枠は表示されるがセルを囲む枠は表示されない。

例示

<table border="2" style="border-collapse:collapse; background:lime;">
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>
1 2
3 4

テーブルの枠はtable要素のborderプロパティで表示させています。

スクリーンショット

WinIE6WinIE6.0での表示(標準モード)

Op7Opera7.11での表示(標準モード)

補足

CSSを用いて、テーブルセル要素に対してボーダーを設定することでこのバグを回避できます。

<style type="text/css">
<!--
table.sample {
    border-collapse: collapse;
    border: 2px outset gray;
}
table.sample th, table.sample td {
    border: 1px inset gray;
}
-->
</style>

<table border="2" class="sample">
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>
1 2
3 4

または、table要素開始タグで rules="all" を明示することでも回避できます。

<table border="2" style="border-collapse:collapse;" rules="all">
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>
1 2
3 4

CSS2では、HTMLの特定の要素や属性など、CSS以外の手段による体裁指定は「相当するCSS規則に変換し、制作者CSSの先頭に追加する」と定められているので、table要素のborder属性(およびframe属性、rules属性)を無視するOperaの実装はバグと考えられます。

修正状況

  • Opera7.11標準モード、Opera7.11互換モードで不具合の発生を確認しました。
  • Opera6.06でこの不具合は発生しません。

Home > Windows > Opera > ver.9 Under CSSによるボーダー指定がないcollapseボーダーのテーブルでセル枠が表示されない

Search
オススメ書籍
Feeds

Return to page top