Autor Zpráva
Little peg
Profil
Ahoj, chtěl bych se zeptat, jestli jde v html a css udělat, že po najetí kurzorem na nějaký odkaz se objevý obrázek třeba v levém horním rohu, ikdyž ten odkaz bude někde jinde? A jestli to jde, tak mi prosím poraďte jak.

Předem děkuji za odpověď. :)
habendorf
Profil
Ten obrázek musí být součástí toho linku. Na hover ho zobrazíš, polohu mu dáš pomocí abs. pozicování.
Little peg
Profil
a jak mám udělat, aby byl tou součástí, když obrázek a ten link leží úplně jende?
Little peg
Profil
habendorf:
a jak mám udělat, aby byl tou součástí, když obrázek a ten link leží úplně jende?
habendorf
Profil
No v html bude součástí linku a „polohu mu dáš pomocí abs. pozicování.
Bubák
Profil
habendorf:
Jak bys doporučit udělat zviditelnění obrázku při hoveru, vyzkoušel jsem tyhle možnosti:
měnit obrázku při hoveru pozici - obrázek mimo obrazovku / požadovaná pozice
měnit display - none / block
měnit visibility - visible / hidden
Přišlo mi, že první možnost má nejkratší zápis, ale měl jsem problém v IE7 (standard i qirk, IE6 nemám) a v IE8 ve quirku. Další dvě možnosti fungují v IE7 bez problémů. U prvé mpžnosti pomohl starý trik, jakákoliv deklarade hoveru odkazu:
a:hover {visibility: visible;}

Zatím bych nerad zveřejnil celý kód, ať si Little peg trápí mozkové závity a přijde aspoň s částečným řešením.
habendorf
Profil
Bubák:
První možnost je nejkratší na zápis, stačí měnit jednu souřadnici (třeba left). Ale je podle mě principiálně špatně, protože cíl je zobrazit/nezobrazit, nikoliv zobrazit/zobrazit někde v Tramtárii. A čert ví, jaká velkoplošná zařízení a s jakými rozlišeními se jednou budou používat, takže žádná hodnota nemusí být dostatečně veliká.

Osobně bych použil display.
Bubák
Profil
habendorf:
cíl je zobrazit/nezobrazit, nikoliv zobrazit/zobrazit někde v Tramtárii. A čert ví, jaká velkoplošná zařízení a s jakými rozlišeními se jednou budou používat
Proto jsem deklaroval left jako vysokou zápornou hodnotu. Ale je fakt že při tom musím aspoň podvědomě zohlednit velikost obrázku.

Osobně bych použil display.
Jako příznivce prohlížeče Opera nemám rád obrázky schované pomocí display, tento prohlížeč takto schované obrázky nenačítá do keše (to jsem si při psaní předešlého příspěvku neuvědomil), takže bych použil visibility.

Dodatek:
Obrázek by mohl být absolutně pozicovaný třebas k menu umístěnému vlevo, pak bych byl na širokém displeji s Tramtárií v háji.
Little peg
Profil
Hele moc díky!!! Nejvíc mi pomohlo to, že ten obrázek má bejt součást linku, já na to šel furt přez background v css...

A takle sem to teda vyřešil:

<style>
img {position: absolute; left: 100px; top: 100px}
a img {visibility: hidden}
a:hover img {visibility: visible}
</style>

<a href="někam">Odkaz<img src="img.png" /></a>
Bubák
Profil
Akorát že ten obrázek můžeš pozicovat a schovat v jedné deklaraci:
<style>
a img  {position: absolute;top: 100px; left: 100px; visibility: hidden;}
a:hover img  {visibility: visible;}
</style>

<a href="#">odkaz<img src="http://diskuse.jakpsatweb.cz/img/logo.png"></a>
habendorf
Profil
A ještě radši

a:hover, a:hover img  {visibility: visible;}
kvůli IE6.
Little peg
Profil
A děkuji i za doladění... :)
Little peg
Profil
Nebo se ještě zeptám, co se na tom IE6 nelíbí?
Bubák
Profil
IE6 a starší potřebuje jakoukoliv deklaraci hoveru odkazu, aby udělal hover na elementu (zde obrázku) vloženém do odkazu. Pokud ve stylech žádná taková deklarace nebyla, přidávala se neškodná (nerozhodila design a neohrozila funkci):
a:hover {visibility: visible;}

habendorf to šikovně spojil do jedné deklarace a proto funkčnost není závislá na tom, zda kdesi v hlubinách svého CSS deklaruješ hover odkazu.
Little peg
Profil
Jako obvykle to u IE nedává smysl :D
Tak už asi naposled děkuju za všechny odpovědi...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0