C'est parti pour une longue explication du comment je voudrai que ça marche.
Allez zouuuu.
Je suis en train de faire un modele de page type pour chaque employé. Deja, on a en haut un tableau regroupant photo, nom, etc etc. Et tout autour, les liens vers les differentes rubirques (experiences, cursus scolaire etc etc). Donc voila ce que je vais faire :
Le tableau reste toujours affiché en haut. Si on passe sur un lien (meme pas besoin de cliquer, mais bon ça change pas grand chose), pouf! la section correspondante apparait en dessous.
Donc pour faire ça, je me suis servit de div, que je met en hidden. Ensuite, qd je passe au dessus d'un lien, je met tout les div en hidden, et le div correspondant en visible.
Jusque là pas de pb.
Bon, en mettant mes div a la suite de l'autre dans mon code, bin je me suis rendu compte que meme si ils etaient invisibles, ils prenaient qd meme leur place. Je m'explique :
j'ai 5 div pour 5 parties. La derniere partie etant experience. Si j'ecrit mon code HTML de la sorte :
Code :
- <table>
- mon tableau d'en tete
- </table>
- <div id="cv" style="visibility=hidden;">
- contenu ...
- </div>
- etc etc jusqu'au dernier div :
- <div id="experience" style="visibility=hidden;">
- contenu2 ...
- </div>
|
alors, lorsque le div experience devient visible, il n'apparait pas juste au dessous de mon tableau.
Bon j'ai remédié a ça aussi en mettant les div en position absolute.
Seulement pb pour mettre les x et y : mon tableau ne fait pas toujours la meme hauteur.
Donc, j'avais trouvé un script pas mal, qui permet de fixer le x et y en fonction d'une balise "ancre". Je m'explique :
je met juste au dessous de mon tableau une balise <a> vide de la sorte :
Code :
- <a name="ancrage" id="ancre">
|
et ensuite, par un script javascript (que j'execute sur le onLoad du body), je recupere l'ordonnée y de la balise <a> (c pour ça quelle a le nom d'ancre), et je l'attribue a tous mes div.
Là aussi, ça marche niquel, que ce soit IE, NS ou opera.
Bon, on avance petit a petit
Maintenant ce que je voudrai faire :
pour faire plus joli, je voulais mettre des styles CSS sur mes div. Au debut, je passait par un tableau auquel je rajoutai des bordures oranges. L'unique cellule du tableau avait la couleur #EEEEEE en backgroundcolour. Grace a la propiete cellspacing, j'obtenais donc un paragraphe gris, avec une marge blanche (cellspacing) puis une marge orange (CSS). ça fonctionne tres bien avec NS6, IE et opera.
Le gros pb qui se pose en faisant ça, c avec NS4.x : comme il interprete mal les CSS, ça part en live : j'ai un div qui s'affiche, mais il ne disparait plus. Les autres n'apparaissent plus. Si j'enleve les CSS du tableau, pas de pb ça marche. Donc le pb vient bien de là.
Donc, je voulais feinter en faisant, grace a du JS, un test pour savoir sur quel NS on est :
-si c le 4.x, j'ecris l'en-tete du tableau sans CSS
-sinon, j'ecris l'en tete avec les CSS.
ça marche, mais ce qui est dommage c'est que je n'ai pas la jolie bordure orange sous ns4.
Ensuite j'ai eu une idée terrible : pourquoi ne pas appliquer le style directement sur mon div, et supprimer le tableau ?!!
donc j'essaie : Hop, je lance IE voir ce que ça donne. Bon, dommage, avec le tableau et la propriete cellspacing, j'avais une marge blanche avant d'avoir mes bordures, et c'etait la classe. Là, du coup, ya plus la ptite marge blanche donc je me retrouve avec un div en fond gris avec la bordure orange. C'est pareil pour NS6 et opera.
Bon, un peu degouté, je lance a tout hasard NS4 : et là
SUUUUURPRIIISE, j'obtient enfin les bordures oranges, et tout marche !! Et là, de plus en plus fort grace a la magie de NS4, il met meme des marges blanches autour, exactement comme le faisait mon tableau sous IE, NS6 et Opera.
Donc je me dis; bon je vais faire la feinte ultime :
je fais un script (qu'on va appelle scriptQuiTue) qui verifie si c ns 4:
-si c vrai, j'ecris mon div avec le style
-sinon, j'ecris mon div, je rajoute un tableau avec style CSS. Ensuite avant la fin du div, je reteste et je met la fin du code pour le tableau.
Là je me dis c bon, je le masterise ce NS, tu vas voir ça va etre du gateau.
Mais non, misere de misere, il y a pb : plus rien ne s'affiche !!!
Je crois en connaitre la cause : l'ancrage de mes div !!
en effet, au onLoad du body, j'appelle un script pour fixer les coordonnées de mes div. Or, ceux-ci etant ecrit chez le client (a cause de mon script sciprtQuiTue), il ne les trouve pas pour fixer les coordonnées et plante.
heuuuu, j'ai ete clair ?