Netscape Navigator/Mozilla/Firefoxの問題点


2004.11.28 高橋 誠

'table-layout' fixedをサポートしていない

 この指定は、テーブル全体を読み込んでからレイアウトを決めるより高速になるとのことで推奨されているのですが、Firefoxでもサポートされいないようです。『指輪物語』補完計画では、colのcssに同様な指定をして、七つの表に分割したのですが、IEでは列幅はすべて揃うのですが、MozillaもFIrefoxもtd要素の内容により、列幅が変わります。この原因をはっきりさせるために、'table-layout' fixedのテストケースを作りました。
 Fixed table layout固定表組みはCascading Style Sheets, level 2 CSS2 Specification 17.5.2 Table width algorithms: the 'table-layout' property: fixed-table-layout(翻訳)によると、

固定表組みアルゴリズムでは, 各列の幅の次のように決定される。

  1. 'width'特性について,'auto'以外の値を有する列要素は,その列の幅を設定する。
  2. そうでない場合に, 最初の行のセルが'width'特性に対して'auto'以外の値を有する場合は,その列の幅を設定する。セルが一つ以上の列にまたがる場合は,値は複数の列分の幅を表す。
  3. 残りの列は残りの左右表スペースを均等分割する。(境界又はセル間スペースを差し引くこと。)

In the fixed table layout algorithm, the width of each column is determined as follows:

  1. A column element with a value other than 'auto' for the 'width' property sets the width for that column.
  2. Otherwise, a cell in the first row with a value other than 'auto' for the 'width' property sets the width for that column. If the cell spans more than one column, the width is divided over the columns.
  3. Any remaining columns equally divide the remaining horizontal table space (minus borders or cell spacing).
とあります。一応、table-layout:fixedが効かないのテストケースを追加しておきましが・・・

テーブルとタイトルの泣き別れ

 text-alignでtableのセンタリングをしないのはいいとして、
table {margin-left:  auto;
       margin-right: auto}
と指定すると、tableだけセンタリングされて、captionは置いてけぼりになります。(^_^;
 Cascading Style Sheets, level 2 CSS2 Specification 17.4.1 Caption position and alignment(翻訳)によると、

'table'要素の上又は下の標題は,表の前又は後のブロック要素であるものとしてフォーマットされる。ただし,次の場合は例外である。(1) 継承可能な特性を表から継承する場合,

Captions above or below a 'table' element are formatted very much as if they were a block element before or after the table, except that (1) they inherit inheritable properties from the table,

なんで、width属性(なぜかMozillaはこっちは継承している)といっしょにmargin属性を継承すべきと思われますが、これが「規格どおり」だそうです。あーあ、言うだけむなしかった。何でも「規格」といってサボるOpera 6.04でさえちゃんと継承しているというのに。

RUBYタグが無視もできない

 ふつうのブラウザは未サポートのタグは無視できるのですが、規格の大好きなMozillaはRUBYが入るとめちゃくちゃになるようです。今度、正式に規格になったのですが、サポートするのはずいぶん先のようです。「IEのサポートは完全ではない。」なんてのんきにけちをつけています。

SIL IPAフォントが使えない

 Internet ExplorerやNetscape Navigator 4.7xでは、UnicodeのIPA発音記号の一覧(utf-8版)の通り、SILの配布しているIPAフォントが使えるのですが、symbolフォントとやらに分類されて、サポートは「市場の動向を見て」とのことです。

無用な<br>を挿入する

 <td></td>と書いておくと、おせっかいなMozilla composerは<td><br></td>にしてくれます。tableの枠線を表示するためには、CSSでempty-cells: show;属性を使うことが推奨されているというのに。Mozilla M17で発生して指摘しても直す気もないようです。根拠の詳細は、CSS Techniques for Web Content Accessibility Guidelines 1.0 11 Layout, positioning, layering, and alignment (W3C)(ZSPC訳、ただし、下記は拙訳)を参照ください。
 規格の大好きなはずのMozillaがこの場合はどうしたことかコーディングの都合を優先させるようです。こんなこといいながら、Web標準普及プロジェクトなんてことやるのをダブルスタンダードというのではないでしょうか?(2001-6-25)

 empty-cellsプロパティを指定すれば、表のコマを空にしたまま、画面上や紙上でテーブルに適切な境界を表示できる。空であるデータコマに、ただ視覚的な効果を得るために、空白や非行区切スペースで埋めてはならない。

The 'empty-cells' property allows users to leave table cells empty and still give them proper borders on the screen or on paper. A data cell that is meant to be empty should not be filled with white space or a non-breaking space just to achieve a visual effect.



ホーム(x)