Google Chrome: просмотр фонового изображения не работает
(прежде чем я начну, я должен сказать "да", я сделал все проверки глупости, да, ссылка в моей истории и была посещена и т.д.)
Я использую Chrome версии 6.0.472.63, хотя важно, что это работает во всех браузерах.
Он работает в Firefox, IE и Opera.
В основном все, что я пытаюсь сделать, это изменить фоновое изображение ссылки, если ссылка была посещена.
Я много сделал для тестирования проб и ошибок, так что голый со мной для нескольких примеров.
Это то, что я изначально
.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);
}
Работает в каждом браузере, кроме Chrome. Затем я попробовал просто сделать цвет, а не изображение.
.forum_box .title a:visited {
background-color:red;
}
То же самое, однако я изменил ссылку на #fff вместо прозрачной, а посещенная ссылка изменилась на красный, поэтому, видимо, цвет bg работает только если вы установили цвет bg для родителя.
.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;
}
Однако он по-прежнему не решает проблему с моим изображением. Поэтому в одной последней попытке я попробовал это в надежде, что по какой-то причине Chrome будет работать только тогда, когда те же свойства, что и в обоих.
.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;
}
Это не сработало и снова продолжало работать в Firefix, Opera и IE. Поэтому я очень часто схожу сюда с Stack Overflow.
Любая помощь будет принята с благодарностью!
UPDATE:
Я попытался выполнить jQuery-решение, хотя оно все еще не работает. Несмотря на наличие: посещенных ссылок, и я могу подтвердить их состояние посещения, изменив цвет шрифта на красный. jQuery ('a: visited'). length возвращает 0.
Ответы
Ответ 1
Такая же проблема.
Изменение фона в CSS Sprite на: visit работает для меня в Firefox 3.6, но не в Chrome 6.
Но, вероятно, скоро он тоже перестанет работать в Firefox. (возможно, для FF 4?)
Это проблема конфиденциальности, и вы можете прочитать здесь статью Mozilla об этом (март 2010) http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/
И ошибка:
https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160
Я думаю, что только возможное решение состоит в том, чтобы творчески использовать фоновый цвет вместо изображений.
Ответ 2
Вероятно, это проблема безопасности.
Проверьте сообщение в блоге безопасности mozilla.
Я могу себе представить, как они это сделают.
Ответ 3
Chrome, похоже, отключил css для: посещенных (за исключением цвета).
Это будет предотвращение эксплойта обмана.
См. http://www.azarask.in/blog/post/socialhistoryjs/
Ответ 4
Вам могут понадобиться ваши одиночные кавычки вокруг вашего URL-адреса img...
Браузеры смешны, когда они заботятся о котировках, а когда они этого не делают.