OVH Cloud OVH Cloud

Problèmes avec des blocs div...

17 réponses
Avatar
Damien
Bonjour à tous,
voilà j'ai un petit problème avec le code suivant :
http://www.editeurjavascript.com/scripts/scripts_navigation_3_182.php
en effet, j'ai mis un tableau dans un des blocs mais celui-ci apparait
totalement vide sous internet explorer (sous firefox ça marche impec)...

D'avance merci pour votre aide

<div class="cachediv" name="mondiv1" id="mondiv1">
<div class="Style9" style="border: 1px solid black;
background-color: whitesmoke; margin-bottom: 2px;">
<p><br>
&nbsp;&nbsp;<img src="Images/blabla.jpg" width="145"
height="198" border="1"></p>

<table width="402" height="106" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td>blablablablablablablablablabla</td>
<td>blablablablablablablablablabla</td>
</tr>
</table>
</div>
</div>



Damien

10 réponses

1 2
Avatar
Damien
Je viens de me rendre compte que ça ne marchait pas avec les tableaux,
quelqu'un sait comment réaliser une disposition d'une même type sans
tableaux ?


Bonjour à tous,
voilà j'ai un petit problème avec le code suivant :
http://www.editeurjavascript.com/scripts/scripts_navigation_3_182.php
en effet, j'ai mis un tableau dans un des blocs mais celui-ci apparait
totalement vide sous internet explorer (sous firefox ça marche impec)...

D'avance merci pour votre aide

<div class="cachediv" name="mondiv1" id="mondiv1">
<div class="Style9" style="border: 1px solid black;
background-color: whitesmoke; margin-bottom: 2px;">
<p><br>
&nbsp;&nbsp;<img src="Images/blabla.jpg" width="145"
height="198" border="1"></p>

<table width="402" height="106" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td>blablablablablablablablablabla</td>
<td>blablablablablablablablablabla</td>
</tr>
</table>
</div>
</div>



Damien



Avatar
ASM
Damien wrote:
Je viens de me rendre compte que ça ne marchait pas avec les tableaux,
quelqu'un sait comment réaliser une disposition d'une même type sans
tableaux ?


<td>
<p class="cachediv" name="mondiv" id="mondiv">
bla bla bla
</td>

ou :

<td>
<div class="cachediv" name="mondiv" id="mondiv">
<p> bla bla bla </p>
</div>
</td>

çà le ferait pas ?



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Thibaut Allender
Je viens de me rendre compte que ça ne marchait pas avec les tableaux,
quelqu'un sait comment réaliser une disposition d'une même type sans
tableaux ?


on peut directement specifier un id à une cellule ou un tr, voire un
tableau complet, mais il faut faire attention aux propriétés qu'on leur
applique ensuite

en effet, une cellule de tableau n'est pas de type display: block, mais
plutôt display: table-cell, ce qui n'est evidemment pas reconnu par IE...

donc, lors de l'alternance, utiliser display: none ou display 'vide' (en
JS, ca se traduit par document.getElementById('id').style.display = ''),
afin de remettre en place le display par defaut de l'element en question

--
thibaut allender | freelance | http://capsule.org

Avatar
Damien
ASM wrote:

<td>
<p class="cachediv" name="mondiv" id="mondiv">
bla bla bla
</td>

ou :

<td>
<div class="cachediv" name="mondiv" id="mondiv">
<p> bla bla bla </p>
</div>
</td>

çà le ferait pas ?

--
Stephane Moriaux et son [moins] vieux Mac


Non ça ne m'arrange pas trop...



on peut directement specifier un id à une cellule ou un tr, voire un
tableau complet, mais il faut faire attention aux propriétés qu'on leur
applique ensuite

en effet, une cellule de tableau n'est pas de type display: block, mais
plutôt display: table-cell, ce qui n'est evidemment pas reconnu par IE...

donc, lors de l'alternance, utiliser display: none ou display 'vide' (en
JS, ca se traduit par document.getElementById('id').style.display = ''),
afin de remettre en place le display par defaut de l'element en question

--
thibaut allender | freelance | http://capsule.org


J'ai pas compris grand chose (oui je suis encore que débutant ;) )...
Sinon, j'avance dans mon problème : l'orsque j'enlève le cache div, mon
tableau apparait correctement même si je le ferme et que je le re ouvre
après...
La solution serait peut être de les laisser tous ouvers, et au chargement de
la page lancer ça : <a href="javascript:CacheTout( 'mondiv' )"> de façon à
ce que ça referme tout les div...
Mais bon comme dis précédement je ne suis encore que débutant alors... si
quelqu'un pouvait m'aider...

En tous cas merci quand même à vous deux pour l'interet que vous avez porté
à mon problème

DAMIEN

Avatar
ASM
Damien wrote:
ASM wrote:
<un truc super interressant>



Non ça ne m'arrange pas trop...


à propos que fait ta css : Style9 ?

comme, faute d'exemple complet (fonctionnel) en ligne,
je ne vois pas pourquoi le table à l'interieur du div
n'apparaît pas


donc, lors de l'alternance, utiliser display: none ou display 'vide' (en
JS, ca se traduit par document.getElementById('id').style.display = ''),
afin de remettre en place le display par defaut de l'element en question


J'ai pas compris grand chose (oui je suis encore que débutant ;) )...


c'est pas grâve, de tte façon c'est quasi ce qui est fait
dans le script que tu utilises

sa fonction : function DivStatus( nom, numero )
se termine par :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';

on y change de class au lieu de modifier le display

