Bild über Download-Link
Michael
- css
Hallo,
ich möchte über einem Download-Link ein Bild anzeigen lassen per CSS. Wenn ich also z.B. einen Link definiere und ihm eine Klasse (class="...") zuweise, soll über dem Link-Text z.B. ein ZIP-Logo erscheinen.
Bisher habe ich nur die CSS-Variante a:before gefunden, welche dann beliebigen Inhalt (auch Bilder) vor dem Link ausgibt. Und mit der relativen Positierung von background-image hat es auch nicht funktioniert.
Weiß jemand Rat?
Hi Michael!
Wenn ich also z.B. einen Link definiere und ihm eine Klasse (class="...") zuweise, soll über dem Link-Text z.B. ein ZIP-Logo erscheinen.
D.h. der Text soll verschwinden und nur das Bild zu sehen sein?
Und mit der relativen Positierung von background-image hat es auch nicht funktioniert.
Genau diesen Weg hätte ich gewählt! Was meinst du mit "hat nicht funktioniert"?
Könntest du etwas genauer erläutern [1], was du möchtest und was du bereits versucht hast?
[1] Stichpunkte reichen aber auch. (-;
MfG H☼psel
Hallo,
mit "über dem Text" meine ich die Position des Bildes in der x-y-Richtung (nicht in z-Richtung), d.h. der Text soll noch zu lesen sein und darüber soll ein Bild zu sehen sein. Es geht sich darum, z.B. Links zu einem PDF-Dokument mit einem zusätzlichen Bild zu kennzeichnen:
[BILD]
Datei.pdf
Bisher versucht habe ich folgendes:
Die letzten beiden erbrachten allerdings nicht das gewünschte Ergebnis.
Hallo,
habe die "Lösung" durch try-and-error gefunden. Das Ergebnis kann unter folgender URL angesehen werden: http://www.project-3002.net/test/index.html
Eigentlich nicht kompliziert, ich war nur beim ersten Versuch beim Ansatz schon auf dem falschen Weg :-)
Hallo
habe die "Lösung" durch try-and-error gefunden. Das Ergebnis kann unter folgender URL angesehen werden: http://www.project-3002.net/test/index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test</title>
<link rel="stylesheet" href="template.css" type="text/css" />
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
Fällt dir irgendwas an dem Ausschnitt deines Quelltextes auf?
Tschö, Auge
Hallo
ich möchte über einem Download-Link ein Bild anzeigen lassen per CSS. Wenn ich also z.B. einen Link definiere und ihm eine Klasse (class="...") zuweise, soll über dem Link-Text z.B. ein ZIP-Logo erscheinen.
Und wie soll man dann den Linktext lesen können?
Bisher habe ich nur die CSS-Variante a:before gefunden, welche dann beliebigen Inhalt (auch Bilder) vor dem Link ausgibt.
Das wäre auch mein Lösungsansatz, den allerdings der meist verwandte Browser kalt lässt.
Und mit der relativen Positierung von background-image hat es auch nicht funktioniert.
Naja, ein mit background-image
eingebundenes Bild bleibt halt ein _background_ image. Es ist also immer der Hintergrund des Elements, dem es zugewiesen wurde. Du kannst es nur nach den für background(-image)
geltenden Regeln positionieren.
Weiß jemand Rat?
Weise das Bild dem Link zu
<a href="foo"><img src="bar" alt="Download (oder was auch immer)"></a>
Es wäre auch möglich, das Bild per CSS über den Text zu legen. Das geht aber nur, wenn man den Link mit position
versieht, ihn damit zum Blockelement macht. Das würde z.B. in einer Liste von Downloads funktionieren, aber nicht innerhalb des Textflusses in einem Absatz.
Mal sehen, ob ich es noch zusammenbekomme:
<a href="foo" class="downloads">Download (oder was auch immer)<span></span></a>
a.downloads {
position:relative; /* der Link wird aus dem normalen Dokumentfluss genommen */
/* Weise ich dem Link keine explizite Position zu, wird er um 0 Pixel zu seiner normalen Position, also garnicht verschoben */
/* Maße willkürlich gewählt, diese werden durch die Maße des Bildes bestimmt */
width:100px;
height:20px;
}
a.downloads span {
position:absolute; /* Das span wird innerhalb des Links fest positioniert */
z-index:1; /* Es wird in den Vordergrund gebracht */
/* ab damit in die obere linke Ecke */
top:0;
left:0;
/* span nimmt den ganzen verfügbaren Platz ein */
width:100%;
height:100%;
margin:0;
padding:0;
/* Die Angaben zum Hintergrundbild */
background-image:...;
}
Das Bild wird bei all denen (den meisten) angezeigt, die die Anzeige von Bildern aktiviert haben. Alle anderen sehen den Text.
Das ganze hat jedoch einen Nachteil. Falls jemand die Schriftgröße in seinem Browser so sehr erhöht hat, dass schlussendlich der Text des Links unter dem Bild hervorlugt, sieht es unegal aus. Dies könnte man verhindern, in dem man für a.downloads
zusätzlich overflow:hidden;
notiert. Lässt jemand jedoch keine Bildanzeige zu, hat eine hohe Schriftgröße eingestellt _und_ die CSS-Anweisung overflow:hidden;
incl. der Größenagaben des Links werden interpretiert, kann er/sie nicht einmal den Linktext lesen da dieser (höchstwahrscheinlich) nicht in die vorgegebene Größe hineinpasst.
Dies nur zur Beachtung.
Tschö, Auge