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

Mise en page CSS Discussion :

Affichage d'un arbre avec des css


Sujet :

CSS

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Affichage d'un arbre avec des css
    Bonjour,
    je suis tombé sur ce petit script (que j'aime bien car il est très léger) pour plier/déplier une liste partiellement ordonnée dans une page web. Son défaut est qu'il modifie le style d'affichage des balises <ul> sur toute la page, même celles qui sont en dehors de la liste à plier/déplier . Y a t'il un moyen de parer à ce problème ou faut-il que j'utilise un autre script? Cela fait un petit moment que je cherche et je ne vois pas... mais je ne suis pas pas très bon ni avec les css ni avec javascript.

    D'avance merci pour vos réponses.
    Manu.
    Code : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <style> 
    ul ul  {
      display: none;
    } 
     
     
     
    .ele {
      cursor: pointer;
    }
     
    .ele:hover {
      color: red;
    }    
        </style>
     
    </head>
    <body>
    <ul>
      <li><span class="ele">One</span>
        <ul>
          <li><span class="ele">Two</span>
            <ul>
              <li><span class="ele">Three</span>
                <ul>
                  <li><span class="ele">Four</span></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
     
    <script>function toggle() {
      var ls = this.parentNode.getElementsByTagName('ul')[0],
          styles, display;
     
      if (ls) {
        styles = window.getComputedStyle(ls);
        display = styles.getPropertyValue('display');
     
        ls.style.display = (display === 'none' ? 'block' : 'none');
      }
    }
     
     
    var eles = document.querySelectorAll('.ele');
     
    Array.prototype.slice.call(eles).forEach(function (e) {
      e.addEventListener('click', toggle);
    });</script>
    </body>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il suffit de l'identifier :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ul class="arbre">
      <li><span class="ele">One</span>
    N.B. J'ai mis class="arbre", au cas où on veux pouvoir en avoir plusieurs sur la page.
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ul.arbre ul  {
      display: none;
    }
    ul.arbre .ele {
      cursor: pointer;
    }
    ul.arbre .ele:hover {
      color: red;
    }
    Le JavaScript peut se simplifier :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var eles = document.querySelectorAll("ul.arbre .ele");
    eles.forEach(function(ele) {
      ele.addEventListener("click", function(){
        var ls = ele.parentNode.getElementsByTagName("ul")[0];
          ls.style.display = (ls.style.display == "block")? "none" : "block";
      });
    });
    Dernière modification par Invité ; 13/09/2018 à 20h14.

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci infiniment pour cette réponse.
    Cela marche parfaitement !
    Manu.

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

Discussions similaires

  1. [RCP] Affichage d'un document avec des erreurs
    Par Balbuzard dans le forum Spring
    Réponses: 1
    Dernier message: 16/10/2008, 17h16
  2. Réponses: 2
    Dernier message: 14/06/2008, 18h03
  3. affichage d'un tableau avec des colonnes fixes
    Par jbaudens dans le forum C
    Réponses: 3
    Dernier message: 28/10/2007, 19h31
  4. Créatin d'un Wysiwyg avec des CSS
    Par le_binr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/09/2006, 14h16
  5. [JSTL 1.0.6] affichage d'un texte avec des retour chariots
    Par clettebou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/08/2006, 10h16

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