J'utilise des tables pour générer des graphiques horizontaux simples (pour une mise à l'échelle facile). J'utilise le colspanning pour obtenir un chevauchement exact (parfois les cellules se chevauchent, mais pas dans cet exemple).Problème de largeur relative de la table colspan dans Internet Explorer
Mon problème est que IE (8) rend les largeurs de cellules relatives erronées. Je sais qu'une cellule ne peut pas être plus petite que son contenu, mais ce n'est pas le problème ici. Par exemple, la cellule "X 65" dans l'exemple devient plus large que 47% dans IE. Firefox se porte bien cependant.
Voici l'exemple:
<html>
<body>
<style>
table.CompAnalysisTable {
border-width: 1px;
border-spacing: 0px;
border-style: solid;
border-color: black;
border-collapse: collapse;
background-color: white;
font-size:8px;
}
table.CompAnalysisTable td {
border-width: 1px;
border-style: solid;
border-color: black;
}
table.CompAnalysisTable td table
{
border-style:none;
}
</style>
<table>
<tr>
<td>
</td>
<td class="nobr" valign="middle" align="left">Graph</td>
<td valign="middle" width="100%" align="right">Total 73</td>
</tr>
</tbody>
</table>
<table class="CompAnalysisTable" width="100%" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="nobr" style="width: 47%; background-color: rgb(172, 172, 255);" colspan="65">X 65</td>
<td class="nobr" style="width: 47%; background-color: white;" colspan="65"></td>
<td class="nobr" style="width: 5%; background-color: rgb(172, 172, 255);" colspan="7">A 7</td>
<td class="nobr" style="width: 1%; background-color: rgb(172, 172, 255);">B 1</td>
</tr>
<tr>
<td class="nobr" style="width: 47%; background-color: white;" colspan="65"></td>
<td class="nobr" style="width: 52%; background-color: rgb(255, 152, 152);" colspan="72">A 72</td>
<td class="nobr" style="width: 1%; background-color: rgb(255, 152, 152);">B 1</td>
</tr>
</table>
</body>
</html>
J'ai essayé d'autres techniques comme divs et des tables séparées pour chaque rangée, mais colspanning a été la seule technique pour obtenir exactement le chevauchement.
Une autre solution consiste à rendre des images sur le serveur, mais ensuite je perds la mise à l'échelle et cela prend beaucoup de temps.
Toute aide est très appréciée.