Partage
  • Partager sur Facebook
  • Partager sur Twitter

Longueur bloc div

    1 janvier 2009 à 19:26:21

    Bonjour à tous, et bonne année à chacun de vous !

    Alors voilà, j'ai un petit soucis en javascript/css. J'ai un bloc div dont la hauteur varie en fonction de son contenu. Par exemple, plus j'ai de contenu, plus mon div sera haut, et vis-versa. J'aimerais en faite régler la hauteur de mon div div tous les 21px. En effet, on pourrait partir d'une base de 21px minimum, puis continuer sur des hauteurs de x*21px.

    Par exemple, si j'ai un contenu de 50 px de haut, je l'arrondirais à 63px (21 * 3px).

    Voilà voilà, j'espère avoir été clair.

    En vous souhaitant une excellente soirée, bien cordialement, Gada.
    • Partager sur Facebook
    • Partager sur Twitter
      1 janvier 2009 à 19:31:08

      Un script de ce genre :
      var oDiv = document.getElementById("id du div");
      var iHeight = parseInt(oDiv.style.height);
      var iNewHeight = iHeight + (21 - iHeight % 21);
      oDiv.style.height = iNewHeight + "px";
      
      • Partager sur Facebook
      • Partager sur Twitter
        1 janvier 2009 à 20:17:43

        Heuuu, oui ça à l'air d'être ça.

        Seulement mes compétences en javascript restent... basiques, voir quasis nul :-°

        Je vais voir ça de plus près, merci de ta rèponse :)
        • Partager sur Facebook
        • Partager sur Twitter
          1 janvier 2009 à 20:22:48

          Timot, pour que ton code fonctionne, il faudrait pas que le height du div soit précisé dès le départ ?
          Pour récupérer la hauteur du contenu, c'est pas un truc comme scrollHeight qu'il faut utiliser ?
          • Partager sur Facebook
          • Partager sur Twitter
            1 janvier 2009 à 20:24:43

            C'est des maths plus que du javascript :
            - on récupère la valeur de la hauteur
            - on veut trouver le multiple de 21 immédiatement supérieur :
            - on utilise le modulo, qui est le reste de la division euclidienne :
            hauteur = 21*quotient + reste
            newHauteur = 21*(quotient + 1) => le multiple immédiatement supérieur
            newHauteur = 21*quotient + 21
            isolons le quotient dans la première formule :
            21*quotient = hauteur - reste
            Donc, on obtient :
            newHauteur = hauteur + 21 - reste
            Ce qui donne bien le résultat ci dessous ;) .

            Golmote, au debut je pensais utilisé offsetHeight, sauf qu'on ne peut pas forcer l'offset, donc on trouve la nouvelle hauteur, mais on est obligé de la mettre avec .style.height, donc autant récuperer la hauteur avec .style.height pour éviter les décallages entre hauteur réelles et hauteur dans le style.
            Mais c'est vrai qu'il faut qu'elle soit défini quelque part, donc au pire, beh faut récuperer la hauteur avec : var iHeight = parseInt(oDiv.offsetHeight);
            • Partager sur Facebook
            • Partager sur Twitter

            Longueur bloc div

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown