IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

problème affichage des sous catégories d'un menu CSS ac IE 7 et antérieurs


Sujet :

CSS

  1. #1
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut problème affichage des sous catégories d'un menu CSS ac IE 7 et antérieurs
    Bonjour à tous,
    je développe actuellement un site utilisant un menu CSS. Les catégories, sous catégories et sous-sous-catégories se fait via des requetes sur la base mysql.
    L'affichage du menu fonctionne correctement sous ff mais bug sous Internet Explorer 7 et antérieur :
    -Avec IE 7 : les sous-sous catégories ne s'affichent pas. Les sous catégories s'affichent quant à elles
    -Avec IE 6 : seules les catégories s'affichent, pas d'affichage des sous cat, ni des sous sous catégories
    -Avec IE 8 : tout fonctionne correctement ...


    Voici le code du menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div>
    	<!-- ouverture ul rang 1-->
    	<ul id="menu">
    		<li><a href="index.php">Accueil</a></li>	
     
     
     
    	<li><a href="contact.php">Contact</a></li>	<!-- element de rang 1 fixe-->	
     
    </ul> <!--fin de la liste de rang 1 -->
     
     
    </div>
    et voici le code css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    #menu, #menu ul /* Liste */     
    {
            padding : 0; /* pas de marge intérieure */
            margin : 0; /* ni extérieure */
            list-style : none; /* on supprime le style par défaut de la liste */
            line-height : 21px; /* on définit une hauteur pour chaque élément */
            text-align : center; /* on centre le texte qui se trouve dans la liste */
    }
     
    #menu /* Ensemble du menu */
    {
    		/*PARAMETRES A AJUSTER*/
    		margin-left:30px;
     
            font-weight : bold; /* on met le texte en gras */
            font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
            font-size : 12px; /* hauteur du texte : 12 pixels */
    }
     
    #menu a /* Contenu des listes */
    {
            display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
            padding : 0; /* aucune marge intérieure */
            color : #fff; /* couleur du texte */
            text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
     
    		/*PARAMETRES A AJUSTER*/
    		background : #BA9F5A; /* couleur de fond */        
            width : 100px; /* largeur  modifie origine 140px*/
    		height :40px;
    }
     
    #menu li /* Elements des listes */      
    { 
            float : left; 
            /* pour IE qui ne reconnaît pas "transparent" */
            border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li
    {
            border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
    }
     
    #menu li ul /* Sous-listes */
    { 
            position: absolute; /* Position absolue */
            width: 144px; /* Largeur des sous-listes */
            left: -999em; /* Hop, on envoie loin du champ de vision */
    }
     
     
    #menu li ul li /* Éléments de sous-listes */
    {
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li ul li                
    {
            border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
    }
     
    #menu li ul ul 
    {
            margin    : -42px 0 0 100px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes 
    		modification du dernier attribut a 140 px pour regler pb des ss menus au lieu de 144px puis 100 px
    		modification du premier attribut  a - 42px pour regler pb ajustement en hauteur des sous menus afin qu ils tombent en face de leur categorie
    		*/ 
     
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-left     : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */      
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
    html>body #menu li ul ul                
    {
            border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
    }
     
    #menu a:hover /* Lorsque la souris passe sur un des liens */    
    {
            color: #000; /* On passe le texte en noir... */
            background: #fff; /* ... et au contraire, le fond en blanc */
    }
     
    #menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
    {
            left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
    }
     
     
    #menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
    {
            left: auto; /* Repositionnement normal */
            min-height: 0; /* Corrige un bug sous IE */
    }
    Si quelqu'un sait comment résoudre ce problème ...
    cordialement
    merci d'avance

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Bonjour,

    Pourrais tu nous donner ton code généré stp ?
    Je ne réponds pas aux questions techniques par MP.

  3. #3
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    bonjour et merci de ta réponse,
    le code du menu, menu.html et le css, se trouve dans le post précédent.
    Sur chaque page, le menu est inclus, voici la page d'index par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php include('style/head.html') ?>
     
    <body>
     
     
    <div id="wrapper">
    <!-- start header -->
    <div id="header">
    	<div id="logo">
    		<h1><a href="#">Service de XXXXX  </a></h1>
    	</div>
    	<div id="menu">
     
    	</div>
    </div>
    <!-- end header -->
     
     
    <div id="page"><!-- start page -->	
    	<div id="content"><!-- start content -->
     
     <!-- insertion de la sidebar -->
    	<div style="clear: both;">&nbsp;</div><!-- cache ce qui depasse -->
    </div><!-- end page -->
    </div>
     
     
    </body>
    </html>
    merci
    cordialement

  4. #4
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    ce javascript régle le pb sous IE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sfHover = function() {
            var sfEls = document.getElementById("menu").getElementsByTagName("LI");
            for (var i=0; i<sfEls.length; i++) {
                    sfEls[i].onmouseover=function() {
                            this.className+=" sfhover";
                    }
                    sfEls[i].onmouseout=function() {
                            this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                    }
            }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);
    benilto

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PrestaShop] SEO : affichage des sous-catégories
    Par sami_c dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 04/06/2013, 17h45
  2. [eZ Publish] Problème affichage des sous-éléments dans le Back Office
    Par azrael62 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 11/09/2012, 10h46
  3. Affichage des sous-catégories
    Par djuls dans le forum Langage
    Réponses: 8
    Dernier message: 01/09/2009, 18h29
  4. probleme d'affichage des sous menu! FF/IE7/IE6
    Par hybride1106 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/09/2007, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo