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 :

Position relative ET absolue pour <ul> et <li>


Sujet :

Positionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut Position relative ET absolue pour <ul> et <li>
    Bonjour,

    Je souhaite réaliser un menu dépliant en CSS par la propriété over. Mon menu se trouve à gauche, les rubriques pointées dépliant les sous-rubriques en colonnes, et ces memes sous-rubriques doivent en déplier d'autres, mais cette fois-ci sur la droite:
    ----------------
    |~~Menu~~~~|
    ---------------
    |~Rubrique~~~|
    |~~S-rubrique~|
    |~~S-rubrique~~SS-rubrique
    |~~~~~~~~~~SS-rubrique
    |_____________|

    Pour ce faire, je suppose que mes SS-rubriques doivent être en position relative pour se placer par rapport à leur S-rubrique, mais en meme temps, il faut qu'elles soient en position absolue pour se placer par dessus le menu et ne pas agrandir mon menu qui décalerai mon div de contenu, placé juste à droite du menu.

    Comment faire ???


    Car en position absolue, mes SS-rubriques se chevauchent, et cela m'oblige à faire des id plutot que des classes (donc une pour chaque SS-rubrique, c'est ennuyant ...).

    Voici mon code html et CSS actuels, les classes réalisées se basant sur les <ul>:

    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
    <div id="menu">
    	<ul class="niveau1">
     
    		<li> Annuaire 
    			<ul class="niveau2">
    				<li><a href="index.php?page=groupe">Consulter</a></li>
    				<li><a href="index.php?page=groupe&action=creer">Rechercher</a></li>
    			</ul>
    		</li>
    		<li> Patrimoine 
    			<ul class="niveau2">
    				<li><a href="index.php?page=rubrique">Lister</a></li>
    				<li><a href="index.php?page=rubrique&action=creer">Creer</a></li>
    			</ul>
    		</li>
    		<li> News 
    			<ul class="niveau2">
    				<li>Sens
    					<ul class="niveau3">
    						<li><a href="">Consulter</a></li>
    						<li><a href="">Ecrire</a></li>
    					</ul>
    				</li>
    				<li>Auxerre
    				</li>
    			</ul>
    		</li>
    	</ul>
    </div>
    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
    #menu {
    	width: 160px;
    	height: 100%;
    	float: left;
    	margin: 0;
    	padding: 0;
    	color: red;
    	font-weight: bold;
    	border: 2px solid green;
    	border-top: none;
    }
     
    #menu ul {
    	list-style-type: none;
    	margin-left: 0;
    }
     
    ul.niveau1 li {
    	width: 132px;
    	height: 40px;
    	font-family: "Rockwell Extra Bold", Andalus, "Arial Black";
    	font-variant: small-caps;
    	background-image: url("img/bouton1.jpeg");
    	background-repeat: no-repeat;
    	line-height: 200%;
    	margin-top: 20px;
    }
    ul.niveau1 li:hover  ul.niveau2 {
    	display: block;
    }
     
    ul.niveau2 {
    	display: none;
    	margin: 0;
    	padding: 0;
    }
     
    ul.niveau2 li{
    	width: 132px;
    	height: 40px;
    	font-family: "Rockwell Extra Bold", Andalus, "Arial Black";
    	font-variant: small-caps;
    	background-image: url("img/bouton1.jpeg");
    	background-repeat: no-repeat;
    	line-height: 200%;
    	margin: 10px;
    	padding: 4px;
    }
     
    ul.niveau2 li a, ul.niveau2 li a:link, ul.niveau2 li a:visited{
    	color: green;
    	display: block;
    	text-decoration: none;
    }
     
    ul.niveau3 {
    	margin: 0;
    	padding: 0;
    	display: none;
    }
     
    ul.niveau2 li:hover  ul.niveau3 {
    	display: block;
    }
    Comment gérer le ul.niveau3 ???

    Merci de vos remarques et réponses !

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931

  3. #3
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Et bien en fait je souhaiterais plutôt ne pas avoir de javascript pour 2 raisons:

    1) Je n'y connais pas grand chose (je suis déjà en apprentissage de CSS, php, mysql, avec javascript ca sera de trop )
    2) L'administrateur ne veut pas de modification des postes et browser des clients de l'intranet (CSS avec IE6, c'est pas de la tarte lol ! Vive les behavior ! ).

    Donc si possible la solution tout en CSS ! Si c'est pas possible alors ca risque d'etre trèèèèèèèèèèès compliqué pour moi

    Pfff pas facile ...

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Je vois ...

    Tu peux mettre position:relative à ton <li> du niveau 1, comme ça déjà tu pourras positionner en absolu le niveau 2 et donc le niveau 3 ...

  5. #5
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Ouio c'est vrai que le 1er <li> en relatif c'est déjà mieux. Mais le chevauchement des 3ème niveau ne s'arrange pas.

    En fait, petite question: ca n'existe pas les classes avec un "position: absolute" ? Car tout les éléments de la même classe se superposeront non ?

    Car en effet, si je veux mettre en absolue mes 3èmes niveaux, il faudra que je leur donne des coordonnées différentes, et donc je pert l'interet des classes, et par la meme occasion de mes listes ...

    Ou y'a ptet un truc que je n'ai pas saisi ?

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    En fait, quand tu positionnnes un élément en absolute, il se positionne par rapport à son parent positionné, à défaut, le body.

    Donc si tu positionnes en absolu ton niveau 2, ton niveau 3 se positionnera automatiquement par rapport au niveau 2, vu qu'il est positionné. Il n'a pas besoin d'être en relative.

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

Discussions similaires

  1. Le vertical-align en position relative pour du texte
    Par bigltnt dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 27/03/2007, 09h10
  2. [FLASH MX] Position y relative et absolue
    Par abenhass dans le forum Flash
    Réponses: 12
    Dernier message: 29/05/2006, 12h32
  3. position relative, position absolue.....?
    Par manutudescends dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/02/2006, 13h35
  4. [Débutant] position relative et absolue
    Par AurelBUD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 23/06/2005, 08h46
  5. position() relative au noeud courant
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 09/09/2004, 17h38

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