Probleme couleur ligne alternée tableau

Eléphant du PHP | 70 Messages

23 nov. 2005, 18:22

Bonjour à tous,

Voilà mon petit souci... j'espère que je suis dans le bon forum.
Je génère un tableau avec un code PHP, et à chaque ligne, j'attribus une couleur.

J'ai donc fait une feuille CSS en définissant 2 classes pour les lignes 'ligne1 et ligne2... tient c'est original ça ! :lol: :lol: ).
J'ai également 2 classes pour mes cellules car la cellule gauche et droite ne sont pas presentées de la même manière.

Le problème, c'est que si je laisse le style à mes cellule, celui de la ligne n'est pas pris en compte.

Je vous met les bouts de code de la CSS :

Code : Tout sélectionner

#tableau_fichier{ margin: auto; border: none; padding: 0; text-align: center; width: 30em; } #tableau_fichier table{ border: thin solid #6495ed; border-collapse: collapse; width: 100%; } #tableau_fichier caption{ border: thin solid #6495ed; font-family: sans-serif; text-align: center; padding: .5em; background-color: #D0E3FA; } #tableau_fichier tr.ligne1 { background-color: blue; } #tableau_fichier tr.ligne2 { background-color: cyan; } #tableau_fichier td.nom_fichier { font-family: sans-serif; font-size: .8em; border: none solid #6495ed; width: 60%; padding: .5em; text-align: left; background-color: #ffffff; } #tableau_fichier td.action { font-family: sans-serif; font-size: .8em; border: none solid #6495ed; width: 40%; padding: .5em; text-align: center; background-color: #ffffff; }
Et là mon code de génération :
        //On définit un calque pour mettre en forme
        echo "<div id=\"tableau_fichier\">";
        //On affiche sous forme de tableau
        echo "<table summary=\"Listing des fichiers présents dans le répertoire\">\n";
        echo "    <caption>Nom des fichiers</caption>\n";

        $sCouleurLigne = "ligne1";

        //On liste les fichiers trouves avec un lien pour la suppression
        for ($i=$iDeb; $i < $iFin; $i = $i+1){
            echo "    <tr class=\"".$sCouleurLigne."\">\n";
            echo "        <td class=\"nom_fichier\">\n";
            //On affiche le nom du fichier
            echo $aFichiers[$i]."\n";
            echo "        </td>\n";
            echo "        <td class=\"action\">\n";
            if (!empty($aFichiers[$i])){
               //On affiche un lien vers la suppression
               echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$iNumPageURL."&action=suppr&fichier=".$aFichiers[$i]."\" onclick=\"javascript:return suppression('".$aFichiers[$i]."');\">Supprimer</a>\n";
            }
            echo "        </td>\n";
            echo "    </tr>\n";
            
            //echo $sCouleurLigne;
            
            //On fait changer la couleur de la ligne
            if ($sCouleurLigne == "ligne1"){
                //On change de couleur
                $sCouleurLigne = "ligne2";
            }
            else{
                //On change de couleur
                $sCouleurLigne = "ligne1";
            }
        }
        echo "</table>\n";
Auriez-vous une solution pour que les 2 s'appliquent sans problème ?

Merci d'avance

Eléphant du PHP | 353 Messages

25 nov. 2005, 10:16

Je ne suis pas sûr de bien avoir compris ton problème. Que voudrais-tu que cela fasse ?

Le style de tes cellules s'applique préférentiellement à celui de tes lignes car le style des cellules est défini après.
Pour que le style de tes lignes soit appliqué, il faudrait augmenter sa priorité, en ajoutant un niveau par exemple de cette manière:

Code : Tout sélectionner

#tableau_fichier table tr.ligne2 { background-color: cyan; }

Eléphant du PHP | 70 Messages

26 nov. 2005, 18:25

Salut Nicolas,

Bon alors à priori tu as bien compris mon problème, c'est-à-dire que le style de mes lignes "prime" sur celui de mes cellules (autrement dit, seule la couleur de l'arrière plan des lignes est exécuté, mais pas la mise en page de mes cellules.

J'ai essayé d'augmenté la priorité, mais rien n'y fait...

Je reste dépassé là... :cry:
Tu peux voir ce que ça donne ici : http://mireillej.free.fr (pour info, je n'ai appliqué le style des lignes qu'à une seule colonne pour bien voir la différence).
Si tu as une autre solution.

Merci quand même.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 nov. 2005, 19:33

Salut, je vois pas l'interet de mettre une ligne en couleur et ensuite redéfinir une couleur pour la colonne .

refait un test en enlevant cette ligne pour le css des TD
background-color: #ffffff;
qui met la colonne en blanc donc plus de couleur :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 70 Messages

28 nov. 2005, 13:46

Merci Truc... :D :D

C'est pas une épine du pied que tu m'enlèves.... c'est un pieu !!!! :lol:
Je ne voyais pas trop le truc...

Ca marche nickel (je ne sais pas pourquoi d'ailleurs j'avais mon fond blanc... les inconvénients du copier-coller rapide sans doute... :? :? ) \:D/

C'est donc résolu.
A bientôt .