L'Image n'est pas cliquable à l'intérieur d'ancrage que dans IE7
Structure Html
<a>
<span> <!-- Span has width & height -->
<img>
</span>
<span> Some text <span>
</a>
D'ancrage n'est pas cliquable seulement dans IE7, je sais que le problème se produit en raison de hasLayout, si on enlève la hauteur & largeur de la durée, cela fonctionnera très bien.
Mais j'en ai besoin pour le faire fonctionner avec la suppression de la hauteur & largeur.
EDIT: Vous pouvez jouer avec un exemple ici: http://jsfiddle.net/rxcAb
- J'ai le même problème: l'image ci-dessous n'est pas cliquable dans IE7: jsfiddle.net/rxcAb
- posté une réponse qui devrait répondre à vos besoins.
- voir ma réponse et laissez-moi savoir si je suis en retard quelque part.
Vous devez vous connecter pour publier un commentaire.
CSS Seule Solution
Tomas-J'ai modifié votre violon dans un exemple de travail. J'ai changé votre code pour utiliser un
span
à l'intérieur de laa
balise parce qu'il est inadmissible d'avoir un standard de niveau bloc (undiv
) dans un élément inline (una
tag). Donner laa
balise de mise en page (j'ai utiliséinline-block
) et de définir ensuite unposition:relative
sur quespan
avec unz-index: -1
pousse lespan
"en dessous" dua
tag et fait IE7 reconnaître laa
tag de nouveau actif. Ci-dessous est le code modifié utilisé dans mon violon. Vous pouvez définir une classe générique nom de monie7AFix
(vous n'aurez probablement aussi veux juste la cible IE7 pour ceux propriétés CSS qui sont nécessaires pour lui seul). Je suppose que vous êtes en variant lewidth
etheight
par des images, et c'est pourquoi vous avez ces inline style.HTML
CSS
Mis À Jour Le Violon avec
line-height
ajouté pour faire de la "croix-navigateur" si on ne veut pas la cible IE7 seulement. J'ai gardé lewidth
etheight
dans lespan
html ci-dessus, que parce que la question d'origine (par les deux gviswanathan et Tomas) l'a demandé. Si vous n'avez pas besoin de définir les dimensions sur lespan
pour une raison quelconque, mais sont tout simplement essayer de faire une double bordure sur l'image, puis thirtydot la réponse donnée dans le commentaire ci-dessous est beaucoup plus simple.line-height
problème et il est résolu comme.line-height
à<a>
ne fonctionne pas dans ce cas... OMG. Nice, merci.span
avec unwidth
situé dans lea
tag. Si cela n'est pas nécessaire pour une autre raison, alors l'ajout de la gymnastique que je montre ne sont pas nécessaires.<a><span><img>
était à cause de problèmes initiaux avec IE7! Mais grâce à Scott, le code peut maintenant simplifier beaucoup! Et grâce à vous thirtydot pour la finale de la simplification.Avec jQuery, la suite vous la force de tous les liens à travailler, et le 'pointeur' curseur:
J'ai testé cette simulation avec IE7 IE8 en mode affichage de compatibilité, mais ne peut pas garantir qu'il sera pour IE7 sur son propre.
Vous pouvez appliquer de cette façon plus sélective -- je soupçonne que, comme il est, cela pourrait ralentir les anciennes performances du navigateur -- dans quels cas appliquer une classe (comme
<a href='myClass'>
) à tous les liens sont cassés de cette façon, et il suffit de changer$('a')
à$('.myClass')
Avez-vous essayé d'utiliser le HTML5 cale? Il aide beaucoup avec les problèmes qui sont causés par hasLayout.
Juste de prendre de l'envergure de l'IMG. L'élément IMG peut être décoré avec une classe juste comme n'importe quel autre élément, vous n'avez donc pas besoin d'une durée autour d'elle.
donner le code CSS suivant les règles de l'élément:
Ah un autre hasLayout caprice
il n'est pas possible de réaliser dans IE7 et encore conserver la largeur de l'intervalle, si vous pouviez montrer ce que vous essayez d'atteindre dans un JS fiddle on pourrait peut-être aider, trouver un moyen de contourner cela par exemple, et ce n'est qu'une supposition, en mettant la largeur sur la
anchor
avec rembourrage permettrait de créer un complètement zones cliquables et permettent encore à une "légende" span être retenue si c'est ce que vous êtes après..Exemple cette solution n'est pas un correctif
CSS:
HTML:
Ci-dessus est seulement une pensée, et si ce n'est pas ce que vous êtes après, alors s'il vous plaît fournir un échantillon jsfiddle.net
Il est peut-être un problème, c'est que parce que vous n'avez pas de définir
href="#"
à l'intérieur de votre<a>
TAG Alors, mettezhref="#"
à l'intérieur de votre<a>
TAG. Écrire comme ceci:Juste envelopper d'ancrage à l'intérieur de la balise Div ou Span. Son travail dans IE7.
De cette façon est faux..?
À partir de votre post, je pense que u voulais une image cliquable avec span texte d'info !! J'espère que cela aidera u 😉
http://jsfiddle.net/ajinkyax/v5KH5/3/
CSS:
Voir jouer du violon pour code et de démonstration
Violon: http://jsfiddle.net/rxcAb/29/
Démo: http://jsfiddle.net/rxcAb/29/embedded/result/
Parfaitement de travail dans IE7, IE8, FF, Chrome, Safari.
Pas de changements dans le code: Voir ci-dessous
Un moyen facile de le faire est:
Si vous avez quelque chose comme:
Simplement ajouter une propriété de style à l'ancre comme ceci:
Cela rendra la div et tout à l'intérieur d'elle cliquable dans IE7+, firefox & chrome.