<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html PUBLIC '-//W3C/DTD XHTML+Voice 1.2 /EN' 'http://www.voicexml.org/specs/multimodal/x+v/12/dtd/xhtml+voice12.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:ev='http://www.w3.org/2001/xml-events'>
<head>
<link rel='canonical' href='http://pabi3.com/blog/css-tooltips-ziadny-javascript-ani-dhtml/' />
<link rel='stylesheet' href='http://pabi3.com/modules/items/voice.css' type='text/css' media='all' />
<form xmlns='http://www.w3.org/2001/vxml' id='title'>
<block>
The article CSS Tooltips, ziadny javascript ani DHTML is written by PaBi3
</block>
</form>
<form xmlns='http://www.w3.org/2001/vxml' id='body'>
<block>

Javascript je znamy tym, ze zabera zbytocne vela miesta, pokial chcete vytvorit nejaky "pekny efekt". Tooltipy medzi tie efekty patria. Pre dosiahnutie tooltipu v javascripte staci zapisat miliony riadkov kodu, avsak existuje tu aj CSS, tak preco by sme sa museli takto trapit.
</block>
</form>
<form xmlns='http://www.w3.org/2001/vxml' id='full'>
<block>

Takze ako zacneme? Najprv si vytvorime nasledovny XHTML kod.


&lt;span class='tooltip'&gt;
&lt;img src='info.gif' alt='Lorem ipsum' /&gt;
&lt;div&gt;
&lt;strong&gt;Lorem ipsum dolor&lt;/strong&gt;
&lt;p&gt;
Lorem ipsum dolor sit amet consectetuer tincidunt sollicitudin eleifend eu est. Netus Praesent quis lacus urna Nullam hac arcu urna pulvinar augue.
&lt;/p&gt;
&lt;/div&gt;
&lt;/span&gt;


V prvom rade si treba premysliet ako to bude fungovat. To som uz urobil za vas, takze vysvetlenie: Po prejdeni mysi nad &lt;span&gt; by sa mi mal zobrazit tooltip. Dosiahnem to umiestnenim &lt;div&gt; a &lt;img&gt; do &lt;span&gt;. To druhe umiestnenie &lt;img&gt; moze byt kludne aj text alebo odkaz. Nemoze byt vsak prazdne, pretoze by som v podstate nemohol prejst mysou nad &lt;div&gt;. Kym sa nedostanem mysou nad &lt;span&gt;, tak bude &lt;div&gt; ukryty. Naopak, ked sa nan dostanem, tak musim ten &lt;div&gt; ihned zobrazit. Toto vsetko dosiahnem za pomoci pozicovania relative a absolute. Nasledovny CSS kod je upraveny specialne aj pre vlajkovu lod Microsoftu - Microsoft Internet Expolrer. Tato uprava bola vykonana za pomoci hover.htc.


span.tooltip { behavior:url('hover.htc'); cursor:help; position:relative; margin:0 4px 0 4px; }
span.tooltip div { behavior:url('hover.htc'); text-align:justify; visibility:hidden; min-width:250px; _width:250px; font-weight:normal; padding:15px; border:1px solid #cccccc; -moz-border-radius:12px; background:#ffffcc; position:absolute; top:1.35em; left:1.6em; }
span.tooltip strong { display:block; margin:5px 0 0 0; }
span.tooltip strong:first-child { margin:0; }
span.tooltip:hover div, span.tooltip.hover div { visibility:visible; z-index:10; }
span.tooltip div:hover, span.tooltip div.hover { visibility:hidden; }


Pokial chcete vypustit podporu pre MSIE, musite odstranit z CSS kodu vsetky selektory, ktore maju vlastnost behavior a _width a vymazat aj selektory umiestnene za ciarkou. Dopredu upozornim, ze tooltip vyzera najlepsie vo Firefoxe, pretoze ten podporuje najlepsiu vec v celom CSS -moz-border-radius.



Hlavne vyhody:

ziadny obtazujuco dlhy javascript (pokial neuvazujeme o hover.htc)
pouzitie XHTML kodu v tooltipe
rychlost, jednoduchost




Hlavne nedostatky&amp;chyby:

chybne vykreslovanie v Opere
odkazy v MSIE prekryvaju tooltip




Mozno pridete na to ako vyriesit nevyhody a pridat vyhody. Kompletny priklad si mozete prezriet tu. Pokial by ste mali zaujem vyriesit chybu vo vykreslovani v Opere, pouzite definiciu float v selektore span.tooltip (mozno vo vasom pripade bude potreba vytvorit aj novy element s vlastnostou clear). Nie je to najlepsie riesenie ale bude to fungovat spravne.



CSS Tooltips som testoval v prehliadacoch:

Opera 9.00
Opera 9.02
Mozilla Firefox Beta 2.0b2
Microsoft Internet Explorer 6

</block>
</form>
<base href='http://pabi3.com/' />
<title>CSS Tooltips, žiadny javascript ani DHTML</title>
</head>
<body ev:event='load' ev:handler='#title'>
<a href='http://pabi3.com/blog/css-tooltips-ziadny-javascript-ani-dhtml/' title='Návrat'>Návrat</a>
<h1 style='padding:0.5em;'>CSS Tooltips, žiadny javascript ani DHTML</h1>
<ul>
<li ev:event='click' ev:handler='#body'>Speak introduction</li>
<li ev:event='click' ev:handler='#full'>Speak full</li>
</ul>
</body>
</html>

