Moin.
Es geht hier allgemein um das Styling von Hyperlinks in SVG, speziell um
Pseudo-styles.
Ich habe mehrere Links in SVG Dateien mittels externer Stylesheet-Datei
gestalten können. Ein Pseudo-Style :hover funktioniert aber nur
„meistens”.
Hier eine Beispieldatei, in der die oberen grünen Zeilen bereits mit
Hyperlinks ausgestattet sind, aber den Hover-Style *nicht* zeigen, wenn
die Grafik im Browser angeschaut wird (<object/>) :
https://www.uplawski.eu/div/svg/page1.svg
und die eingeschlossene CSS Datei:
https://www.uplawski.eu/div/svg/svg.css
In diesem Beispiel habe ich zusätzlich einen der Links mit einer Klasse
ausgestattet und diese im SVG Kopf definiert. Das funktioniert.
Das gesamte style tag:
------
<style type="text/css">
@import url('svg.css');
a.normal g {fill:#800000;opacity:1;}
</style>
------
Hier eine Datei, in der die Hyperlinks *und* der Hover-style
funktionieren:
https://www.uplawski.eu/div/svg/page2.svg
Im Unterschied zur ersten Datei habe ich hier die CSS-Datei mit
<xhtml:link/> definiert:
---------
<xhtml:link rel="stylesheet" href="svg.css" />
---------
Das habe ich auch in der anderen Datei so begonnen, funktioniert aber
auch nicht!
Der durchsichtige rechteckige Hintergrund sorgt im gelinkten
Objekt dafür, dass der Mausklick vereinfacht wird, ist aber meines
Erachtens für das Phenomen der fehlenden Hover-Styles nicht
verantwortlich. Wegen handschriftlichem Text, werden Pfade (<path/>)
verlinkt, was den code kompliziert macht; das macht aber ebenfalls
keinen Unterschied, wenn Inkscape zum Zeichnen verwendet wird.
Normalerweise bearbeite ich auch den SVG Code direkt in Inkscape; der
XML-Editor ist brauchbar, allerdings wohl für kleinere Zeichnungen
gedacht.
Meiner Meinung nach, gibt es einen Fehler in dieser Datei page1.svg. Der
XML-Code validiert aber. Es muss also ein SVG-spezifisches Problem
vorliegen.
Kennt sich jemand aus? Ich habe das Web schon ausgekratzt und hätte auch
sonst auch die funktionierenden Links kaum hinbekommen...
Ist kompliziert, glaube ich.
Schönes Wochenende
Michael
--
Le progrès, ce n'est pas l'acquisition de biens. C'est l'élévation de
l'individu, son émancipation, sa compréhension du monde. Et pour ça il
faut du temps pour lire, s'instruire, se consacrer aux autres.
(Christiane Taubira)