.cachediv {
visibility: hidden;
overflow: hidden;
height: 1px;
margin-top: -1px;
position: absolute;
}

mais ... cette class est peut-être un peu compliquée ?
et IE n'arrive pas à revenir au niveau par défaut ?

essaie alors avec l'idée de Thibaut

soit par les css:

.cachediv {
display: none;
}


soit
en changeant la css :
.cachediv { }

puis dans fonction DivStatus
après la ligne :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
ajouter
Pdiv.display = (Pdiv.className == 'cachediv')? 'block' : 'none';}

Attention à la position de l'accolade fermante qui est apres ligne 2 }

La solution serait peut être de les laisser tous ouvers, et au chargement de
la page lancer ça : <a href="javascript:CacheTout( 'mondiv' )"> de façon à
ce que ça referme tout les div...


oui ce ne serait pas mal

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Damien
Ca marche impec, mais un autre souci est apparu, en effet, impossible de
refermé le bloc...

PS : la css Style9 détermine la couleur de mon bloc div

Merci beaucoup pour ce début de résolution

Damien

--------------------------------------------------------------------
"ASM" a écrit dans le message
de news: 42e280b4$0$25046$
Damien wrote:
ASM wrote:
<un truc super interressant>



Non ça ne m'arrange pas trop...


à propos que fait ta css : Style9 ?

comme, faute d'exemple complet (fonctionnel) en ligne,
je ne vois pas pourquoi le table à l'interieur du div
n'apparaît pas


donc, lors de l'alternance, utiliser display: none ou display 'vide' (en
JS, ca se traduit par document.getElementById('id').style.display = ''),
afin de remettre en place le display par defaut de l'element en question


J'ai pas compris grand chose (oui je suis encore que débutant ;) )...


c'est pas grâve, de tte façon c'est quasi ce qui est fait
dans le script que tu utilises

sa fonction : function DivStatus( nom, numero )
se termine par :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';

on y change de class au lieu de modifier le display

.cachediv {
visibility: hidden;
overflow: hidden;
height: 1px;
margin-top: -1px;
position: absolute;
}

mais ... cette class est peut-être un peu compliquée ?
et IE n'arrive pas à revenir au niveau par défaut ?

essaie alors avec l'idée de Thibaut

soit par les css:

.cachediv {
display: none;
}


soit
en changeant la css :
.cachediv { }

puis dans fonction DivStatus
après la ligne :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
ajouter
Pdiv.display = (Pdiv.className == 'cachediv')? 'block' : 'none';}

Attention à la position de l'accolade fermante qui est apres ligne 2 }

La solution serait peut être de les laisser tous ouvers, et au chargement
de la page lancer ça : <a href="javascript:CacheTout( 'mondiv' )"> de
façon à ce que ça referme tout les div...


oui ce ne serait pas mal

--
Stephane Moriaux et son [moins] vieux Mac




Avatar
Thibaut Allender
puis dans fonction DivStatus
après la ligne :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
ajouter
Pdiv.display = (Pdiv.className == 'cachediv')? 'block' : 'none';}


euh non, il ne faut justement pas mettre en display; block une table, un
tr ou un td...
ce qui donne :
Pdiv.display = (Pdiv.className == 'cachediv')? '' : 'none';

--
thibaut allender | freelance | http://capsule.org

Avatar
Damien
Ca marche aussi mais impossible de refermer les blocs une fois ouvert...


"Thibaut Allender"
a écrit dans
le message de news:
puis dans fonction DivStatus
après la ligne :
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
ajouter
Pdiv.display = (Pdiv.className == 'cachediv')? 'block' : 'none';}


euh non, il ne faut justement pas mettre en display; block une table, un
tr ou un td...
ce qui donne :
Pdiv.display = (Pdiv.className == 'cachediv')? '' : 'none';

--
thibaut allender | freelance | http://capsule.org



Avatar
Thibaut Allender
Ca marche aussi mais impossible de refermer les blocs une fois ouvert...


moi je jouerais seulement sur le display: none/rien plutot que sur un
changement de classe, il doit y avoir un conflit qq part, donc ca
donnerait qq chose avec uniquement ceci :

Pdiv.display = (Pdiv.display == 'none')? '' : 'none';

il faut aussi les definir en display: none au depart, afin de justement
pouvoir jouer sur le display
si l'element n'en a pas (ou uniquement dans la classe)

donc :

<td style="display:none;" id="...">

à partir ce moment là, Pdiv.display aura un effet

PS : pourrais-tu lire http://www.giromini.org/usenet-fr/repondre.html
pour faciliter les echanges ? merci

--
thibaut allender | freelance | http://capsule.org

Avatar
Damien
moi je jouerais seulement sur le display: none/rien plutot que sur un
changement de classe, il doit y avoir un conflit qq part, donc ca
donnerait qq chose avec uniquement ceci :

Pdiv.display = (Pdiv.display == 'none')? '' : 'none';


Ok donc je le met à la place de ça : Pdiv.className = ( Pdiv.className ==
'cachediv' ) ? '' : 'cachediv';

il faut aussi les definir en display: none au depart, afin de justement
pouvoir jouer sur le display
si l'element n'en a pas (ou uniquement dans la classe)

donc :

<td style="display:none;" id="...">


mais ça je le met où ?
Ho lalalalala, c'est vraiment compliqué... :(

à partir ce moment là, Pdiv.display aura un effet

PS : pourrais-tu lire http://www.giromini.org/usenet-fr/repondre.html
pour faciliter les echanges ? merci


Ha ok, désolé, c'est mieux là ? ;)

DAMIEN

1 2