Menu de menus de menus

Menu de menus de menus - HTML/CSS - Programmation

Marsh Posté le 13-08-2007 à 14:46:08    

Salut,
 
Je réalise un menu, sous forme de liens, qui fait apparaitre deux autres liens par sous-menus.
Les liens des sous-menus font apparaitre une table.
 
Pour cela j'utilise javascript et CSS dans mon XHTML 1.0
Tout fonctionne bien partout (Linux: Firefox, Opera, Konqueror, Netscape; Mac: Safari, Firefox, Opera; Win: Firefox, Opera, Netscape, Safari)
sauf avec Internet Explorer où les sous-menus n'apparaissent pas mais leurs emplacements oui.
 
Voici ce que j'utilise:
 
        if(element_styleA) {
            if (element_styleA.visibility == 'hidden') {
                element_styleA.visibility='visible';
                element_styleA.display=''; // to get browser default ?
                element_styleA.position='relative';
            } else {
                element_styleA.visibility='hidden';
                element_styleA.display='none';
                element_styleA.position='absolute';
            }
        }
 
Voici la structure de l'ensemble:
 
<div>
    <table lien1>
        <div>
            <table sous-lien1>
                <table choix-final>
                </table>
            </table>
            <table sous-lien2>
            ...
        </div>
    </table>
    <table lien2>
    ...
<div>
 
Y a-t-il un mix des CSS display, position et visibility qui fonctionne sous tous les navigateurs ?
 
Merci

Reply

Marsh Posté le 13-08-2007 à 14:46:08   

Reply

Marsh Posté le 13-08-2007 à 15:10:08    

Voilà un exemple de menu que j'avais fait en css il y a presque deux ans :
http://forum.hardware.fr/hfr/Progr [...] 8186_1.htm
 
Je ne me souviens plus s'il fonctionne avec opera, mais je n'ai pas eu de problème avec firefox et en plaçant les réglès css sur des liens (au lieu des <li> et <ul> ) ça fonctionne aussi avec IE.
Je te laisses regarder la partie css et l'adapter à ton menu.

Reply

Marsh Posté le 13-08-2007 à 15:31:04    

Le problème est que c'est un menu de menus donc avec plusieurs niveaux (cf. http://ludwig-sun1.unil.ch/~smoretti/reformat.png pour une capture d'écran); sans balises li ni ul en plus.
 

Reply

Marsh Posté le 13-08-2007 à 16:13:13    

C'est pour ça que je te disais d'adapter ce que j'avais fait.
Moi j'étais parti de listes imbriqués pour l'accessibilité, mais à l'affichage,je le faisait s'afficher comme si c'était une balise <table> (le fameux display:table;).  
Au final, même si j'avais choisit des composants table, j'aurais quand même eu les cas "none", "inherit" et "table" dans mes display.
 
 
Au fait, à quoi ça te sert de modifier la propriété css "visibility" alors que le "display" à "none" suffit pour le cacher et libérer son espace à l'écran? De même à quoi ça te sert de changer la propriété css "position" alors que le display à none est censé libérer toute la place qu'il prenait à l'écran? Vu que t'as testé ton menu sur plus de navigateur que moi, il y a peut être une raison, mais je ne la vois pas.

Reply

Marsh Posté le 13-08-2007 à 16:29:45    

Si j'enlève la propriété visibility du javascript, firefox se met à avoir le même comportement que IE.
 
J'ai d'autres propriétés visibility dans le code XHTML afin d'avoir un rendu si le javascript n'est pas actif. C'est peut-être ces propriétés là qui interfèrent.
 
Le problème c'est que je ne trouve que très peu d'exemples pour les menus contenant d'autres menus.

Reply

Sujets relatifs:

Leave a Replay

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