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 d'héritage css (classe et objet)


Sujet :

CSS

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut Problème d'héritage css (classe et objet)
    Bon tout d'abord, je suis nouveau ici, donc bonjour a tous.

    Ensuite voila mon problème, cela concerne un menu dynamique:

    Le xhtml:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <ul id="menu">
    	<li onmouseover="displaySMenu('smenu2')" onmouseout="hideSMenu()">Images<ul id="smenu2" class="smenu">
    		<li>...</li>
    		<li onmouseover="displaySMenu('lsmenu2_1')" onmouseout="hideLSMenu()">...<ul id="lsmenu2_1" class="lsmenu">
    			<li>...</li>
    			<li>...</li>
    			<li>...</li></ul>
    		</li></ul></li>
    	<li onmouseover="displaySMenu('smenu1')" onmouseout="hideSMenu()">Paroles<ul id="smenu1" class="smenu">
    		<li>...</li>
    		<li onmouseover="displaySMenu('lsmenu1_1')" onmouseout="hideLSMenu()">...<ul id="lsmenu1_1" class="lsmenu">
    			<li>...</li>
    			<li>...</li></ul>
    		</li></ul></li>
    </ul>

    Le javascript:

    Code javascript : 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
    function displaySMenu(id) {
    	d = document.getElementById(id);
    	if(d){
    		d.style.display="block";
    		d.style.left=getOffsetLeft(d.parentNode)-190+"px";
    	}
    }
     
    function hideSMenu() {
    	for(i=0; i<10; i++)
    		if(document.getElementById("smenu"+i))
    			document.getElementById("smenu"+i).style.display="none";
    }
     
    function hideLSMenu() {
    	for(i=0; i<10; i++)
    		for(j=0; j<10; j++)
    			if(document.getElementById("lsmenu"+i+"_"+j))
    				document.getElementById("lsmenu"+i+"_"+j).style.display="none";
    }

    Le css:

    Code css : 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
    #menu {
    	position: absolute;
    	margin: 0px; padding: 0px;
    	width: 1px; height: 1px;
    	z-index: 100;
    }
     
    #menu li {
    	display: inline;
    	padding-right: 10px;
    }
     
    #menu li:hover {
    	text-decoration: underline;
    }
     
    .smenu {
    	position: absolute;
    	margin: 0px; padding: 0px;
    	display: none;
    }
     
    .smenu li {
    	display: inline;
    	padding-right: 10px;
    }
     
    .lsmenu {
    	margin: 0px; padding: 0px;
    	display: none;
    }
     
    .lsmenu li {
    	display: list-item;
    	list-style-type: none;
    	margin: 0px; padding: 0px;
    }

    Le problème, la classe lsmenu li prend l'atribut de l'objet menu li display=inline alors qu'elle est bien redéfini display=list-item.

    Ma question, pourquoi, et comment arranger cela?

  2. #2
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    Bon, j'ai contourner mon problème en passant mon objet #menu en class .menu (mais je n'ai toujours pas d'explication)

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    2nd problème: la fonction suivant qui rend visible le sous menu permet egalement de positionner celui-ci sous le lien qui la rendu visible.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function displaySMenu(id) {
    	d = document.getElementById(id);
    	if(d){
    		d.style.display="block";
    		d.style.left=getOffsetLeft(d.parentNode)-190+"px";
    	}
    }

    Problème ca marche pas tout le temps

Discussions similaires

  1. Problème d'héritage de classe
    Par Anoita dans le forum Général Python
    Réponses: 4
    Dernier message: 12/04/2011, 15h20
  2. [Débat] CSS, classes et objets
    Par roudoudouduo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 26/03/2007, 15h37
  3. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  4. [CSS] Problème d'héritage
    Par Oberown dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 26/07/2006, 11h26
  5. [css]problème d'attribution de classe dans deux listes
    Par Mitaka dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 24/11/2005, 18h05

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