[whatwg] [Rendering] zero width attributes on table, th, td should be ignored

L. David Baron dbaron at dbaron.org
Wed Jan 2 12:47:26 PST 2013


http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#tables
says:

  # The table element's width attribute maps to the dimension
  # property 'width' on the table element.

  ...

  # The td and th elements' width attributes map to the dimension
  # property 'width' on the element.

These rules should have an extra condition to say that any zero
value (be it a zero integer or a zero percentage) is ignored rather
than mapping to the 'width' property.

This is needed for Web-compatibility; width="0" is ignored by all
major browser engines (at least for the td case, which I tested),
and source-code comments in Gecko indicate this behavior is needed
for compatibility.

However, they're ignored at different levels in different engines.
In Gecko and IE10, they're ignored at the level that I'm proposing,
and 'width:0' in CSS still works.  In WebKit and Opera, 'width:0' in
CSS is *also* ignored, presumably at the table layout level.  Given
the engine split here, I believe it's better to have the weird
behavior be more limited, and I'd prefer to see the ignoring be
specified at the HTML level so that CSS behaves without this
discontinuity.

My tests are as follows:
  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-zero-standards-html
  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-zero-quirks-html
    This pair of tests demonstrate that the HTML width="0" is
    ignored in all engines, and the first cell is slightly wider
    than the second.

  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-one-standards-html
  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-one-quirks-html
    This pair of tests demonstrate that HTML width="1" works in all
    engines, and forces the first cell to its minimum intrinsic
    width.

  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-zero-standards-css
  http://dbaron.org/css/test/2013/cell-width-zero/cell-width-zero-quirks-css
    This pair of tests shows differing behaviors between browsers;
    the first cell is narrowed to its minimum intrinsic width in
    Gecko and IE10 (showing the behavior is at the HTML level) but
    not in WebKit or Opera (showing the behavior is at the CSS
    level).

(It might be worth writing the parallel tests for <table> since I
only tested <td>, and the parallel tests for percentage values since
I only tested integer values.)

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂


More information about the whatwg mailing list