5568 sujets

Sémantique web et HTML

Je suis désolé de m'incruster Smiley lol

je m'y perds dans ce site immence, aussi doit il y avoir la réponse à ma question parmis les pages de Alsa mais je n'ai pas mis la main dessus meme en faisant une rercherche ^^'

je n'ai pas compris à quoi correspond le -184px à l'intèrieure de ce script :

#menu3{
top: 36px;
padding-left: 54px;
background-position: 0% -24px;
}

#menu3:hover{
top: 0px;
padding-top: 36px;
background-position: 0% -184px;
}

il devrait d'après ce que j'ai compris définir la distance de "menu3" par rapport à la gauche (comme je l'ai défini), mais alors pourquoi y a-t-il un "-" devant ???

et pourquoi ce nombre est il différent de celui qui le précéde (en vert) ?

Encore merci pour votre aide Smiley biggrin
Bonsoir,

en fait, c'est l'image de fond du menu qui est à -24px du bord haut du bloc, et quand la souris passe au dessus (:hover) alors l'image de fond du menu3 se place cette fois à -184px du bord haut, cela permet d'avoir un joli rollover si l'affaire est bien menée, et sans javascript Smiley cligne sympa les css !
je ne comprends pas pourquoi l'image (:hover) est si éloignée de l'image de fond du menu ? Smiley rolleyes

Edit : Ne devraient elles pas etre au meme endroit ?
Modifié par nossibe (23 Feb 2007 - 21:48)
je suis désolé de relancer ce sujet mais je n'arrive pas à terminer mon menu, voici le resultat :

page test

et voici le CSS :

body
{
	margin: 10px 0 ;
	padding: 0 ;
	text-align: center ;
	font: 0.8em "Trebuchet MS", helvetica, sans-serif ;
	background: rgb(148,200,244); 
}
/* On définit les marges haute et basse à 10px et les marges droite et gauche à 0 */
/* On met le padding à 0 pour le navigateur Opera qui définit des padding par défaut pour le body */
/* On utilise text-align: center ; pour Internet Explorer, c'est la seule façon de centrer les éléments de type block avec ce navigateur */

div#conteneur
{
	width: 768px ;
	margin: 0 auto ;
	text-align: left ;
	border: 2px solid rgb(8,36,211);
	background: rgb(250,250,250);
}
/* On définit la largeur de la division qui contient l'ensemble de la page à 770 pixels */
/* margin: 0 auto ; est la méthode correcte pour centrer les éléments de type block (comme les divisions), nous centrons donc cette division */
/* Il faut rétablir l'alignement à gauche que nous avons changé plus haut */

h1#header
{
	height: 258px ;
	background: url(banniere1.jpg) no-repeat left top ;
	margin: 0 ;
}



/*________________________________________________________________________________________*/



/** MENU SMILIES **
 * -------------- *
 * Jeremie Patonnier <jep@ibilab.net>
 * -------------- *
 * Compatibilité : IE 5.5+ 
 *                 Mozilla 1.6 
 *                 FireFox
 *                 Opera 7
 *                 Safari
 */


/* LA BALISE UL *
 * ------------ *
 * La balise UL va servir de conteneur global pour le menu 
 * NOTE : Dans le cadre de ce menu, les balises LI ne nous servent
 *        a rien, elle ne seront donc pas redefinie
 */
ul{
 /* La balise est déclaré en position "relative" afin que les futurs balises A
  * utilisent la balise UL comme point de repère de leurs propres coordonnés absolus
  * NOTE : la position "relative" est preférer a la position "absolute" afin 
  *        de conserver le menu dans le flux HTML
  */
  position:relative;

 /* On supprime les puces pour les elements LI de la balise */
  list-style:none;
	
 /* On s'assure qu'il n'y aura aucun décalage autour du menu
  * NOTE : il faut définir le padding ET le margin car dans le cadre des listes à
  *        puces. Les différents navigateurs utilisent l'une ou l'autre des valeurs
  *        pour afficher les puces et assurer les retraits des elements.
  */
  padding: 0px;
  margin: 0px ;
	
 /* On définie la largeur et la hauteur de la balise en fonction des dimensions de l'image de fond	*/
  width:140px;
  height:156px;
	
 /* On definit le background de la balise */
  background: url(menu3.gif) no-repeat left top;
}


/** LA BALISE A **
 * ------------- *
 * La balise A va nous permettre de définir les attributs communs à chaque element du menu 
 */
a{
 /* La balise est déclarée en position "absolute" afin de pouvoir positionner nos elements
  * de menu au pixel près à l'interieur de la balise UL.
  */
  position:absolute;
	
 /* En temps normal, la balise A est une balise "inline". Pour les besoin de ce menu, nous
  * la transformons en balise "block"
  */
  display:block;
	
 /* Quoi qu'il arrive par la suite, toutes les balises A seront accoler au bord gauche de
  * leur conteneur : la balise UL
  */
  
	
 /* De même, quoi qu'il arrive, les balise A auront toute une hauteur de base de 12px
  * NOTE : Cette hauteur dépend de l'image de fond qui sera utilisée, ainsi que de la taille
  *        de la police typographique qui sera utilisée.
  */
  height:12px;
	
 /* On supprime le soulignement par défaut des liens */
  text-decoration:none;
	
 /* On definie les valeurs typographiques du texte de la balise */
  font: bold 9px Verdana,Arial,Helvetica,sans-serif;
  color:#000000;
	
 /* Le Z-index nous permettra d'être sûr qu'une balise A sera toujour par dessus
  * toute autre balise que l'on pourrais definir. Cette valeur est necessaire pour
  * Assuré la compatibilité avec Mozilla/Firefox.
  */
	z-index:2;
	
 /* Pour eviter les problèmes de prechargement et d'eventuel scintillement, toutes les puces
  * sont mises sur une seul image. Cette image est placé en background sur toutes les balises A.
  */
	background: url(menu3.jpg) no-repeat right top;
}


/** LA PSEUDO-CLASS :hover **
 * ------------------------ *
 * La pseudo-class :hover va nous permettre de définir les attributs communs à chaque balise A 
 * survolée par la souris
 * NOTE : IE comprend la pseudo-class :hover uniquement lorsqu'elle est appliquée a la balise A
 */
a:hover{
 /* On redéfinie la couleur de la police typographique */
  color:#A99D49;
	
 /* On fixe la largeur de la balise 
  * NOTE : Cette largeur dépend de l'image de fond utilisée.
  */
  width:174px;
	
 /* Le Z-index nous permettra de nous assurer qu'une balise A survolée sera toujours en arrière plan
  * par rapport à une balise A non survolée. En effet, nous verrons par la suite que certaines balises
  * seront amenées à se chevaucher.
  */
  z-index:1;
}

/** LE CAS PAR CAS **
 * ---------------- *
 * Les modifications globals de balises etant définies, nous allons maintenant nous attaquer
 * aux cas particuliers grace à l'utilisation des identifiants uniques de classes
 * NOTE : Tous les identifiants suivant sont appliqués à des balises A, ils héritent donc tous des
 *        comportements definis ci-dessus pour la balise A et pour la pseudo-classe associée :hover
 */
 
#menu1{
 /* Cet element de menu sera placé à 35px du bord haut de son conteneur : la balise UL */
  top: 0px;
	
 /* Le texte sera décallé de 58px vers la droite tout en laissant apparaitre le background de la balise */
  padding-left: 58px;
	
 /* On redéfinie le positionnement du background de la balise pour afficher la portion de background 
  * necessaire pour cet element de menu spécifique
  */
  background-position: 0% 0%;
}
 
