Forum: PC-Programmierung CSS: URL von Links drucken, aber nicht bei Bildern


von Steve van de Grens (roehrmond)


Lesenswert?

Wenn man meine Homepage ausdruckt, sollen die URLs von den meisten Links 
sichtbar sein. Etwa so:

> Siehe detaillierte Anleitung (http://irgendwo.de/anleitungen/12345.html)

Dazu verwende ich diesen Style:
1
@media only print {
2
    a:link:after, a:visited:after {
3
       content:" (" attr(href) ") ";
4
       font-weight:bold;
5
    }
6
}

Jetzt habe ich aber auch eine Menge eingebettete Bilder, die man durch 
Anklicken vergrößern kann, bei denen die URL auf dem Papiert nutzlos 
wäre:
1
<a href ="platine.jpg"><img src="platine.jpg" style="width:10em"></a>

Wie kann ich dafür sorgen, dass die URL bei solchen Bildern nicht 
ausgedruckt wird?

Zur Zeit habe ich allen betroffenen Bildern einen eigenen Style 
"noPrintLinks" zugewiesen, aber lieber wäre mir eine zentral 
automatische Lösung die ohne extra Code in sämtlichen HTML Dateien 
auskommt.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Mir fällte gerade eine Alternative ein:

Wenn ich alle Bilder per CSS anklickbar machen könnte, ohne <a 
href>...</a> herum bauen zu müssen, wäre die Aufgabe auch elegant 
erfüllt.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Ich habe eine Lösung gefunden, klappt aber leider nicht im Firefox.
1
@media only print {
2
3
    a:after, a:after {
4
        content:" (" attr(href) ") ";
5
    }
6
7
    a:has(> img):after {
8
        content:"";
9
    }
10
}

: Bearbeitet durch User
Beitrag #7565748 wurde vom Autor gelöscht.
von Steve van de Grens (roehrmond)


Lesenswert?

Die Zeile mit "a:after, a:after" habe ich falsch editiert. Das gehört 
natürlich nicht doppelt gemoppelt.

von Ralf D. (doeblitz)


Lesenswert?

Steve van de Grens schrieb:
> Ich habe eine Lösung gefunden, klappt aber leider nicht im Firefox.
>
>
1
> @media only print {
2
> 
3
>     a:after, a:after {
4
>         content:" (" attr(href) ") ";
5
>     }
6
> 
7
>     a:has(> img):after {
8
>         content:"";
9
>     }
10
> }
11
>

Ich würde mal die Spezifizität erhöhen.
Ein "!important" ginge theoretisch zwar auch - aber ich hasse es zur 
Atombombe zu greifen. ;-)
1
@media only print {
2
3
    a:link:after, a:visited:after {
4
        content:" (" attr(href) ") ";
5
    }
6
7
    a:link:has(> img):after, a:visited:has(> img):after {
8
        content:"";
9
    }
10
}

von Steve van de Grens (roehrmond)


Lesenswert?

Die Kombo "a:link:after, a:visited:after" hatte ich vorher, macht aber 
in diesem Fall keinen Unterschied zu einfach "a:after". Das deckt 
offenbar beide Fälle ab.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Ich habe gelesen, dass Firefox Version 121 den "has()" Selektor 
unterstützt. Wenn das wirklich stimmt, dann kann es ja so bleiben:
1
@media only print {
2
    a:after {
3
        content:" (" attr(href) ") ";
4
    }
5
6
    a:has(> img):after {
7
        content:"";
8
    }
9
}

Mal sehen, wann diese Version bei Debian (stable) kommt.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.