Portál AbcLinuxu, 9. listopadu 2025 09:15
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.