Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
824 connectés 

  FORUM HardWare.fr
  Graphisme
  Web design

  Help CSS menu image hover

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Help CSS menu image hover

n°1039387
veyron44
Posté le 25-10-2008 à 07:09:34  profilanswer
 

Bonjour,
 
je cherche à faire un menu avec des boutons qui sont des images en normal (sans souris dessus) et en hover.
comme c'est un menu, ces bouton doivent renvoyer à des liens.
 
j'ai écrit le code suivant dans mon XHtml 1.0 Strict:
 
"<a href="questionnaire.html"><div id="Questionnaire">
</div></a>"
 
et dans le CSS:
 
#Questionnaire
{
float:left;
background-image: url(bouton_normal.jpg);
height: 43px;
width: 222px;
top: 0px;
margin: 0px;
padding: 0px;
}
#Questionnaire:hover
{
float:left;
background-image: url(bouton_hover.jpg);
height: 43px;
width: 222px;
top: 0px;
margin: 0px;
padding: 0px;
}
 
je précise que ces images/bouton sont placé dans des <div> disposé en float et qui se suivent de manière a faire un menu horizontale.
Pour compliquer le tout, le menu en entier est dans un <div> qui est centré de la manière suivante  
 
"width: 800px;
margin-left: auto;
margin-right: auto;"
 
Je galère depuis deux jours à trouver une solutions.
 
Merci
 
A+
 
veyron :)

mood
Publicité
Posté le 25-10-2008 à 07:09:34  profilanswer
 

n°1039388
Lactique
Caraïbe et huile de coco
Posté le 25-10-2008 à 07:21:01  profilanswer
 

Et sinon les UL LI /LI /UL ça sert à rien en css ?
:)
 
Accessoirement, essaie de nous informer sur le problème rencontré aussi quand tu fais un message, il semble que tu ai oublié ce détail :D


---------------
Studio CréeAll
n°1039395
abais
Posté le 25-10-2008 à 08:29:27  profilanswer
 

Petite astuce :Au lieu de mettre 2 images différente (Hover + normal), je met les 2 design de boutton sur la même image... le hover sous le normal (donc, ton image ici fera 222*86), et dans le CSS, le hover change juste la position de background à "bottom"...
L'avantage est qu'il n'a pas à charger de 2nde image (qui peut gêner).

 

Comme le dit Lactique, les <li> sont plus adapté, à condition de mentionné tout ce qu'il faut dans le CSS car IE et FF ne réagissent pas pareil par défaut (padding, margin etc...)

 

Sinon, tu n'es pas dans la bonne catégorie !

 

[EDIT] Un tuto à voir ! http://css.alsacreations.com/Const [...] les-en-CSS


Message édité par abais le 25-10-2008 à 08:42:42

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1039410
veyron44
Posté le 25-10-2008 à 12:44:57  profilanswer
 

Alors je l'ai lu ce tuto, j'ai bidouiller mon code, mais ça a fait n'import quoi (décalage incomprhensible)
Ce qui me parait bozar c'est que je n'ai pas trouvé de manière standart de le faire, alors que je pensais que ca devais etre un problème assez courant.
J'ai penser aux listes et j'ai bien essayer, mais si je poste c'est que j'ai pas trouver comme faire :(
Donc c'est pour dire que j'ai essayé "display: inline ;" ^^
 
Pour ce que j'attends: c'est trouver un moyen de faire marcher mon code.
En réalité la manière que j'ai mise dans mon code fonctionne bien, mais quand je vérifie mon code sur w3c il me dit que c'est incorrecte et c'est bien ca qui m'emebete car je vais etre évalué sur ca.
 
En fait je demande pas la solution toute faite, mais même des infos qui me débloqueraient.
 
V'là  
 
Merci pour vos première réponses :)
 
veyron

n°1039412
veyron44
Posté le 25-10-2008 à 12:49:24  profilanswer
 

je cite l'erreur qu'il me donne (w3c):
 
"#  Error  Line 22, Column 48: document type does not allow element "div" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag.
 
<a href="description.html"><div id="description">
 

 
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.
 
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>" ) inside an inline element (such as "<a>", "<span>", or "<font>" )."
 
faut t-il simplement que je fasse une <table> avec les risques de décalages que ca implique ou la solution est définitivement les listes ??

n°1039420
Skopos
Titilleur de nombrils...
Posté le 25-10-2008 à 16:02:32  profilanswer
 

T'as pas le droit de mettre des éléments block (ici le div description) dans un <a>.


---------------
userstyles HFR : alléger l'accueil du forum; réduire les img https des quotes. Script AHK ImageFloodHFR
n°1039421
abais
Posté le 25-10-2008 à 16:27:25  profilanswer
 

oui, les A sont des balises inlines...
Il n'est pas possible de mettre un étage dans un studio :p (exemple bidon mais bon !)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1039434
J_D_
Posté le 25-10-2008 à 19:23:19  profilanswer
 

Vous êtes sur de ça. Il me semble l'avoir déjà fait et ça fonctionne.

n°1039444
veyron44
Posté le 25-10-2008 à 20:24:04  profilanswer
 

@J_D_: avec la balise display ça doit etre possible, puisque tu peux forcer une balise inline a se comporter comme une bloc et inversement.
 
mais quelqu'un a t-il une idée pour que je code mon menu.
Je suis surpris que personnes d'autre n'ai eut ce problème avant...
 
des idées ??
 

n°1039447
veyron44
Posté le 25-10-2008 à 20:50:08  profilanswer
 

là ou je bloque c'est que je ne souhaites pas mettre de texte dans <a></a> car je veux une image.
hors l'image est définie dans un div par background.
De plus pour respecter le codage xhtml je devrais mettre un lien pour un vision de la page sans css (pour y voir le fond -en opposition à la forme)

mood
Publicité
Posté le 25-10-2008 à 20:50:08  profilanswer
 

n°1039448
J_D_
Posté le 25-10-2008 à 22:15:57  profilanswer
 

J'ai repris ton code tel qu'il est là.  
 
J'ai juste mis un fond de couleur à la place des images. Je n'ai aucune erreur lorsque je valide localement avec webdeveloper.  
 

n°1039459
veyron44
Posté le 25-10-2008 à 23:46:12  profilanswer
 

heu ...
 
tu parles du code du premier post ? Oui il marche, mais il est considérer comme non valide par le testeur du site de w3c, or c'est notamment par ca que seront vérifier mes pages.
 
Je comprend qu'il geule (le testeur ^^ W3c) parce que mettre une balise bloc dans une inligne, bah ca va pas.
 
J'ai mit le message d'erreur en question un peu plu haut


Message édité par veyron44 le 25-10-2008 à 23:48:05
n°1039461
J_D_
Posté le 25-10-2008 à 23:58:50  profilanswer
 

Moi je n'ai aucune erreur W3C avec ton code.

n°1039465
veyron44
Posté le 26-10-2008 à 00:31:58  profilanswer
 

pourtant moi il me dit clairement que "<a href="questionnaire.html"><div id="Questionnaire"></div></a>" c'est pas bon.  
 
Je cite :"One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>" ) inside an inline element (such as "<a>", "<span>", or "<font>" )."  
 
ou bien: "#  Error  Line 22, Column 48: document type does not allow element "div" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag.
 
<a href="description.html"><div id="description"> "
 
t'es bien aller là ?? http://validator.w3.org/

n°1039468
J_D_
Posté le 26-10-2008 à 00:40:43  profilanswer
 

Ah je me rends compte que j'ai uniquement validé la CSS et pas l'ensemble du document HTML.  
 
Alors oui, il me repère l'erreur aussi. C'est bizarre mais pourquoi tu ne mets pas juste l'image dans la div, plutot qu'un background? Tu mets le lien sur l'image et pas sur la div mais j'imagine que tu y as pensé.  
 
 
 

n°1039476
Lactique
Caraïbe et huile de coco
Posté le 26-10-2008 à 05:28:03  profilanswer
 

Et donc tu/vous vas faire/faites du Xhtml Strict mais sans aucun souci d'avoir un code sémantiquement correcte.
Et on vous apprend ça à l'école ?


---------------
Studio CréeAll
n°1039483
abais
Posté le 26-10-2008 à 10:18:38  profilanswer
 

