Background-image in a:visited (?)

Hallo,
ich habe zwei verschiedene Hintergründe für Links einer Klasse wie folgt definiert:

a.Wolke {
 display:table; 
 position:absolute; 
 background-image:url(img/dunkel.png); 
 background-position:center; 
 background-repeat:no-repeat; 
 width:145px; 
 height:80px; 
 text-align:center; 
 color:#EEEEEE; 
 text-decoration:none; 
 font-weight:bold;
}
a.Wolke:visited {
 display: table;
 position:absolute;
 background-image:url(img/hell.png);
 background-position:center;
 background-repeat:no-repeat;
 width:145px;
 height:80px;
 text-align:center;
 color:#333333;
 text-decoration:none;
 font-weight:bold;
}

Doch leider ändert sich die Hintergrundfarbe nur im Firefox 3 und Opera. Chrome und Firefox 4 ändern nur die restlichen Einstellungen.

Erkennt ihr einen Fehler? Kann man die gewünschte Kompatibilität irgendwie erzwingen? Mit Javascript?

onclick="javascript:self.style.backgroundImage = 'url(img\/hell.png)';"

Hoffe ihr habt eine Idee, wie man das erreichen kann.

Gruß und Dank
duak007

hi

a.Wolke {
display:table; 
position:absolute; 
background-image:url(img/dunkel.png); 
background-position:center; 
background-repeat:no-repeat; 
width:145px; 
height:80px; 
text-align:center; 
color:#EEEEEE; 
text-decoration:none; 
font-weight:bold;
}
von hier an ist das meiste erst mal redundant, es bräuchte nur das fettgedruckte
a.Wolke:visited {
<small>	display: table;<br>	position:absolute;</small>
**background-image:url(img/hell.png);**
<small>	background-position:center;<br>	background-repeat:no-repeat;<br>	width:145px;<br>	height:80px;<br>	text-align:center;</small>
**color:#333333;**
<small>	text-decoration:none;<br>	font-weight:bold;</small>
}

es bräuchte nur die fettgedruckten.
Doch leider ändert sich die Hintergrundfarbe nur im Firefox 3

und Opera. Chrome und Firefox 4 ändern nur die restlichen
Einstellungen.
Erkennt ihr einen Fehler? Kann man die gewünschte
Kompatibilität irgendwie erzwingen? Mit Javascript?

nee, geht dann normalerweise genausowenig…
kannst du uns einen link zu deinem beispiel geben??
ich würds mal versuchen, alles unnötige rauszunehmen, dann nochmals vesuchen. wenn alle elemente der klasse „wolken“ anchor-tags sind, dann kannst du das a weglassen.
dann: die url des background-image müsste so viel ich weiss in anführungs und schlusszeichen stehen, also

_background-image:url('img/dunkel.png');_

oder

_background-image:url("img/dunkel.png");_

anstatt

_background-image:url(img/dunkel.png);_

lg niemand

Hallo duak007,

http://jigsaw.w3.org/css-validator/

der Validator hat keinen Fehler gemeldet. Vielleicht ist hier was dabei:

http://xhtmlforum.de/55629-css-background-image-im-f…
http://support.mozilla.com/de/questions/785207
(Vollen Pfad angeben?)

Grüße Roman

Hallo,
ich denke nicht, dass ich hier die Lösung finde. Schließlich funktioniert es ja im Opera fehlerfrei.

Gruß duak007

es bräuchte nur die fettgedruckten.

Das stimmt natürlich.

Kann man die gewünschte Kompatibilität irgendwie erzwingen? Mit Javascript?
nee, geht dann normalerweise genausowenig…

Schade. Ich hab gehofft, wenn man die Eigenschaft live direkt ändert, würde die CSS Standard Eigenschaft überschrieben werden?

kannst du uns einen link zu deinem beispiel geben??

Ein Beispiel ja, die Datei selber nicht.
www.duak007.de/Fehler/

ich würds mal versuchen, alles unnötige rauszunehmen, dann
nochmals vesuchen. wenn alle elemente der klasse „wolken“
anchor-tags sind, dann kannst du das a weglassen.

Die Beispieldatei ist online und so stark gekürzt, wie ich es für sinnvoll erachte :smile:

dann: die url des background-image müsste so viel ich weiss in
anführungs und schlusszeichen stehen, also

background-image:url(‚img/dunkel.png‘);

oder

background-image:url(„img/dunkel.png“);

anstatt

background-image:url(img/dunkel.png);

