IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Couleur d'arrière plan d'une table


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    587
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 587
    Par défaut Couleur d'arrière plan d'une table
    Bonsoir la compagnie !

    Je reviens avec un nouveau problème que je ne m'explique pas : J'ai un grand tableau que s'appelle "latable", dans lequel je peux sélectionner une ligne. Le code HTML est donc très simple : par exemple
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tr id='L811' class='a_val' onclick="Sel(L811)">
    Le problème n'est pas dans le traitement lui-même de la ligne 811, mais dans le fait que je veux mettre l'arrière-plan de cette ligne en bleu, et effacer tous les autres arrière-plans de la table. J'écris donc (dans la fonction Sel(lien)) :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      document.getElementById('latable').style.backgroundColor='white';
      lien.bgColor='#00FFFF';
    Eh bien la première ligne ne fait (apparemment) rien, alors que la seconde fonctionne très bien. En pratique, cela se traduit par le fait que, tant que la page n'est pas rechargée, toutes les lignes qui ont été sélectionnées restent bleues.

    J'ai interrogé mon ami Google, qui m'a dit (si j'ai bien interprété) que je pouvais remplacer "style.backgroundColor" par "bgColor" ou même "color", mais c'est tout ce que j'ai trouvé.

    Je suppose que (comme d'habitude) la solution est très simple, mais là, je ne vois pas !

    Merci d'avance pour votre aide.

    AMIcalement.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour

    non non, style.backgroundColor fonctionne partout et tu peux sans problème demander un fond blanc à la table et un fond bleu à la ligne sélectionnée;

    Vois si tu n'as pas des classes concurrentes sur td, tr, table.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    587
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 587
    Par défaut
    J'ai compris ! Décidément, la nuit porte conseil : j'étais passé sur la réponse hier au cours de mes recherches !

    Lorsque l'on fixe la couleur d'arrière-plan pour un élément HTML, on a l'impression que ses enfants en héritent, mais en fait, ça n'est pas vrai : ses enfants ont tout simplement la couleur d'arrière-plan "transparent".

    Donc, pour résoudre mon problème, il ne faut pas que je donne la couleur d'arrière plan "blanc" à l'élément "<table>", mais que je rende la couleur "transparent" à l'élément "<tr>" concerné.

    Et ça marche.

    J'espère que ça pourra servir à d'autres.

    AMIcalement.

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    et quand tu cliques sur un autre tr??? comment le précédent redevient-il transparent?

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Pour l'instant je n'ai pas de solution miracle (appel aux bonne âmes);

    Code html : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>tableau</title>
    </head>
    <style>
            tr{text-align:center;}
            td{padding:20px;border:1px solid black;}
            .blue {background-color:#00ffff;}
    </style>
    <body>
    <table id="latable">
    	<tr>
    		<td>un</td>	
    		<td>deux</td>	
    		<td>trois</td>	
    	</tr>		
    	<tr>
    		<td>quatre</td>	
    		<td>cinq</td>	
    		<td>six</td>	
    	</tr>		
    	<tr>
    		<td>sept</td>	
    		<td>huit</td>	
    		<td>neuf</td>	
    	</tr>		
    </table>
    <script>
    window.addEventListener("load",()=>{
            const t=document.getElementById('latable');
            let line;
            t.addEventListener("click",(e)=>{
                    if(e.target.nodeName=="TD"){
                            if(line){line.parentNode.classList.remove("blue")};
                            e.target.parentNode.classList.add("blue");
                            line=e.target;
                    }
            });
    },false)
    </script>
     
    </body>
    </html>

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    587
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 587
    Par défaut
    Mais si, c'est très simple :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      document.getElementById("xxx").style.backgroundColor='transparent';
    Et c'est pas du baratin : avant, ça ne marchait pas car les anciennes lignes sélectionnées restaient en bleu, et maintenant, ça n'est plus le cas (évidemment, l'id de la ligne en question n'est pas "xxx" : il faut qu'il ait été mémorisé, et, au moment de "désélectionner" la ligne, il faut être capable de le retrouver).

    Est-ce que le truc qui te manquait, c'est pas "backgroundColor='transparent'", ?

    Je ne me souviens pas du lien où mon ami Google m'a dit ça, mais je répète le principe : quand on donne une couleur d'arrière-plan à un élément HTML (ça n'est donc pas propre aux tableaux, à leurs lignes ou à leurs cellules), on a l'impression que ses descendants en héritent (c'est à dire que les lignes et les cellules ont le même background que le tableau, sauf spécification contraire), mais en fait ce qui se passe en réalité, c'est que les descendants ont un arrière-plan transparent : si on leur en spécifie un autre, ils l'acceptent, mais alors ils ne sont plus transparents, donc si on change l'arrière-plan du parent, ça ne changera rien pour lui. Et pour annuler cette spécification, il faut exécuter l'instruction ci-dessus.

    OK ?

    AMIcalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur d'arrière-plan des items d'une QComboBox
    Par mr_samurai dans le forum Qt
    Réponses: 7
    Dernier message: 18/10/2019, 11h06
  2. Réponses: 1
    Dernier message: 19/03/2010, 16h17
  3. Changer couleur d'arrière plan pour une case d'un tableau
    Par Mo_Poly dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/10/2009, 16h33
  4. Changer la couleur d'arrière plan d'une fenêtre MDI.
    Par tssi555 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/10/2008, 14h27
  5. [TABLE] Couleurs d'arrière-plan des TR alternées
    Par arkienou dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 17/02/2007, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo