Comment faire pour que :hover fonctionne tout de suite ?

Erffoc

Membre actif
23 Août 2006
150
6
44
Belgique
Bonjour,
Lorsque vous allez sur mon site : www.sd-image.be , vous remarquerez que mon lien est rouge sur fond blanc. Lorsqu'on passe la souris, je souhaite qu'il devienne blanc sur fond rouge. Seulement, pour que ça se passe, il faut vraiment que ma souris aille sur le texte, sinon, si je ne fais que passer sur la boîte, il reste rouge sur fond rouge !

Je vois pas trop comment régler ce problème, vous avez une idée ?
 
Je pense qu'il faudrait que tu définisses un unique "objet" css qui englobe le cadre et le texte et que ce soit cet objet qui réponde au "hover".
 
Oui, en effet, tu as une idée pour faire ça ?
Parce qu'à la base, je voulais le faire avec des images, mais apparemment ça ne fonctionne pas sous IE.
 
La pseudo class :hover ne fonctionne en effet que sur un lien (balise <a href>) sur ie.

---------- Nouveau message ajouté à 12h25 ---------- Le message précédent a été envoyé à 12h22 ----------

Ceci dit, tu peux définir ton lien en tant que block en utilisant la css suivante: a { display: inline-block; padding: 5px; border: 1px solid red; background-color: white; color: red; }

---------- Nouveau message ajouté à 12h28 ---------- Le message précédent a été envoyé à 12h25 ----------

Et pour le hover : a:hover { border: 1px solid red; background-color: red; color: white; }
 
J'avais pas essayé avec le inline block.
Mais en fait, mon problème vient du fait que plusieurs règles se croisent en cascade, parce que je viens juste de mettre un bloc avec une classe que j'ai déjà et il me fait l'effet que je veux !!

Mais je ne peux régler ça pour le moment.

Mon site est maintenant terminé : www.sd-image.be
 
Quelques petites choses sont à revoir sur ton site, rien d'essentiel en soit mais tu as plusieurs points qui posent problème, esthétiquement et techniquement.

1 - La structure du menu horizontal
Tu utilise des <div> pour tes "boutons" du menu, la règle courante pour ce genre de choses et de prendre une liste <ul>/<li> et de la détourner, même si la sémantique est un peu barbare pour un index de navigation elle permet un travail en CSS simple et facile à maintenir.
Donc :
Bloc de code:
<div id="navigation">
  <div class="nav">Lien</div>
  <div class="nav">Lien</div>
  <div class="nav">Lien</div>
</div>

Doit devenir :
Bloc de code:
<ul id="navigation">
  <li>Lien</li>
  <li>Lien</li>
  <li>Lien</li>
</ul>
Tu vois l'avantage d'utiliser les éléments <ul> et <li> permet d'appliquer des attributs CSS à ces balises (je garde une classe ID pour cibler les styles).

Un bonne base pour ton menu sur le Site du Zéro, ou un autre exemple sur Dynamic Drive.

2 - Lien sur image
Un autre point à solutionner c'est les liens sur images, par défaut sous Explorer et Firefox, un lien <a> sur une image ajoute un filet à celle-ci, ça peut dénaturer ton affichage et brouiller la lecture globale, soit tu mets un attribut "border="0"" à tes images-lien, soit une règle globale par exemple :
Bloc de code:
img {border=0px;}
Rien ne t'empêche de mettre un comportement "hover" sur les images-lien, un padding de 1 pixels avec fond blanc qui bascule en noir au survol par exemple.

3 - Texte justifié
Tu utilises la justification pour le bloc de droite dans tes pages, outre le fait d'employer du texte en capitale ce qui gênant pour la lecture, tu lui appliques cette justification qui créé des gros trous blancs dans le texte, du coup ta volonté de mettre en avant cette partie est complètement annulé par ta mise en page. Mon conseil c'est de mettre le texte en minuscule, centré avec une marge globale de 15/20 pixels pour améliorer la lecture, peut-être un corps gras mais une couleur de texte dans les gris moyens pour limiter l'impact du gras.

My Two cents :rolleyes: :cool:
 
Tu utilise des <div> pour tes "boutons" du menu, la règle courante pour ce genre de choses et de prendre une liste <ul>/<li> et de la détourner, même si la sémantique est un peu barbare pour un index de navigation elle permet un travail en CSS simple et facile à maintenir.
Plus simple et facile à maintenir ? Humf, vu l'interprétation qu'IE fait sur les UL/LI, je suis un peu sceptique sur ce point. :D

Pour le display:inline-block, c'est pareil, il me semble que c'est non reconnu par IE6/7&#8230;

(bon et sinon, pour le problème de base, y'a tjrs la solution javascript)
 
Super merci pour vos remarques les gars !
Ca doit faire royalement deux-trois semaines que j'ai appris le html, donc les remarques sont plus que bienvenues.

En effet, pour les menus, j'aurai du penser aux listes, j'irai modifier ça la prochaine fois que je retravaille le site. En plus, mes div sont chacunes positionées en absolu, ce qui devient un peu barbare quand je veux changer la mise en page !

Pour le texte justifié, tu as tout-à-fait raison, un ami m'a fait un print-screen, c'était affreux. Sur mon ordi, ça donnait bien, mais bon... d'ailleurs, ça, je vais le changer juste après parce que ça peut pas attendre...

J'aimerai maîtriser un peu mieux, xhtml et css avant d'aller voir javascript (même si c'est prévu pour la suite). Avec javascript, il y a aucun problème en fonction des navigateurs ?

Et voilà, les modifs urgentes sont faites. Si vous voyez d'autres choses, n'hésitez surtout pas !
 
Plus simple et facile à maintenir ? Humf, vu l'interprétation qu'IE fait sur les UL/LI, je suis un peu sceptique sur ce point. :D
Je parlais côté design dans les CSS, pour IE il faut juste bien veiller à bloquer certains attributs (ou renseigner les bases et ne pas laisser IE faire ce qu'il veut), ça marche très bien (Cf. liens indiqués).

Pour IE j'oublie la 6, pour moi c'est out… :p
 
Je parlais côté design dans les CSS, pour IE il faut juste bien veiller à bloquer certains attributs (ou renseigner les bases et ne pas laisser IE faire ce qu'il veut), ça marche très bien (Cf. liens indiqués).

Pour IE j'oublie la 6, pour moi c'est out… :p

Bah il a plein de trucs drôles en fait IE, en particulier les éléments se comportent pas de la même façon si on leur met une classe css ou un id, si on n'en met pas les li ont tendance à se comporter tous ensembles comme s'ils n'étaient qu'un seul élément, certains paramètres par défaut sont douteux, d'autres ont des rendus étranges quand on les modifie, non vraiment c'est que du bonheur d'assurer la compatibilité IE à partir du 6 sur les listes quand on veut des mises en page un peu sophistiquées.