次のように ASP.NET でツリービューをレンダリングしようとしています (JSFiddle here )
<table>
<colgroup>
<col width="20" span="2" />
<col width="*" /> // removing this width doesn't change anything
<col width="20" />
</colgroup>
<tr>
<td colspan="3">Top-level element</td>
<td>(checkbox)</td>
</tr>
<tr>
<td>(spacer)</td>
<td colspan="2">Mid-level element</td>
<td>(checkbox)</td>
</tr>
<tr>
<td>(spacer)</td>
<td>(spacer)</td>
<td colspan="1">Bottom</td>
<td>(checkbox)</td>
</tr>
</table>
where(spacer)
はツリーラインを含む 20px 幅のセルで(checkbox)
、チェックボックスです。右側の列にすべてを揃えたいと思います。
IE8 では、これは期待どおりにレンダリングされます。*
-widthcol
は、スペーサー セルにまたがり、スパンされたセル内の最長のアイテムを収容するのに十分なほど拡張されます。
| Top-level element | [] |
| . | Mid-level element | [] |
| . | . |Bottom | [] |
IE7 では、正しくレンダリングされません。*-widthcol
は、実際には最後から 2 番目の列にあるセルを収容するのに十分なだけ拡張され、他のセルは複数の行に分割されます。
| Top-level | [] |
| element | |
| . | Mid-level | [] |
| | element | |
| . | . | Bottom | [] |
テーブル幅を動的に保ちながら、IE7 でこのテーブルを適切にレイアウトする方法はありますか? (つまり、最後から 2 番目の列またはテーブル自体に固定幅を与えるだけではありません。)
または、テーブルの代わりに div を使用してこの動的なサイズを取得する方法はありますか?
その他のポイント:
- 個々のセル幅を設定してもうまくいきません - IE7 はそれらを無視しているようで、ツリーラインがすべて外れてしまいます。
- 設定
table-layout: fixed
により配置が修正されますが、IE7 では (IE8 ではなく) テーブルの幅が 100% になります。