background css et image

Invité
Invité n'ayant pas de compte PHPfrance

25 août 2006, 11:33

Bonjour à tous,

J'utilise css pour appliquer une image de fond à une balise div. ça me donne:
//HTML
<div id="Maclasse"></div>

//CSS
#Maclasse {
width: 100px;
height: 100px;
background-image:url(../images/Monimage.jpg);
}
Ma question:
est-il possible d'ajouter un lien vers une url à Monimage.jpg dans le cas actuel?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 août 2006, 11:43

Bonjour, il me semble qu'il te manque des balises <style> pour encadrer ton CSS.
De plus il n'est pas possible de mettre un lien sur l'image vu que c'est une image de fond, en revanche c'est peut être possible en javascript avec un onclick sur le div, mais cela reste de la bidouille et c'est fortement déconseillé.
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

25 août 2006, 11:50

pardon, g pas relu ce que j'ai écrit.

- ya pas de <?php au début.
- le html et le css sont dans 2 fichiers séparés.

sinon merci pour ta réponse. Pourquoi tu dis que c'est une bidouille déconseillée? ça reste un rollover javascript non?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

25 août 2006, 12:13

Tu peux aussi mettre une image transparante de la taille de ton background et tu pourras faire ton lien dessus.

Mais pourquoi dans ce cas ne pas afficher directement l'image et non en fond ?

Invité
Invité n'ayant pas de compte PHPfrance

25 août 2006, 12:34

bah, c une longue histoire...je suis dans mambo et je modifie un menu avec du css.J'en arrive à ce topic car je veux que mon menu aie la même apparence sous tous les navigateurs.

La seule solution qui me reste est d'utiliser un bouton transparent flash car je ne peux pas insérer un image dans cette balise div sans que ie et firefox se disputent.

Merci pour vos réponses.

Mammouth du PHP | 19672 Messages

25 août 2006, 21:07

Pour corriger le problème que pose IE, dis-toi que selon le standard, un bloc DIV par défaut ne possède aucune marge, ni intérieure ni extérieure, mais IE en rajoute. Donc ce que tu dois faire pour avoir le même affichage tous navigateurs confondus, c'est dans ton style ajouter margin: 0; padding: 0; et ensuite suivre la suggestion de charabia : une image sous la forme d'un pixel transparent de la dimension de ton bloc div entre les balise d'ancre <a>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: