I did some more research on this and gathered some information that may be useful to others who are trying to solve such problems. The CSS spec says the following three things that I think are important:
Firstly, re: indicating the height (div) as a percentage:
The percentage is calculated relative to the height of the generated block containing the block. If the height of the containing block is not explicitly specified (i.e., Depends on the height of the content), and this element is not absolutely positioned, the value is calculated as "auto".
http://www.w3.org/TR/CSS21/visudet.html#the-height-property
... the height "auto" will not fill the cell unless the contents are greater than the minimum cell height. But if we try to explicitly set the height of the contained cell or row, then we will encounter the following problem:
CSS 2.1 does not determine how the height of table cells and table rows is calculated when their height is specified using percentage values.
http://www.w3.org/TR/CSS21/tables.html#height-layout
Since the specification does not define it, I think it is not surprising that Chrome and IE prefer to calculate it differently.
Alternatively (as an indirect indication of xec), an attempt to use relative positioning has the following problem specification:
The "position: relative" effect for table-row, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell and table Recording elements are undefined.
www.w3.org/TR/CSS21/visuren.html#propdef-position
So, I concluded , probably not a clean CSS method to solve the problem that you can reasonably expect to work in most browsers.
At first I thought, “Wow, the CSS spec is pretty crappy and incomplete to leave all these things undefined.” However, when I thought about it more, I realized that defining a specification for these problems would be much more complicated than it seems at first glance. In the end, row / cell heights are calculated as a function of the height of their contents, and I want the height of my content to be a function of the row / cell height. Despite the fact that I have a well-defined, final algorithm for how I want it to work in my particular case, it is not clear that the algorithm will easily generalize to all other cases that the specification will have to cover without getting into infinite loops .