ich hoffe, mir kann hier einer weiterhelfen. Ich arbeite in einem fertigen Projekt, dass in einer mit CSS definierten Infobox vor jeden Link einen kleinen Pfeil setzt mit folgendem CSS:
Generell möchte ich den Code auch so weiterbehalten. Heißt: Ich werde den oben genannten Code nicht abändern können. Das Problem ist jetzt nur, wenn ich ein Bild in die Box setze und dies verlinke, erscheint davor auch immer der kleine grüne Pfeil. Das ist absolut suboptimal und will ich auch nicht, da es mir z. B. bei zusammengesetzten Bildern alles zerschießt.
Hat jemand eine Idee, wie ich den Code für Bilder aufheben kann? Ich habe schon versucht, eine separate div Formatierung zu erstellen (quasi eine Kopie des oberen ohne das Bild und mit anderem div Namen und ein div mit dem neuem Elementnamen vor das Bild zu stellen. Hat allerdings nicht funktioniert.
Ich habe auch eine neue a.ohnepfeil Klasse erstellt und dem Link dann zugewiesen.
[CODE]
a.ohnepfeil:link{
background:none;
}
a.ohnepfeil:active{
background:none;
}
a.ohnepfeil:visited{
background:none;
}
a.ohnepfeil:hover{
background:none;
}[/CODE]
Funktioniert auch nicht. Der Pfeil ist immer noch da. Hilfe?
Das funktioniert auch nicht. Hatte ich als erstes probiert, aber da das Bild oben im div nur mit background eingebunden ist, bin ich auf das umgeschwungen um es quasi aufzuheben.
An sowas hatte ich schon gedacht. Deshalb habe ich wie oben geschrieben zuerst auch einen identischen DIV benutzt und nur den Namen umgeändert. Dann sollte ja eigentlich das letzte immer benutzt werden. Das ging aber nicht, weshalb ich den unteren Code auch ausprobiert habe.
Schon klar, a:link etc sind auch genauer definiert als a.no_arrow…
Einfach ein background: transparent !important.
Ist zwar nicht schön, aber ich habe jetzt keine Lust genauer darauf einzugehen.
Nein, vergiss das gleich wieder! Jeder der css schreibt benutzt das aus Bequemlichkeit ab und an. Aber jeder regt sich auch regelmäßig über andere auf, wenn er deren css mit anderem css manipulieren muss und „!important“ drinsteht. Es macht langfristig meist mehr Mühe als es kurzfristig Zeit spart.
Der richtige Weg ein css zu überschreiben ist, einen selector anzuwenden der genauer definiert ist, als der andere. In deinem Fall also zum Beilspiel:
Super, das hilft jetzt ohne !important! Jetzt sehe ich auch, welchen Denkfehler ich am Anfang gemacht habe - ich hätte dem a tag einen neuen Namen geben sollen, nicht dem div!
Interessanterweise würde auch diese Variante funktionieren:
.no_arrow.no_arrow.no_arrow.no_arrow {
...
}
Das nur so am Rande, ist auch keinesfalls eine Variante, die man regelmäßig einsetzen sollte… (aber immernoch ein klein wenig besser als !important)