2010-09-24 11 views
11

(zanim zacznę muszę powiedzieć tak, zrobiłem wszystkie kontrole głupota, tak link jest w mojej historii i został odwiedził etc)Google Chrome a: visited obraz tła nie działa

używam Chrome w wersji 6.0.472.63, chociaż ważne jest, aby działało to we wszystkich przeglądarkach.

Działa na Firefox, IE i Opera.

W zasadzie wszystko, co próbuję zrobić, to zmienić obraz tła linku, jeśli link został odwiedzony.

Zrobiłem dużo testów próbnych i błędów, więc mam go przy sobie na wiele przykładów.

To co miałem pierwotnie

 
.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); 
} 

działa w każdej przeglądarce z wyjątkiem Chrome. Następnie próbowałem po prostu nadać mu kolor, a nie obraz.

znowu to samo, jednak zmieniłem link #FFF zamiast przejrzysty i odwiedził związek zmieniane czerwony, więc widocznie bg kolor działa tylko jeśli ustawisz bg kolor dla rodzica.

 
.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; 
} 

Jednak nadal nie rozwiązuje mojego problemu z obrazem. Tak więc w ostatniej próbie spróbowałem tego w nadziei, że z jakiegoś powodu Chrome będzie działać tylko wtedy, gdy te same właściwości będą obecne w obu.

 
.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; 
} 

To nie zadziałało i nadal działało na Firefixach, Operze i IE. Więc przychodzę tutaj, żeby Stack Overflow był bardzo zdezorientowany.

Każda pomoc będzie bardzo ceniona!

AKTUALIZACJA: Podjęto próbę rozwiązania jQuery, chociaż nadal nie działa. Pomimo posiadania: odwiedzonych linków i mogę potwierdzić ich odwiedzany stan, zmieniając kolor czcionki na czerwony. jQuery ('a: visited'). length zwraca 0.

+0

Czy możesz to rozwiązać? –

+0

Byłoby to możliwe na przykład mogę zrobić jQuery (". Forum_box .title a: visited"). AddClass ("odwiedził"), a następnie użyć klasy do stylizacji. Ale założyłem, że pojawi się inne rozwiązanie, a nie Chrome z natury błędnie działa na jednej z najstarszych i najbardziej podstawowych właściwości CSS. – robjbrain

+0

Wiem, że to nie rozwiąże problemu w tej chwili, ale zawsze możesz zgłosić błąd ... http://code.google.com/p/chromium/issues/entry – EJC

Odpowiedz

12

Ten sam problem tutaj. Zmiana położenia tła w obiekcie CSS Sprite na stronie: visited działa dla mnie w przeglądarce Firefox 3.6, ale nie w Chrome 6.

Prawdopodobnie jednak wkrótce przestanie działać również w Firefoksie. (Być może dla FF 4?)

To problem prywatności i można przeczytać tutaj artykuł Mozilla o nim (marzec 2010) http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/ A bug: https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160

myślę możliwe tylko rozwiązaniem jest użycie kreatywnie kolor tła zamiast obrazów.

+0

Nie sądzę, aby kolor tła działał. AFAIK cały: odwiedzony selektor zostanie całkowicie zignorowany. –

0

Możesz potrzebować swoich pojedynczych cudzysłowów wokół swojego adresu URL ... Przeglądarki są zabawne, gdy dbają o cytaty, a kiedy nie ...

+0

To nie miało znaczenia, ale dzięki za sugestię! – robjbrain

+0

Niestety nie było to pomocne, wydaje się to bardzo dziwnym problemem. Tak jak powiedziałem powyżej, zgłosiłbym do niego błąd w projekcie Chrome i pomyślałbym, że naprawi on coś takiego szybko, ponieważ jest to podstawowa funkcjonalność html/css. – EJC

3

To prawdopodobnie problem bezpieczeństwa.
Sprawdź ten post na blogu bezpieczeństwa mozilla.
Z pewnością mogę sobie wyobrazić, jak by to zrobili.