Oui, il faudrait savoir ce qu'on vous impose, parceque le mieux reste de mettre le <a> dans la <div>, ce qui impose biensure de mettre du texte pour le lien... mais c'est plus... "propre" !
Sinon, passe pas les images survolés ... (je sais pas si c'est au norme du strict...)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1039504
veyron44
Posté le 26-10-2008 à 12:41:54  profilanswer
 

Lactique a écrit :

Et donc tu/vous vas faire/faites du Xhtml Strict mais sans aucun souci d'avoir un code sémantiquement correcte.
Et on vous apprend ça à l'école ?


 
justement je suis en train d'apprendre et comme tu as surement lu les messages avant, tu as bien du te rendre compte que je me soucis de la sémantique, sinon je n'aurais même pas poster puisque, en effet, ça marche... mais que ce n'est pas comme ça qu'il faut coder.
Je vais essayer vos pistes, je vous tient au courant, merci
 
A+

n°1039508
veyron44
Posté le 26-10-2008 à 14:45:39  profilanswer
 

J'AI TROUVEEEE !!!!!!!!
 
Houhhouuuu, après avoir fait des trucs dans tout les sens et mettre embrouiller pendant des jours... en fait c'était tou con, mais alors tout con.
 
J'avais évité de faire comme ça car j'étais persuadé d'avoir lu sur un site internet que le Xhtml strict ne reconnaissait pas la balise css Display...
 
suffisait de faire une balise <span> et de lui associer un paramètre css display:"block";  
 
Du fais que mes images devait être identifier en temps que <a> pour permettre d'utiliser :hover, que les blocs ne faisaient pas tous la même largeur et qu'il fallait de ce fait les identifier individuellement, la piste de mise en forme par des <ul> <li>... n'était pas possible
 
J'ai essayer un temps: http://css.alsacreations.com/Tutor [...] age-unique ... mais ca ne convenait pas.
 
v'là bon dimanche ^^

n°1039616
Lactique
Caraïbe et huile de coco
Posté le 27-10-2008 à 15:14:02  profilanswer
 

Citation :

Du fais que mes images devait être identifier en temps que <a> pour permettre d'utiliser :hover, que les blocs ne faisaient pas tous la même largeur et qu'il fallait de ce fait les identifier individuellement, la piste de mise en forme par des <ul> <li>... n'était pas possible


Ha bon ? moi et des milliers d'autres codeur xhtml css on fait ça tous les jours pourtant.

 

C'est de toute façon ta seul solution correcte sémantiquement. C'est une liste ? donc dis le dans le code, en utilisant les balises de liste.
C'est simple pourtant le xhtml.
A toi de bosser ton css pour savoir comment regler tes probleme d'affichage, ce n'est pas le html qui doit souffrir du manque de connaissance de la part du codeur. Le code html doit etre le plus court le plus propre le plus efficace. Seule la css peut etre bricolé.

 

En l'occurrence ici y arien de complexe a faire un ul li avec des liens, y mettre du texte qui ne s'affichera pas, y mettre une image d'arrière plan avec roll-over donc et le tout dimensionné comme un bloc pour avoir une zone rectangulaire cliquable.

 

Il serait bon de surfer un peu sur des sites propres et d'analyser un peu le code html et css. On va dans le mur sinon...

 

Ps un Ul se comporte comme une div et se gère aussi bien, aucun intéret de créer une div pour contenir un menu comme trop souvent on le voit.


Message édité par Lactique le 27-10-2008 à 15:16:59

---------------
Studio CréeAll

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Graphisme
  Web design

  Help CSS menu image hover

 

Sujets relatifs
Graphiste tradi paumée en infographie Help !HELP SVP!! Besoin d'1 pt conseil "policier"...
Solidworks 2003 - image de bonne qualitéflash , image clé et symbole ?
Comment faire comme cet image ?Cherche image de drapeau
Besoin d'aide pour menuHELP!!!Animation Flash avec "widht"
Agrandir une image sous photoshop sans garder toutes les proportionsChanger la couleur d'une partie d'image avec GIMP
Plus de sujets relatifs à : Help CSS menu image hover


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR