CSS: lien de l'image, changer de sur le vol stationnaire
J'ai une image qui est un lien. Je veux montrer une image différente lorsque l'utilisateur survole le lien.
Actuellement, je suis en utilisant ce code:
<a href="http://twitter.com/me" title="Twitter link">
<div id="twitterbird" class="sidebar-poster"></div></a>
div.sidebar-poster {
margin-bottom: 10px;
background-position: center top;
background-repeat: no-repeat;
width: 160px;
}
#twitterbird {
background-image: url('twitterbird.png');
}
#twitterbird:hover {
background-image: url('twitterbird_hover.png');
}
Mais je vais avoir des tonnes de problèmes: la div n'est pas de ramasser les règles CSS (l'élément n'est tout simplement pas montrer la relative règles CSS quand je l'ai vue dans Firebug).
Peut-être que c'est parce que (comme je sais) c'est du code HTML non valide: vous ne pouvez pas mettre un <a>
autour d'un <div>
. Cependant, si je passe à <span>
ensuite, il semble que je reçois plus de problèmes, parce que vous ne pouvez pas définir la hauteur et la largeur sur une plage de façon fiable.
Aider! Comment puis-je faire mieux?
- En fait, je pense que MAINTENANT mettre
<a>
autour d'un<div>
est autorisé. - Ah OK... Dans ce cas, aucune idée pourquoi le CSS n'est pas d'être pris? J'ai pensé que si j'ai utilisé l'id sur l'élément, et dans le CSS, il serait toujours le ramasser.
- Au niveau du bloc des liens sont très bien si vous êtes en utilisant le doctype HTML5. html5doctor.com/block-level-links-in-html-5
- quel doctype utilisez-vous? dans html5
a
éléments peuvent contenir des éléments de niveau bloc.
Vous devez vous connecter pour publier un commentaire.
utiliser une classe pour le lien lui-même et d'oublier les div
Si vous avez quelques endroits où vous souhaitez créer cet effet, vous pouvez utiliser le code html suivant qui ne nécessite pas de feuille de style css. Il suffit de l'insérer.
Assurez-vous d'écrire la citation des marques exactement comme ils le sont ici, ou il ne fonctionnera pas.
Qui pouvait être fait avec
<a>
seulement:<a href="" id="twitterbird"></a>
? Malheureusement, cela se traduit par une largeur et une hauteur de 0 (même avec les classes CSS vous proposer) dans Chrome.height: 160px ! important
mais il n'aide pas...Le problème avec l'évolution de la via JavaScript ou CSS, c'est que si vous avez une connexion plus lente, l'image prend une seconde pour changer de la planait version. Cela va entraîner un indésirable flash que l'on disparaît, tandis que les autres téléchargements.
Ce que j'ai fait auparavant, c'est avoir deux images. Puis masquer et afficher chaque fonction de l'état de pointage. Ceci permettra de nettoyer basculer entre les deux images.
Il peut être préférable si vous définissez un élément de cette façon
puis par les sprites css définir votre arrière-plan, la
Edit: cochez cette exemple http://jsfiddle.net/steweb/dTwtk/
Vous pouvez faire ce qui suit, sans avoir besoin de CSS...
Exemple: https://jsfiddle.net/jord8on/k1zsfqyk/
Cette solution était PARFAIT pour mes besoins! J'ai trouvé cette solution ici.
Avertissement: Avoir une solution qui est possible sans CSS est important pour moi parce que j'ai de la conception de contenu sur le Jive-x nuage plate-forme communautaire qui ne nous donne pas accès aux CSS.
Si vous donnez donnent généralement un
span
la propriétédisplay:block
, il va ensuite se comporter comme undiv
, j'.e vous pouvez définir la largeur et la hauteur.Vous pouvez également ignorer les
div
ouspan
et il suffit de régler lea
ledisplay: block
et appliquer le backgound style.