2010-09-24 12 views
11

(avant de commencer, je dois dire oui, je l'ai fait toutes les vérifications de la stupidité, oui le lien est dans mon histoire et a été visité etc)Google Chrome a: image de fond visité ne fonctionne pas

J'utilise Chrome version 6.0.472.63, bien qu'il soit important que cela fonctionne sur tous les navigateurs.

Fonctionne sur Firefox, IE et Opera.

Fondamentalement, tout ce que j'essaie de faire est de changer l'image d'arrière-plan d'un lien si le lien a été visité.

J'ai fait beaucoup de tests d'essais et d'erreurs si nuls avec moi pour de multiples exemples.

C'est ce que j'avais à l'origine

 
.forum_box .title a { 
background-image:url(../images/f_unread.png); 
background-position:10px center; 
background-repeat:no-repeat; 
background-color:transparent; 
color:#2D4054; 
font-size:14px; 
padding:10px 12px 10px 44px; 
text-decoration:none; 
display:block; 
font-weight:bold; 
} 
.forum_box .title a:visited { 
background-image:url(../images/f_read.png); 
} 

Works dans tous les navigateurs, sauf Chrome. Ensuite j'ai essayé juste de faire une couleur plutôt qu'une image.

même à nouveau, mais je changé le lien vers #fff au lieu de la transparence et le lien visité changé rouge, donc apparemment la couleur bg ne fonctionne que si vous définissez une couleur bg pour le parent.

 
.forum_box .title a { 
background-image:url(../images/f_unread.png); 
background-position:10px center; 
background-repeat:no-repeat; 
background-color:#fff; 
color:#2D4054; 
font-size:14px; 
padding:10px 12px 10px 44px; 
text-decoration:none; 
display:block; 
font-weight:bold; 
} 
.forum_box .title a:visited { 
background-color:red; 
} 

Cependant, il ne résout pas mon problème d'image. Donc, dans une dernière tentative, j'ai essayé cela dans l'espoir que, pour une raison quelconque, Chrome ne fonctionnerait que lorsque les mêmes propriétés étaient présentes dans les deux.

 
.forum_box .title a { 
background:#fff url(../images/f_unread.png) no-repeat 10px center; 
color:#2D4054; 
font-size:14px; 
padding:10px 12px 10px 44px; 
text-decoration:none; 
display:block; 
font-weight:bold; 
} 
.forum_box .title a:visited { 
background:#fff url(../images/f_read.png) no-repeat 10px center; 
} 

Cela ne fonctionnait pas non plus et continuait à fonctionner sur Firefix, Opera et IE. Donc je viens ici à Stack Overflow très confus.

Toute aide serait grandement appréciée!

MISE À JOUR: J'ai tenté une solution jQuery, même si elle ne fonctionne toujours pas. Malgré avoir: visité les liens et je peux confirmer leur état visité en changeant la couleur de la police en rouge. jQuery ('a: visited'). length renvoie 0.

+0

Pouvez-vous jffiddle cela? –

+0

Ce serait possible par exemple je pourrais faire jQuery ('. Forum_box .title a: visité'). AddClass ('visité') et ensuite utiliser la classe pour le style. Mais j'ai supposé qu'il y aurait une autre solution plutôt que l'erreur de fond de Chrome sur l'une des propriétés CSS les plus anciennes et les plus élémentaires. – robjbrain

+0

Je sais que cela ne résout pas votre problème pour le moment, mais vous pouvez toujours soumettre un bug ... http://code.google.com/p/chromium/issues/entry – EJC

Répondre

12

Même problème ici. Changer la position d'arrière-plan dans un Sprite CSS sur un: visited fonctionne pour moi dans Firefox 3.6 mais pas dans Chrome 6.

Mais bientôt, il va bientôt cesser de fonctionner dans Firefox. (Peut-être pour 4 FF?)

Il y a un problème de confidentialité, et vous pouvez lire ici un article Mozilla à ce sujet (Mars 2010) http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/ Et le bug: https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160

Je pense que la seule solution possible est d'utiliser créative la couleur de fond au lieu des images.

+0

Je ne pense pas que la couleur de fond puisse fonctionner. AFAIK le tout: le sélecteur visité sera complètement ignoré. –

0

Vous aurez peut-être besoin de vos guillemets simples autour de votre img url ... Les navigateurs sont curieux de savoir quand ils se soucient des devis et ...

+0

Cela n'a fait aucune différence mais merci pour la suggestion! – robjbrain

+0

Désolé, ce n'était pas plus utile, cela semble être un problème très étrange. Comme je l'ai dit plus haut, je déposerais un bug sur le projet web de chrome et je pense qu'ils pourraient corriger quelque chose comme ça assez rapidement car c'est une fonctionnalité html/css basique. – EJC

3

C'est probablement un problème de sécurité.
Cochez cette case post sur le blog de sécurité mozilla.
Je peux certainement imaginer comment ils le feraient.

2

Chrome semble avoir désactivé css pour: visited (sauf pour la couleur).

Cela aurait pour but d'empêcher l'exploit de renifler l'historique.

Voir