[HTML / JS] Pb avec div pour afficher/masquer.

Pb avec div pour afficher/masquer. [HTML / JS] - Programmation

Marsh Posté le 18-08-2002 à 12:11:33    

J'utilise du JS pour que lorsque je clique sur un bouton radio, j'affiche ou je masque une <DIV>.
Seuleument, mon pb, c'est que quand je masque une <div>, elle est masquée, mais j'ai tout un espace vide à la place, et ce qui est en dessous est tout de même décalé.
Comment est-ce que je pourrais faire pour ne pas avoir cet espave vide?

Reply

Marsh Posté le 18-08-2002 à 12:11:33   

Reply

Marsh Posté le 18-08-2002 à 12:55:32    

Mmmm bizarre, normalement ça ne devrait pas se produire par défaut ce genre de choses.
 
Comment sont positionnés tes <div> (de manière absolue, relative, flottant, normale) ?
Comment les caches-tu ? Avec style.visibility = "hidden" ?

Reply

Marsh Posté le 18-08-2002 à 13:33:33    

je les cache avec par exemple :  
<div id="html" style="visibility:hidden;">
C'est quoi cette histoire de div relative, absolue et tout??
Dans mon exemple, la <div> est déjà ds une <div> qui elle même est dans une cellule de tableau.
Si ça peut t'éclairer?

Reply

Marsh Posté le 18-08-2002 à 13:56:09    

il faut que t'emploies absolue, ça permet de placer ton <div> n'importe où sur le document, sans qu'il ne fasse partie intégrante de celui-ci... Il "flottera" au-dessus, en quelque sorte

Reply

Marsh Posté le 18-08-2002 à 13:57:56    

Reply

Marsh Posté le 18-08-2002 à 14:28:40    

<div id="html" style="display: none;">
 
visibility
  pour afficher / cacher l'élément dans le document.
  il garde sa taille.
 
display
  pour changer le type de rectangle de formatage généré par l'élément.
    none : aucune rectangle (ce que tu veux)
    block : rectangle qui prend toute la largeur de l'écran (div)
    inline : rectangle qui ne prend que la taille de son contenu (span)

Reply

Marsh Posté le 18-08-2002 à 15:02:47    

Bon, horny-grandcornu et youdontcare on déjà donné pas mal d'éléments de réponse.
 
Apparament, tu n'utilises pas le positionnement absolu, donc il faut que tu utilises la propriété display.
 
Lorsque tu cliques sur ton bouton radio le code appelé ressemble à ça :
 

Code :
  1. box = document.getElementById(html);
  2. if (box.style.display != "none" ) {
  3.   box.style.display = "none";
  4. } else {
  5.   box.style.display = "block";
  6. }


 
Au lieu de "block" tu peux être amené à mettre "inline" si ton <div> est un élément de type texte.

Reply

Marsh Posté le 18-08-2002 à 19:10:06    

Merci!
J'ai utilisé display comme me l'a indiqué Youdontcare, ça marche nickel!
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed