Aligner colonnes dans tables

t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai fait un tableau comportant deux <table>. Le premier, c'est pour les titres des colonnes :
echo '<table width="2700">';
echo '<tr>';
echo '<td width="201">...........</td>
<td width="197">..........</td>
<td width="152">.........</td>
<td width="500">.........</td>
<td width="150">.........</td>
<td width="497">.........</td>';
echo '</tr>';
echo '</table>';
Le deuxième, c'est ce qu'il y a dedans, avec la particularité d'être scrollable. Ce qui fait que si on scrolle ce tableau, les titres restent visibles :
echo '<div class="frame_HF">';
echo '<table width="2700">';
while($row = mysql_fetch_array($result))
{
echo '<tr>';
echo '<td width="201">...........</td>';
echo '<td width="197">...........</td>';
echo '<td width="152">...........</td>';
echo '<td width="500">...........</td>';
echo '<td width="150">...........</td>';
echo '<td width="497">...........</td>';
echo '</tr>';
}
echo '</table>';

Le poblème, c'est que les colonnes ne tombent pas "pil-poil" l'une en face de l'autre .......... Alors j'essaye de jouer en ajoutant 1px par-ci par-là, mais rien à faire ..........
Quelle méthode adopter ?
Merci.

3 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Il y a une petite erreur html sur la création de ton deuxième tableau :
echo '<tr)">'; 
à remplacer par :
echo '<tr>'; 

Essaye de gérer la taille des cellules avec les propriétés css min-width et max-width à la place de l'attribut html width :


echo '<tr>';
echo '<td style="min-width: 201px; max-width: 201px">...........</td>';
echo '<td style="min-width: 197px; max-width: 197px">...........</td>';
echo '<td style="min-width: 152px; max-width: 152px">...........</td>';
echo '<td style="min-width: 500px; max-width: 500px">...........</td>';
echo '<td style="min-width: 150px; max-width: 150px">...........</td>';
echo '<td style="min-width: 497px; max-width: 497px">...........</td>';
echo '</tr>';

Tu définis la largeur de ton tableau à 2700 mais la somme de tes cellules est égale à 1667. Le plus simple est de ne pas définir de largeur à ton tableau, celui-ci prendra automatiquement l'espace pris par ses cellules.

Bonne journée
0
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci Pitet.
J'ai corrigé l'erreur echo '<tr)">'; . Erreur d'un copier/coller.
J'ai réglé les <table width ....... >
Avec ta méthode, ça va pas mieux, même pire ..............
Alors j'ai réglé au pixel pr^t, mais je pense qu'il doit exister une meilleure méthode ..........
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Chez moi la méthode que je t'ai proposé fonctionne : les cellules font exactement la taille définie par le css.
Mais il est possible que tu ais d'autres styles css qui modifie la largeur de tes cellules, par exemple le padding de tes cellules et/ou les éléments contenu dans tes cellules peuvent altérer l'affichage.
0