Compter le nombre d'éléments d'une liste ul / Mise en page CSS

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Bonjour,

    Je souhaiterais compter le nombre d'éléments li d'une liste ul d'un menu afin d'appliquer un nom de classe CSS différentes en fonction de ce nombre et de pouvoir ainsi gérer la taille et la disposition de ces éléments dans ma feuille de style. Je cherche donc quelque chose un peu dans ce genre là : http://www.joomlack.fr.nf/tutos-desi...-variable.html
    Est ce que quelqu'un sait comment l'appliquer à des éléments d'une liste ?

  • #2
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Bonjour,
    je ne comprends pas bien ta question...
    Si tu veux numéroter les éléments de menu, Joomla le fait par défaut en mettant des ID item.
    Quel est le rapport avec l'intégration conditionnelle de modules dans un template ?
    Un peu de pub: http://www.aplomb.ch

    Commentaire


    • #3
      Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

      Concrètement, je veux compter le nombre d'éléments du menu (les li). Ce nombre n'est pas le même sur toutes les pages puisque c'est un sous-menu qui dépend de la thématique sélectionnée. En fonction de ce nombre, je veux appliquer une présentation CSS différente (height, position...) afin que ce menu soit toujours bien centré dans un espace fixe.
      Je viens de faire ces changements en utilisant une classe ayant pour nom la catégorie/thématiques (http://forum.joomla.fr/showthread.ph...-la-catégorie) mais j'aimerais automatiser ce fonctionnement, que la présentation change en ajoutant un nouvel élément au menu par exemple.
      Le principe serait d'appliquer un nom de classe en fonction de ce nombre (menu-3, menu-4, menu-5 par exemple) et d'ajuster la présentation pour ces classes dans les CSS (au lieu de les ajuster pour les noms de catégories). En gros, c'est le même principe que le lien que j'ai mis dans le post.

      Commentaire


      • #4
        Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

        Re,
        Alors, il te faut faire de la réécriture de module dans ton template. Tout dépend du module utilisé, ça peut ce compliquer...
        Un peu de pub: http://www.aplomb.ch

        Commentaire


        • #5
          Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

          Pas forcément. Si l'on se base sur le lien que j'ai donné dans le post ou celui ci (http://www.developpez.net/forums/d84...ments-enfants/), il suffirait de compter dans une variable le nombre de li, d'affecter dans une variable un nom différent de classe en fonction du nombre renvoyé par cette variable et d'affecter cette dernière variable à une div qui engloberait le menu (simple module de menu en ul). Bien sûr, ce n'est possible que s'il existe une fonction php (ou dans ce lien, c'est du Javascript) qui est capable de compter des li ou des enfants de ul.

          Commentaire


          • #6
            Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

            Tu devrais préciser ce que tu entends par

            En fonction de ce nombre, je veux appliquer une présentation CSS différente (height, position...) afin que ce menu soit toujours bien centré dans un espace fixe.
            car il y a pas mal de chances que ce soit directement gérable en css.

            En premier lieu pourquoi ne les comptes-tu pas à la main au préalable ?
            Dernière édition par kursus à 04/04/2012, 11h58

            Commentaire


            • #7
              Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

              Envoyé par Jeremylgx Voir le message
              Bien sûr, ce n'est possible que s'il existe une fonction php (ou dans ce lien, c'est du Javascript) qui est capable de compter des li ou des enfants de ul.
              Ok, tu peux créer toi même ce petit code php, il ne doit pas être compliqué. Dans mon précédent post, je te disais simplement où mettre ce code...
              Un peu de pub: http://www.aplomb.ch

              Commentaire


              • #8
                Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                J'imaginais quelque chose fonctionnant comme ceci :

                -Une fonction calcule le nombre d'éléments li descendants d'ul et le stocke dans une variable $nb-li-menu

                -Une expression conditionnelle affecte à une autre variable un nom de classe différente en fonction de la variable $nb-li-menu
                if $nb-li-menu=2, $class-menu==menu-2
                if $nb-li-menu=3, $class-menu==menu-3

                -Dans le fichier du template index.php, j'entoure le menu par une div contenant cette classe.
                <div class="<?php echo('$class-menu') ?>

                -Et dans mon fichier template.css, je style les différentes classes.
                .menu-2 {*... }
                .menu-3 {*... }
                ...

                @al1pb : Je cherche justement cette fonction php. Je ne pense qu'il faille aller jusqu'à la réécriture du module mais juste utiliser index.php et template.css.

                Commentaire


                • #9
                  Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                  Avant de construire un tank pour tuer une mouche, essaye de répondre à ma question...

                  Commentaire


                  • #10
                    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                    @kursus : En gros, mettre des marges, des hauteurs des li, des tailles de texte et des valeurs top de position:absolute différentes.

                    Commentaire


                    • #11
                      Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                      En quoi tu ne peux pas faire ça avec les classes d'items du menu standard ?

                      Commentaire


                      • #12
                        Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                        Je ne vois pas comment. Je ne sais pas à l'avance combien d'éléments il peut y avoir. Comment ferais-tu ?

                        Commentaire


                        • #13
                          Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                          Envoyé par Jeremylgx Voir le message
                          @al1pb : Je cherche justement cette fonction php. Je ne pense qu'il faille aller jusqu'à la réécriture du module mais juste utiliser index.php et template.css.
                          Ca serrait plus simple pour compter le nombre de li, et tu pourais mettre la classe menu-2 dans ul sans créer un div supplémentaire

                          Mais je penses qu'il doit y avoir une solution nettement plus simple sans usine à gaz ni programmation php

                          Bon courage
                          Un peu de pub: http://www.aplomb.ch

                          Commentaire


                          • #14
                            Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                            J'ai encore une question:
                            Quel module utilises-tu pour afficher tes menus?
                            Un peu de pub: http://www.aplomb.ch

                            Commentaire


                            • #15
                              Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

                              @al1pb : Le module de base de Joomla pour afficher les menus : mod_menu

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X