Bonjour,

Mon nom est Carole, je suis nouvelle et ne sais pas trop par où commencer...

J'ai un soucis de "div" avec le css et le javascript. Je dois impérativement mettre le logo au centre de mon menu ce qui me cause des soucis de code donc mon css est un peu répétitif.
Mon menu est bien placé et dès que je scroll la page le menu ce met à gauche au lieu de resté au milieu. Je sais que dans la fonction ".js", il y a un "left:0", mais si je le déplace, il ne sera plus centré.

Voici mes codes (css/html/js):

body						{ background-color:#eaf1e4; font-family: 'Open Sans', sans-serif; font-size:12px; color:#523c40;}
a							{ text-decoration: none;}
a:hover						{ text-decoration: underline;}

/* TOP */
#top_menu					{ margin:0 0 20px 0; background-color: #2a2b2d;}
.conteneur					{ width:980px; margin:0 auto; }

.logo						{ float:left; width:260px;overflow:hidden;text-align:center; padding-top:30px; }


/* MENU */

#navigation_wrapper			{ width:100%; height:130px;  }



#navigation					{ width:100%; height:130px; background-color: #2a2b2d; z-index:100; font-family: 'Open Sans', sans-serif; font-size:16px; }



#nav-g						{ float:left; width: 360px; margin-top:72px;}
#nav-g ul					{ float:left; list-style:none; margin:0 20px 0 40px; padding:5px;}
#nav-g ul li				{ display:inline; padding:20px; }

#nav-d						{ float: left; width: 360px;margin-top:72px; }
#nav-d ul					{ float: left; list-style:none; margin-left:20px; padding:5px;}
#nav-d ul li				{ display:inline; padding:20px; }

#nav-g ul li a				{ color:#fefef5;}
#nav-d ul li a				{ color:#fefef5;}

#nav-g ul li a:hover		{ color:#f7615a; text-decoration: none;}
#nav-d ul li a:hover		{ color:#f7615a; text-decoration: none;}




<!-- Top menu -->
<div id="top_menu">


    <!-- Début navig wrapper -->
    <div id="navigation_wrapper">
    <!-- Début conteneur -->
    <div class="conteneur">
    <nav>
    <div id="navigation">
        
        <div id="nav-g">
        <ul>
        <li><a href="#content-accueil">Accueil</a></li>
        <li><a href="#">Agence</a></li>
        <li><a href="#">Equipe</a></li>
        </ul>
        </div>
        
         <div class="logo"><img src="images/logo.png" /></div>           
        
        <div id="nav-d">
        <ul>
        <li><a href="#">Prestations</a></li>
        <li><a href="#">Clients</a></li>
        <li><a href="#">Contact</a></li>
        </ul>
        </div>
        
    <!-- Fin navigation -->
    </div>    
    </nav>  
      
    <!-- Fin conteneur -->    
    </div>
    </div>    
    </div>
    <!-- Fin navig wrapper -->
    
</div>
<!-- Fin Top menu -->



// js pour faire fonctionner le menu

$(function() {

	// grab the initial top offset of the navigation 
	var sticky_navigation_offset_top = $('#navigation').offset().top;
	
	// our function that decides weather the navigation bar should have "fixed" css position or not.
	var sticky_navigation = function(){
		var scroll_top = $(window).scrollTop(); // our current vertical position from the top
		
		// if we've scrolled more than the navigation, change its position to fixed to stick to top, otherwise change it back to relative
		if (scroll_top > sticky_navigation_offset_top) {
$('#navigation').css({ 'position': 'fixed', 'top':0, 'left':0 });
$('#divtoappear').css({ 'display': 'none' });
} else {
$('#navigation').css({ 'position': 'relative' });
$('#divtoappear').css({ 'display': 'block' });
}   
	};
	
	// run our function on load
	sticky_navigation();
	
	// and run it again every time you scroll
	$(window).scroll(function() {
		 sticky_navigation();
	});
	
	// NOT required:
	// for this demo disable all links that point to "#"
	$('a[href="#"]').click(function(event){ 
		event.preventDefault(); 
	});
	
});



Auriez-vous une solution et en même temps me dire comment centré mon logo sur la navigation de façon plus élégante?

D'avance merci.
Bonjour carol,

En fait, la propriété "position: fixed;" n'est pas appliquée sur la bonne balise :

1 - Dans le JS, remplacer #navigation par #top_menu. Voir exemple suivant :
// js pour faire fonctionner le menu
jQuery(function() {
    /* ... */
    var sticky_navigation_offset_top = $('#top_menu').offset().top;
    /* ... */	
    var sticky_navigation = function(){
       /* ... */
        if (scroll_top > sticky_navigation_offset_top) {
            $('#top_menu').css({
                'position': 'fixed', 
                'top':0, 
                'left':0
            });
            /* ... */
        } else {
            $('#top_menu').css({
                'position': 'relative'
            });
            /* ... */
        }   
    };
    /* ... */
});

2 - Appliquer en CSS la propriété "width: 100%;" au #top_menu comme suit :
#top_menu {
  margin:0 0 20px 0;
  background-color: #2a2b2d;
   /* Ce conteneur fait toute la largeur de la fenêtre même en "position: fixed;" */
  width: 100%;
}


Voici le code en ligne http://codepen.io/guiwint/pen/JukpG
Ces premières rectifications devraient déjà bien vous dégager le terrain.

En l'attente de vos tests, bon code Smiley biggrin ...
Bonjour,

Merci beaucoup Guiwint.
J'avais essayé avec le #top_menu à la place de navigation, dans le fichier js, mais dès que je scrollais, le menu se décalait à gauche, sûrement à cause des floats....

Au bout de quelque jour, je m'y suis prise autrement, mais j'arrive pas à centrer mon menu dans mon "conteneur".
J'ai beau mettre des margin:0 auto, cela ne fonctionne pas, j'imagine qu'il y a un conflit...

Voici mes nouveaux changement:



<!-- Début navig wrapper -->
<div id="navigation_wrapper">
	<div id="navigation">
    	
        <div class="conteneur">
        <div id="top-menu">
            <nav>
                <ul>
                <li><a href="#">Accueil</a></li>
                <li><a href="#info-angence">Agence</a></li>
                <li><a href="#info-équipe">Equipe</a></li>
                <li id="logo"><img src="images/logo.png" /></li>
                <li><a href="#info-prestation">Prestations</a></li>
                <li><a href="#">Relation clients</a></li>
                <li><a href="#">Contact</a></li>
                </ul>
            
            </nav>
        </div>
        </div>
    </div>        
</div>
<!-- Fin navig wrapper -->




body						{ background-color:#fefef5; font-family: 'Open Sans', sans-serif; font-size:12px; color:#523c40;}
a							{ text-decoration: none;}
a:hover						{ text-decoration: underline;}

h1							{ font-size:45px; color:#323232; font-weight:lighter; text-transform:uppercase; text-align:center; margin-top:30px;}
h2							{ font-size:20px; color:#999; font-weight:lighter; text-transform:uppercase; margin-top:12px;text-align:center;}
hr							{ width: 80px; text-align:center;border: solid 1px #f7615a;}


.conteneur					{ width:980px; margin:0 auto; }

/* logo */
#logo						{ text-align:center; padding:0 20px !important;  }


/* menu */

#navigation_wrapper			{ width:100%; }

#top-menu					{ width:100%; text-align:center;}

#navigation					{ width:100%; height:130px; background-color: #2a2b2d; z-index:100; font-family: 'Open Sans', sans-serif; font-size:16px; color:#fefef5; text-align:center; }
#navigation ul				{ list-style:none; margin:0; padding-top:30px;}
#navigation ul li			{ float:left;display:inline; padding:42px 20px 0;margin:0; }
#navigation ul li a			{ display: block; padding:0; height:30px; line-height:30px; font-family: 'Open Sans', sans-serif; font-size:16px; color:#fefef5; text-align:center;}
#navigation ul li a:hover	{ color:#f7615a; text-decoration: none;}



// js pour faire fonctionner le menu

$(function() {

	// grab the initial top offset of the navigation 
	var sticky_navigation_offset_top = $('#navigation').offset().top;
	
	// our function that decides weather the navigation bar should have "fixed" css position or not.
	var sticky_navigation = function(){
		var scroll_top = $(window).scrollTop(); // our current vertical position from the top
		
		// if we've scrolled more than the navigation, change its position to fixed to stick to top, otherwise change it back to relative
		if (scroll_top > sticky_navigation_offset_top) {
$('#navigation').css({ 'position': 'fixed', 'top':0, 'left':0 });
$('#divtoappear').css({ 'display': 'none' });
} else {
$('#navigation').css({ 'position': 'relative' });
$('#divtoappear').css({ 'display': 'block' });
}   
	};
	
	// run our function on load
	sticky_navigation();
	
	// and run it again every time you scroll
	$(window).scroll(function() {
		 sticky_navigation();
	});
	
	// NOT required:
	// for this demo disable all links that point to "#"
	$('a[href="#"]').click(function(event){ 
		event.preventDefault(); 
	});
	
});



Désolée de ne pas pouvoir mettre le site en ligne, je n'ai pas encore les codes... voici le menu en image. Merci beaucoup pour votre aide.
upload/55294-Capturedec.png
Bonjour,

Oui, super, j'ai enlevé le float et mis le "display: inline-block", comme vous me l'avez conseillé.
ça marche nickel, merci beaucoup. Je peux dire: sujet résolu! Smiley biggrin Smiley biggrin Smiley biggrin
Ce code marche côté serveur ( libxslt, sablotron...) mais pas côté client (interprétation par le butineur) ... ce que je cherche à faire