Bonjour à tous!!
Voilà, j'ai un petit souci. J'ai créé un menu grâce aux tutos d'alsacréation. Celui-ci se compose de menus alignés horizontalement et qui changent d'apparence lorsqu'on les survole. Ce changement d'apparence fait référence à la technique d'avoir les deux états du menu sur une seule image. http://css.alsacreations.com/Tutoriels-et-articles-divers/roll-over-css-image-unique

Jusqu'ici pas de problème, sauf que le texte qui caractérise chaque menu ne se centre pas verticalement par rapport aux menus. Imaginez juste un rectangle blanc qui vire au bleu lorsqu'on le survole avec du texte qui malheureusement est situé en haut bien que centré horizontalement.
J'ai lu que je pouvais utiliser le padding mais ca n'a pas l'air de fonctionner.
Quelqu'un pourrait-il me mettre sur la piste svp??
Modifié par dread (19 Dec 2006 - 17:56)
Merci Cygnus pour ta réponse.
Cependant, un élément reste dérangeant.
Quand le texte dépasse la largeur prévue, pour que ce dernier se positionne au centre de l'image constituant le bouton du menu, il se met alors sur deux lignes.
Et quand je règle le line height pour centre les deux lignes au sein de l'image, les autres textes composés d'un seul mot et donc sur une seule ligne se positionne en haut du bouton plutôt que de rester centrés.
Si je diminue le line height, l'espacement vertical du texte sur deux lignes diminue mais les autres textes remontent encore.

Pour essayer de faire visualiser la situation que je souhaite, imaginez un rectangle dans lequel je positionne le texte "Sports et détente" et un second rectangle de même taille avec "Loisirs". Selon la largeur de mon rectangle, "Sports et détente" va se retrouver écrit sur deux lignes alors que "loisirs" restera sur une seule ligne. Ce que je voudrais, c'est une présentation de ces deux textes complètement centrée ( horizontalement comme verticalement) au sein de chaque rectangle.

Si quelqu'un à des solutions à me proposer, je suis preneur.
De rien Smiley cligne

Si tu as deux configurations différentes, utilises donc deux classes.
Une pour un texte d'une ligne, et l'autre pour un texte sur deux lignes.

Tu n'auras qu'à apliquer un line-height en conséquence pour chaque configuration Smiley ravi
Salut!

Comment faire pour définir deux classes et surtout comment différencier les différentes classes crées.

Je t'envoie le code que j'ai mis pour définir l'intitulé des menus:

<dl>
<dt onmouseover="javascript:montre('smenu4');">Sports et Détente</dt>

<dd id="smenu4">
<ul>
<li><a href="#">Activités ludiques</a></li>
<li><a href="#">Activités sportives</a></li>
<li><a href="#">Randonnées et Découvertes</a></li>
<li><a href="#">Evénements sportifs</a></li>
</ul>
</dd>
</dl>

et voici le code définissant la forme des intitulés ainsi que l'image qui constitue le bouton:

#menu dt {
cursor: pointer;
height: 56px;
margin: 0 0 5px 10px; /* espacement de 5px en dessus des menus et 10px à gauche */
width: 120px ;
text-align: center;
font: bold 13px/28px verdana;
background: url(bouton.gif);
}

Que faire, que faire?

Merci!
dread a écrit :
Que faire, que faire?

Commencer par éditer ton post et mettre le code en forme au moyen des balises prévues pour [ code]...[ /code]. Smiley lol

Et sinon, je pense qu'aller faire un tour dans les tutoriaux ne te serait pas superflu : Smiley confus
- Bases et indispensables
- Typographie web : gérer la taille du texte avec les « em »


Bon, concernant ta question, voici la mise en praique à appliquer - HTML :
<dl>
<dt class="deux_lignes" onmouseover="javascript:montre('smenu4');">Sports et Détente</dt>
<dt class="une_ligne" onmouseover="javascript:montre('smenu5');">Loisirs</dt>
</dl>

Et CSS :

#menu dt {
cursor: pointer;
height: 56px;
margin: 0 0 5px 10px;
width: 120px ;
text-align: center;
font: bold 13px/28px verdana; /* exprimée en em, ce serait encore mieux [langue] */
background: url(bouton.gif);
} 

#menu dt.deux_lignes {
/* line-height en conséquence */
} 

#menu dt.une_ligne {
/* line-height en conséquence */
} 


