Bonjour,
Après avoir un peu expérimenté, j'ai trouvé un moyen de mettre des border, paddings et margin dans un tableau de façon à ce que le comportement soit le même dans tous les navigateurs. C'est surement déja connu, mais je n'ai rien trouvé sur le net, alors pour ceux qui seraient dans le même cas que moi voila comment faire.
Tout d'abord, je n'ai testé cette méthode que pour un tableau à une case (je voulais juste créer une bordure avec padding autour d'un texte) et sous firefox 2 (mais probable que ca marche sous tous les firefox), IE 4-->6, Opera 6-->8, Netscape 6-->8. Il est très probable que ca marche aussi sous les navigateurs encore plus récents. Je posterais suite à ce message pour signaler quand j'aurais testé avec d'autres navigateurs. J'ai utilisé xhtml 1.0 strict.
La méthode:
C'est en fait la plus intuitive, il faut mettre le margin sur la balise <table>, le border et le padding sur la balise <td>. Si le border ou le padding sont non nuls, il faut que les tailles des <td> soient diminuées pour laisser la place au padding et border
Exemple:
Ici
Code xhtml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head><title>Title here!</title><style> <!-- html { height:100%; } body { height:100%; } --> </style></head> <body style="border:0px; margin:0px; padding:0px;"> <table cellspacing="0" style="width:1000px; height:500px; margin:100px; border:0px; padding:0px;"> <tr><td bgcolor="#AABB99" style="width:660px; height:160px; background-color:#AABB99; margin:0px; padding:150px; border:20px; border-style:solid; border-color:#5A238F;" > Et voila!</td></tr></table> </body></html>
taille table=1000x5000
donc
taille td = (1000-2*taille border-2*taille padding)x(500-2*taille border-2*taille padding)
Partager