Ho una pagina, che include diversi file SVG. Per sincronizzare lo stile di quei file SVG, volevo creare un singolo foglio di stile per contenere tutte le informazioni sullo stile.Collegamento a CSS in un SVG incorporato da un tag IMG
Tuttavia, quando si include SVG come sotto, il CSS non verrà applicato. Chiunque abbia una soluzione a questo o semplicemente non è possibile collegarsi ad altri file (CSS) in un SVG a cui fa riferimento <img src="..." />
?
Vedere il codice di esempio seguente. Quando si carica pic.svg
direttamente nel browser, tutti gli stili vengono applicati e si può vedere un rettangolo verde. Ma quando si apre page.htm
tutto quello che c'è da vedere è un rettangolo nero. Quindi ovviamente nessuno degli stili definiti è stato applicato.
page.htm
<!DOCTYPE html>
<html>
<body>
<img src="pic.svg" style="width: 100px; height: 100px;" />
</body>
</html>
pic.svg
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<?xml-stylesheet type="text/css" href="styles.css" ?>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 100 100"
>
<rect x="10" y="10" width="80" height="80" />
</svg>
styles.css
rect {
stroke: black;
fill: green;
}
EDIT
Da una risposta, che per un breve periodo è apparso qui, ho ottenuto this link to the spec e la seguente citazione. A mio avviso questo afferma che il codice sopra dovrebbe funzionare!
stand-alone di documenti SVG incorporato in un documento HTML o XML con il 'IMG', 'oggetto' (HTML) o 'immagine' (SVG) elementi
[...]
Citando dal tuo link "I fogli di stile definiti in qualsiasi punto all'interno del documento SVG riferimento (in elementi di stile o attributi di stile, o nei fogli di stile esterni collegati con il foglio di stile istruzione di elaborazione) applicare in tutta l'intero documento in formato SVG, ma non a sfoglia il documento di riferimento (forse HTML o XHTML). "
In tal caso, avrei nuovamente una definizione di stile per file SVG. E come si collega all'estratto di specifiche che ho postato? – Sirko
Se si desidera condividere le definizioni di stile non è possibile utilizzare i tag immagine. I problemi di sicurezza tendono a sovrascrivere i requisiti delle specifiche che generalmente non considerano tali cose. –
Apparentemente, questo significa anche che non è possibile fare riferimento a font esterni da file SVG caricati tramite un file HTML. –