#menu1:hover{
 /* Lors du survol de la balise, la portion de background visible sera plus importante, on modifie donc
  * la proriété top et on conserve la position du texte en jouant sur le padding-top
  * NOTE : C'est ce petit truc qui nous contrains à utiliser un Z-index. En effet, dans ce cas, on risque 
  *        de voir deux balises A se chevaucher. Donc, il faut toujours s'assurer que la balise qui est
  *        survolée sera bien en dessous des balises non-survolées afin que celles-ci ne soit pas cachées 
  *        par la balise survolée. 
  */
  top: 0px;
  padding-top: 0px;
	
 /* On redéfinie le positionnement du background de la balise pour afficher la portion de background 
  * necessaire pour cet element de menu spécifique
  */
  background-position: 0% 0px;
}

/* Il ne reste plus qu'à répéter ces opérations pour chaque element de menu individuel */

#menu2{
  top: 18px;
  padding-left: 57px;
  background-position: 0% 0-12px;
}
 
#menu2:hover{
  top: 0px;
  padding-top: 18px;
  background-position: 0% 0px;
}

#menu3{
  top: 36px;
  padding-left: 54px;
  background-position: 0% -24px;
}

#menu3:hover{
  top: 0px;
  padding-top: 36px;
  background-position: 0% 0px;
}

