Portál AbcLinuxu, 8. května 2025 20:37
Zdravim,
potreboval bych vlozit do HTML stranky zmensene SVG, na ktere lze kliknout, podobne jako se udela <a href="..."><img width=".." src="..."/></a>
.
Protoze svg nelze vlozit pomoci img, zkusil jsem 3 postupy uvedene na SVG in HTML (object, embed, iframe), ale zadny z nich se nechova tak, jak potrebuju (iframe nezmensuje, na object a embed se neda kliknout).
Lze to nejak jednoduse udelat? (Pokud mozno s minimem javascriptu, potrebuju jen z modelovaciho programu vygenerovat jednoduchou stranku s ukazkou grafu, na ktere se da kliknout.)
Omlouvam se za chybejici diakritiku.
Diky, Vasek
Řešení dotazu:
<img>
? U těch object a embed byste asi musel udělat ten odkaz přímo v SVG.
img
a object
jsou rovnocenné elementy, oba mohou být uvnitř odkazu a oba mohou obsahovat to samé (i SVG). V XHTML 1.1 se IMHO dokonce doporučuje používat object
i pro obrázky (bohužel IE do verze 6 si s tím neporadí). embed
je nestandardní rozšíření, doporučuji jej nepoužívat
Firefox 3.6.8, <img> ten obrazek proste neukaze. V epiphany (webkit) to dela totez, tak jsem predpokladal, ze z nejakeho duvodu img se svg nefunguje. Mimetype toho souboru je image/xml+svg.
image/svg+xml
. Posíláte ten MIME typ i v HTTP hlavičkách (ty jsou rozhodující pro tag img
) nebo je vyplněn pouze v atributu type
tagu object
?
SVG můžete vložit přes img. Specifikaci to nevadí. Jen ne všechny prohlížeče to umí. Například do Gecka byla tato schopnost přidána před pár dny. Ale mám dojem, že třeba Opera i Webkit to umí.
iframe není to pravé, embed je zastaralé rozšíření Exploreru. Použijte object a parametry width a height. Strčit jej do odkazu lze také. Ale opět ne všechny prohlížeče to pochopí. Gecko z toho sice odkaz udělá, ale kliknout se na to nedá (třebaže ve stavovém řádku se odkaz ukáže). Člověk musí kliknout na rámec odkazu (výchozí barva v Gecku je modrá/fialová). Opera to myslím umi.
Prozatím asi nejspolehlivější je vložit odkaz do SVG přes XLink. Ale je takové ošklivé.
Navíc si uvědomte, že „náhled“ zmenšeným SVG v podstatě znamená, že klient si stejně stáhne celý obrázek a teprve u sebe ho zmenší. Možná by bylo lepší se na to vybodnout a dát obrázek v původní velikosti nebo jen odkaz na něj.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.