Gut, das ist dann „Detail“. Wenn es aber daran liegen würde, müsste es entweder vollständig oder gar nicht laufen. Eigentlich bin ich mir auch sicher, dass es kein Programmierfehler ist, denn Opera arbeitet ja vernünftig.

Gibt es alterantive praktikable Lösungen zum Formatieren der Links?

Danke schon mal,
duak007

Hallo,

it’s not a bug, it’s a feature:

Um zu verhindern, dass man serverseitig besuchte Links der Seitenbesucher protokollieren kann werden spezielle Hintergrundbilder für solche von Firefox (und evtl. auch anderen Browsern) ignoriert.

http://hacks.mozilla.org/2010/03/privacy-related-cha…

If you’re using background images to style links and indicate if they are visited, that will no longer work.

HTH
Heavy

Hi,
ja das erklärt es. Auch wenn ich den Sinn dieses Features nicht verstehe. Hätte man nicht auch einfach alle Bilder laden können - auch wenn sie nicht benötigt werden?

Aber wenigstens weiß ich jetzt, dass ich mich um eine andere Lösung kümmern muss.
Danke.

Der sin ist, das es unterbunden wird das eine webseite per javascript die history des browsers ausliest, da damit z.b. ein fingerprint ausgelesen werden kann um dich zu identifizieren .
Beispiel workaround by „no cookie“

Mag sein. Aber geht es darum, dass man nur die spezielle Information nicht weiter geben will und wegen lieber alle Daten herunter lädt oder dass man das Designen durch die komplette Sperre verhindern will?

die url des background-image müsste so viel ich weiss in
anführungs und schlusszeichen stehen, also

background-image:url(‚img/dunkel.png‘);

oder

background-image:url(„img/dunkel.png“);

anstatt

background-image:url(img/dunkel.png);

Gut, das ist dann „Detail“. Wenn es aber daran liegen würde,
müsste es entweder vollständig oder gar nicht laufen.
Eigentlich bin ich mir auch sicher, dass es kein
Programmierfehler ist, denn Opera arbeitet ja vernünftig.

NEIN: die meisten browser können auch mit nicht 100% korrektem
quellcode umgehen!!! nur: somit weiss man nie genau - wie
bei deinem fall - welcher browser was wie interpretiert. in
dem fall kann es eben dazu kommen, dass verschiedene browser
verschiedene fehler anders interpretieren. verlass dich nicht auf den opera, kein browser hat DIE variante, mit fehlern umzugehen. ansonsten könnte es auch an den einstellungen der browsers liegen, jeder user hat seine präferenzen…
lg niemand

Tach!

NEIN: die meisten browser können auch mit nicht 100% korrektem
quellcode umgehen!!! nur: somit weiss man nie genau - wie
bei deinem fall - welcher browser was wie interpretiert.

Das liegt wohl daran, dass für jede Computersprache (Programmiersprache wie auch Strukturbeschreibungssprache) nur Regeln (Syntax) festgelegt werden, wie sie *richtig* funktioniert. Es wäre unsinnig und unendlich aufwändig, festzulegen, wie eine Sprache funktionieren soll, wenn die Syntax nicht eingehalten wird.

Deswegen ist es nicht nur bei Programmiersprachen, die compiliert werden, immens wichtig, fehlerfrei zu arbeiten, sondern auch bei Strukturbeschreibungssprachen wie HTML oder CSS.

Liebe Grüße,
-Efchen

Mag sein. Aber geht es darum, dass man nur die spezielle
Information nicht weiter geben will und wegen lieber alle
Daten herunter lädt oder dass man das Designen durch die
komplette Sperre verhindern will?

Es soll das user tracking ohne cookie verhindert werden .
Und wenn ich später erst ein wert für ein visited img festlege kann ich das ja nicht vorher geladen haben ? oder ? soviel dazu alle bilder vorher zu laden etc.

Ich bin da geteilter Meinung , ich find die schnüffelei was ich wo besucht hab auch nicht gerechtfertigt.
Das Layout sollte aber nicht darauf basieren , das sich ein visited link im hintergrund bild ändert , das ist so eine visuelle logik, hat aber nix mit webseiten an sich zu tun .
Das Designer nutzen was da ist, is ja ok , aber sich nur darauf zu verlassen das der Browser die History nicht bei jeden neuen Seitenaufruf löscht , wäre nicht gut . Soll ja auch Browser geben die überhaupt kein cache für ihre visited links haben . Ob also visited oder nicht ist Sache des Browsers . Wer das nicht dem Browser überlassen will muss halt sein cookie bestücken , oder mit sessionid arbeiten oder oder oder.