#menu4{
  top: 54px;
  padding-left: 50px;
  background-position: 0% -36px;
}
 
#menu4:hover{
  top: 0px;
  padding-top: 54px;
  background-position: 0% 0px;
}

#menu5{
  top: 72px;
  padding-left: 44px;
  background-position: 0% -48px;
}

#menu5:hover{
  top: 0px;
  padding-top: 72px;
  background-position: 0% 0px;
}

#menu6{
  top: 90px;
  padding-left: 37px;
  background-position: 0% -60px;
}
 
#menu6:hover{
  top: 0px;
  padding-top: 90px;
  background-position: 0% 0px;
}




/*_____________________________________________________________________________*/


			

div#contenu
{
	padding: 0 30px 0 100px ;
	background: url(menu1.gif) no-repeat 15px 15px ;
}
/* On ajoute un petit élément décoratif sur le côté de la page et on crée un espace à gauche et à droite du contenu */

div#contenu h2
{
	padding-left: 25px ;
	line-height: 25px ;
	font-size: 1.4em ;
	background: url(little_apple.gif) no-repeat left bottom ;
	color: rgb(0,0,250) ;
	border-bottom: 1px solid rgb(0,0,250) ;
}
/* Mise en forme du titre de page, une petite image, on décale le texte en fonction de l'image, on donne un couleur au texte et on met une bordure basse */

div#contenu h3
{
	margin-left: 15px ;
	padding-left: 5px ;
	border-bottom: 1px solid #9b2 ;
	border-left: 3px solid #9b2 ;
	color: #9b2 ;
}
/* De même que pour le titre h3, à ceci près qu'on ne donne pas d'image décorative cette fois ci */

div#contenu p
{
	text-align: justify ;
	text-indent: 2em ;
	line-height: 1.7em ;
}
/* On rend les paragraphes plus propre, alignement justifié, alinéa et hauteur de ligne supérieure à l'état normal pour aérer le tout */

div#contenu a
{
	color: #8a0 ;
}

div#contenu a:hover
{
	color: #9b2;
}
/* On met en forme les liens contenu dans la page */

p#footer
{
	margin: 0 ;
	padding-right: 10px ;
	line-height: 30px ;
	text-align: right ;
	color: #8a0 ;
}
/* Mise en forme de la partie pied de page, rien d'extra-ordinaire */

pre
{
	overflow: auto ;
	background: #dea ;
	border: 2px solid #9b2 ;
	padding: 5px 0 0 5px ;
	font-size: 1.2em ;
}

/* En passant on définit l'overflow de la balise pre à auto pour permettre d'afficher des barres de défilement si le texte contenu dans cette balise est trop grand */
/*une couleur de fond, une bordure, la taille de police et un léger espace entre le texte et les bords du pre */

* html pre

{
	width: 636px ;
}
/* On dois donner une largeur au pre à cause d'Internet Explorer, on ne va donc l'appliquer qu'à Internet Explorer en utilisant un "hack", la combinaison " * html " permet de n'appliquer ce qui suis qu'à Internet Explorer */




Auriez vous une idée pour m'éviter de passer la nuit à chercher ? Smiley sweatdrop

Edit : mis à jour.
Modifié par nossibe (01 Mar 2007 - 13:10)
En fait, j'ai encore un souci pour ce menu, Smiley confused

je ne parviens pas à metre mon image à la bonne place, vous pouvez voir le resultat sur ma "page test" et le CSS mis à jour dans mon message précédent.

j'ai bien étudié la méthode des portes coulissantes mais je crois qu'il doit y avoir quand meme pas mal de différences avec mon menu et j'ai beau faire des essais pour trouver les éléments à modifier pour obtenir le resultat que je recherche ça ne fait qu'empirer les choses... Smiley murf