Posez votre question Signaler

XHTML CSS et a:hover + img [Résolu]

crou - Dernière réponse le 3 juin 2007 à 22:14
Bonjour,
Dans mon css, j'ai mis:
a:hover {
color : #ffffff;
text-decoration : none;
background-color : #4c0000;
font-style : normal;
}
Ce qui signifie que le lien aura un background plutot rouge (4c0000). Mais dans la ban j'ai voulu mettre un lien menant a l'index. Et a cause de ce a:hover je n'arrive pas a enlever ce background rouge qui s'affiche juste derriere l'image.
J'ai voulu créer un img{ ... } mais quoi que je mette a part border-width: 0; il ne veut rien entendre et laisse ce background.
Avez vous une idée pour le retirer ?
Merci d'avance.
Lire la suite 

XHTML CSS et a:hover + img »

9 réponses
Réponse
+4
moins plus
Qu'est ce que tu veux dire par la ?
dans img:

border : 0; ?
Exemple:

img {
border-width : 0;
border : 0;
}

Ca ne fonctionne pas :/
J'ai effectivement (comme avant ) pas la bordure autour. Mais dès que je passe la souris j'ai en bas seulement de la page (avec IE et Firefox) Une bordure rouge comme sur les liens comme si c'était un texte.

Merci
Ajouter un commentaire
Réponse
+2
moins plus
Salut,
autour d'une image avec lien, le seul moyen que je connaisse pour enlever la bordure, c'est effectivement le border 0px (car par défaut à 1)
Ajouter un commentaire
Réponse
+2
moins plus
l'image est décalée vers le haut.
à défaut de corriger cela, tu peux appliquer une règle de style spécifique au moyen d'une classe :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" >

	<head>
	<title>Un titre</title>
	<style type="text/css" media="screen">
		img {
		border : none;
		}
		a:link {
		color : red;
		text-decoration : none;
		font-weight : normal;
		font-style : normal;
		}
		a:visited {
		color : red;
		text-decoration : none;
		}
		a:hover {
		color : #ffffff;
		text-decoration : none;
		background-color : green;
		font-style : normal;
		}
		a:active {
		color : green;
		text-decoration : none;
		}
		a.image:hover{
		background-color:transparent;
		}
	</style>
	</head>
	<body>
	<p>Une ban:
	<a href="index.html" class="image"><img width="276px" height="110px" src="http://www.google.fr/intl/fr_fr/images/logo.gif" alt="Test"/></a>
	</p>
	
	<p>Un lien:
	<a href="#">Un lien!</a>
	</p>
	</body>
	
</html>


ps : les autres règles sont à mon avis inutiles.
Ajouter un commentaire
Réponse
+1
moins plus
dans tous les cas, il faut rajouter px ou em ou autre pour des valeurs...
mais en l'occurence, me suis peut etre trompé, essaye avec

border : none;
Ajouter un commentaire
Réponse
+1
moins plus
Même chose:
j'ai l'impression que le a:hover est au dessus de ça et que pour le changer il faudrait faire en sorte que ce hover agisse après la bannière.

Sinon, je ne vois, peut-être as tu une autre idée?
Ajouter un commentaire
Réponse
+1
moins plus
Donnes le code html de la page avec... que je vois comment tu as construit la page, ou un lien!
Ajouter un commentaire
Réponse
+1
moins plus
salut,

je confirme, pour enlever la bordure d'une image contenue dans un lien il faut bien :
img{
border: none;
}

ou {border-width: 0;}, l'unité est inutile.

mais pour l'histoire d'arrière plan, sans le code…
Ajouter un commentaire
Réponse
+1
moins plus
J'ai donné la partie du code qui gènere le background-color sur l'image. Mais voici tout le code source:

Exemple.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" >

	<head>
	<title>Un titre</title>
	<style type="text/css" media="screen">@import "style.css";</style>
	</head>
	<body>
	<p>Une ban:
	<a href="index.html"><img src="http://www.google.fr/intl/fr_fr/images/logo.gif" alt="Test"/></a>
	</p>
	
	<p>Un lien:
	<a href="#">Un lien!</a>
	</p>
	</body>
	
</html>

(Bon il est pas xhtml w3c validator only pour l'exemple) :]

et le style.css:
html {
position : absolute;
overflow : scroll;
}

body {
height : 50px;
font-family : Arial;
}

img {
border-width : none;
border : none;
border-style: none;
}

a:link {
color : red;
text-decoration : none;
font-weight : normal;
font-style : normal;
}

a:visited {
color : red;
text-decoration : none;
font-weight : normal;
font-style : normal;
}

a:hover {
color : #ffffff;
text-decoration : none;
background-color : green;
font-style : normal;
}

a:active {
color : green;
text-decoration : none;
font-style : normal;
}


Voila.
Si vous testez, vous remarquerez une barre en dessous du logo de google ! c'est cette barre que je veux retirer, et les a:* me gene :(

Merci de votre aide.
Ajouter un commentaire
Réponse
+1
moins plus
Merci de la réponse, ca marche.
Les autres règles ne sont pas inutiles dans la page que je construis. Ca m'aide beaucoup. Décidément, les CSS c'est puissant.

résolu !
a++ !
Ajouter un commentaire
Ce document intitulé « XHTML CSS et a:hover + img » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?