Bonne lecture,
Et bonne continuation !
Smiley ravi
Modifié par Cygnus (20 Dec 2006 - 18:42)
Merci encore une fois cygnus.
J'ai essayé ta méthode et ça marche parfaitement.
Je vais suivre tes conseils et aller voir les tutos auxquels tu fais référence.
Juste une dernière chose, mes menus s'affiche parfaitement sous Mozilla firefox alors que sous IE6 mes boutons de menus ne change pas de couleurs et ont une disposition légèrement différente.
Un autre tuto à me conseiller??
Pour ton dernier problème, je ne crains que sans code, je ne puisse pas t'aider... Smiley ohwell
Montre un bout de code ou un exemple en ligne ...
On devrait arriver à te dépanner Smiley cligne
Salut à tout le monde.
Pour mon problème de compatibilité entre IE6 et Mozilla, voici le code de l'ensemble de mon menu:
<html>
	
		<div id="menu">
	<dl>
		<dt class="une_ligne" onMouseOver="javascript:montre();"><a href="" title="Actualités">Actualités</a></dt>

	</dl>
	
	<dl>			
		<dt class="une_ligne" onMouseOver="javascript:montre('smenu1');">Hebergements</dt>
			<dd id="smenu1">
				<ul>
					<li><a href="#">Hôtels</a></li>
					<li><a href="camping.php">Campings</a></li>
					<li><a href="#">Auberges</a></li>
					<li><a href="#">Gîtes</a></li>
					<li><a href="#">Chambres d'hôtes</a></li>
					<li><a href="#">Locations saisonnières</a></li>
				</ul>

			</dd>
	</dl>
	
	
	<dl>	
		<dt class="une_ligne" onMouseOver="javascript:montre('smenu2');">Restauration</dt>
			<dd id="smenu2">
				<ul>
					<li><a href="#">Restaurants gastronomiques</a></li>
					<li><a href="#">Pizzerias</a></li>
					<li><a href="#">Crêperies</a></li>
					<li><a href="#">Cafétérias</a></li>
					<li><a href="#">Sandwicheries</a></li>
					<li><a href="#">A domicile</a></li>
	</dl>

	
	<dl>	
		<dt class="une_ligne" onMouseOver="javascript:montre('smenu3');">Sorties</dt>
			<dd id="smenu3">
				<ul>
					<li><a href="#">Bars, Pubs</a></li>
					<li><a href="#">Cafés, Salons de thé</a></li>
					<li><a href="#">Discothèques</a></li>
					<li><a href="#">Casinos</a></li>
					<li><a href="#">Cinémas</a></li>
					<li><a href="#">Bowling</a></li>
				</ul>
			</dd>
	</dl>
	
	<dl>	
		<dt class="deux_lignes" onMouseOver="javascript:montre('smenu4');">Sports et Détente</dt>

			<dd id="smenu4">
				<ul>
					<li><a href="#">Activités ludiques</a></li>
					<li><a href="#">Activités sportives</a></li>
					<li><a href="#">Randonnées et Découvertes</a></li>
					<li><a href="#">Evénements sportifs</a></li>
				</ul>
			</dd>
	</dl>
	

</div>

	
		<head>
			<script type="text/javascript">
			<!--
			window.onload=montre;
			function montre(id) {
			var d = document.getElementById(id);
			for (var i = 1; i<=10; i++) {
			if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
			}
			if (d) {d.style.display='block';}
			}
			//-->
			</script>

			<style type="text/css" media="screen">
<!-- 
body {
margin: 0;
/*padding: 0;*/
background: white;
font: 70% verdana, arial, sans-serif;
}

dl, dd, ul, li {
margin: 0 0 0 0 ;
padding: 0;
list-style-type: none;
}


#menu {
position: absolute; /* placement du menu, à modifier selon vos besoins */
top: 0;
left: 0;
z-index:100;
width: 100%; /* correction pour Opera */
}

#menu dl {
float: left;
width: 118px ;
} /* Ceci permet d'avoir les menus à l'horizontal*/

#menu dt {
cursor: pointer;
height: 56px;
margin: 0 0 5px 10px; /* espacement de 5px en dessus des menus et 10px à gauche */
width: 120px ;
text-align: center;
font: bold 13px/*/28px*/ verdana;
background: url(bouton.gif);
}

#menu dt.deux_lignes {
line-height : 28px;
}

#menu dt.une_ligne {
line-height : 56px;
}

#menu dd {
display: none;
width: 118px ;
margin: 0 0 0 10px;
background: #B4F0FE;
border: 1px solid gray;
} /*Rectangle définissant la zone où apparaissent les sous menus*/

#menu li { /* présentation des sous menus*/
text-align: left;
width: 118px ;
margin: 0 0 4px 0; /* on aere le texte des sous-menus de 4px */
opacity: 0.8;
}

#menu li a, #menu dt a { /* présentation du texte des sous menus*/
color: #000000;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}

#menu dt:hover
{
	background: url(bouton.gif) no-repeat 0 -56px ;/* Et ici on décale l'image du background de 56px vers le haut pour laisser apparaître la 2eme partie de l'image */
}

#menu li a:hover, #menu li a:focus, #menu dt a:hover, #menu dt a:focus {
font-weight: bold;
}

-->
</style>



		</head>

	<body>
	</body>
</html>


Sur Mozilla, les boutons des menus changent de couleur, ce qui est normalement voulu dans mon code, mais sont collés les uns aux autres.
Sur IE6, les menus ne changent pas de couleurs comme si le bout de code suivant ne marchait pas
#menu dt:hover
{
	background: url(bouton.gif) no-repeat 0 -56px ;/* Et ici on décale l'image du background de 56px vers le haut pour laisser apparaître la 2eme partie de l'image */
}

par contre la pagination des boutons est correcte avec un espace marqué entre chaque bouton.
Si quelqu'un peut m'aider??
Modifié par dread (22 Dec 2006 - 16:20)
Bonjour à tous et Joyeuses Fêtes de fin d'année.
Un petit post pour remettre au goût du jour le problème qui me concerne, à savoir la différence de présentation de mon menu que l'on soit sur IE ou Mozilla.
Si quelqu'un se sent d'attaque pour me venir en aide durant cette période de fêtes.
Merci et bonne continuation à tous.
bon un petit cour de html a tous les deux ne ferait pas de mal...

qu'est ce qu'un <dl>?

un <dl> est une liste de définition... dans les <dt> on met le terme à définir et dans les <dd> sa définition.
En bref son utilisation la plus correct est un dictionnaire.

Ici le code html le plus correct serait un liste <ul><li> à double niveau.

voili voilà
Salut masseuro.
Merci pour ta réponse rapide mais je ne suis pas sûr d'avoir compris en quoi cela resoudrait mon problème de présentation entre mozilla qui colle mes menus et IE6 qui ne fait pas le changement d'état de mes boutons (du blanc vers le jaune).
Comme tu t'en doute, je suis débutant en la matière, et le code qui se trouve plus haut est tiré de tutos présents sur le site.
Si tu pouvais par conséquent être plus précis, je t'en serais redevable!!
Merci par avance.