Kein Border, wenn Link über Bild

Hi

Ich habe ein Problem:
Meine CSS Formatierung formatiert alle links so:

a {border-bottom:1px dotted farbe;background:inherit;}
a:hover {background:farbe;}

Sieht ja bei Text ganz nett aus, aber wenn ich ein Bild verlinke, dann sieht das komisch aus.
Kann ich also eine Ausnahme festlegen?
irgendwie so in der art „a img {}“

Ich dachte mir schon, dass das nicht möglich sein wird, also habe ich die klasse imglink angelegt, die soll auf alle Bilder kommen, die einen Link darstellen.

Klasse:

.imglink {border:0px;}
.imglink:hover {background:inherit;}

So:

[html][/html]

Das funktioniert aber irgendwie nicht, keine Ahnung warum…

Mit komisch meinst Du bestimmt den blauen Rahmen um das Bild. Is ganz einfach:

HTML:
<a><img src="deinbild.jpg" [B]border="0"[/B]/></a>

CSS:
A IMG{border:none;}

Nein, das meine ich nicht, wenn du meinen Beitrag gelesen hättest würdest du das auch wissen.

Probier mal das:

.imglink a {border:0px;}
.imglink a:hover {background:inherit;}

ganz banal, aber vielleicht hast du ein Problem mit
Vererbungen so das der Wert für das
Image nicht richtig gezogen wird?
einfach mal:
[html]

.imglink a {border:0px!important;} .imglink a:hover img {background:inherit!important;}
[/html]versuchen

Das mit !important hat geholfen, kannte ich garnicht. Da muss ich wohl einmal recherchieren…

Ich hab Deinen Beitrag richtig gelesen, nur leider war Deine Fehlerbeschreibung auf sieht komisch aus reduziert.

Und was bitte ist an der Lösung von prostel anders als an der meinen, abgesehen von diesem vollkommen überflüssigen

;ugl
Das könnt ihr euch sparen und die Klasse genauso gut im selbst vergeben.

Und mit Eurem !important werdet Ihr nicht allzu weit kommen, sollte es sich tatsächlich um einen Vererbungsfehler handeln, denn diese Kaskadierungsregel wird vom IE nur allzu gern überlesen.

Ja könnte man, ich habe es auch nur reingepackt da ich es immer
übersichtlicher finde. Also völlig egal :wink:

Und mit Eurem !important werdet Ihr nicht allzu weit kommen, sollte es sich tatsächlich um einen Vererbungsfehler handeln, denn diese Kaskadierungsregel wird vom IE nur allzu gern überlesen.

Kurz und knapp: falsch
Der IE interpretiert !Important genauso wie jeder andere Browser auch,
wenn man es richtig einsetzt. Die meisten verwenden ein important
auch gerne mal in der selben Klasse , was an sich schwachsinn ist, und
genau da macht der IE Ärger. Verwendet man !important aber für attribute
in verschiedenen klassen, funktioniert es wunderbar wie überall.

generell gilt aber, erstmal code aufräumen und alles kontrollieren. man
kann meist auf important verzichten wenn der rest code sauber ist.

In welcher selben Klasse? Hä…

Folgender Hack funktioniert wunderbar

DIV.top { eigenschaft:wert !important; eigenschaft:wert; /* nur für den IE */ } Weil? kurz und knapp: der IE das !important nicht beachtet.

EDIT:

ich habe es auch nur reingepackt da ich es immer
übersichtlicher finde

Was wird denn daran übersichtlicher, wenn du ein Tag unnötigerweise in ein weiteres Tag packst und diesem dann die Klasse gibst welche eigentlich dem anderen gehört?!

Ja, er beachtet es nicht weil du das important in der selben klasse hast.
normalerweise trennt man solche dinge und genau dann zieht der IE
das important, wie ich oben auch schon sagte

Und genau aus diesem Grund funktioniert !important im IE als Hack, was gleichbedeutend ist mit falsch interpretiert.

Naja sagen wir so, important lässt sich als hack verwenden, ist in
seinen Grundzügen aber keiner. So war er bei Einführung auch nicht
vorgesehen da er funktioniert, wenn man ihn richtig verwendet und zwar
wenn man Daten kapselt anstatt alles in eine Klasse zu klatschen :slight_smile: