Tímto honosným názvem nadepisuji neusporádanou drobnou snusku malých tricku ci tipku, které jsem pouzil tu ci onde pri tvorbe svých www stránek.
Uvádím predevsím ty veci, které (ci jejich resení) napadly mne samotného, i kdyz samozrejme netvrdím, ze prvního na svete.
Neco z toho jsou takové banality, ze se pozastavíte nad tím, ze mi stojí zato, vubec se s tím sem psát.
| tip/trik | poznámka | |||
| nadpisy z více elementu v jednom rádku | to není dobrý nápad | |||
| svislá cára | docela pekné | |||
| ruzné chování v ruzných prohlízecích | to dá rozum | |||
| dynamické popisky v Netscape Navigátoru / M$ Internet Exploreru | hm | |||
| vlození stylu ruzného pro Netscape Navigátor a M$ Internet Explorer | aha | |||
| takováhle pekná tabulka | jééé | |||
| aktivní odkazy (á la a:hover) v Netscape Navigátoru | bomba, ale pekná fuska | polopruhledné pozadí textu/obrázku v Netscape Navigátoru (i v IE) | vida, dobrý nápad | |
(zpet na hlavní stránku)
<head>
<script language="JavaScript">
function NadpisZapisuDenicku(jmeno, datum) {
document.writeln("<table border=0 width=100%><tr><td align=\"left\">");
document.writeln(jmeno);
document.writeln("</td><td align=\"right\">");
document.writeln(datum);
document.writeln("</td></tr></table>");
}
</script>
</head>
<body>
<script>NadpisZapisuDenicku("nejaké jméno","nejaké datum");</script>
</body>
Proc to není prílis dobrý nápad:
|
|
Vlozí se tabulka. Dve moznosti: 1) tabulka s nulovou sírkou, patricnou výskou a okrajem 2) tabulka s malou sírkou, patricnou výskou, bez okraje a s barevným pozadím |
|
Kód ad 1 napr.:
<table border=1 width=0 cellpadding=0 cellspacing=0 height=100pt><tr><td></td></tr></table>
Kód ad 2 napr.:
<table border=0 width=0 cellpadding=0 cellspacing=0 height=100pt bgcolor="lightgreen"><tr><td> </td></tr></table>
Potom je samozrejme potreba pouzít JavaScript, v nem otestovat typ prohlízece a podle toho se zachovat (zavolat tu kterou funkci, vlozit ten který text do stránky apod.).
Abych netestoval totéz na ruzných místech kódu nekolikrát, jednak si udelám funkci na testování a jednak si výsledek testu schovám do promenné.
Takze príklad rozlisení M$ IE verze >=3.0, NN verze >=4.0 a ostatních prohlízecu:
Výsledek testu si ulozím do promenné:
function TypProhlizece() {
var typ='unknown';
if ((navigator.appName=="Netscape") && (navigator.appVersion>="4.0")) typ='NN4';
else if ((navigator.appName=="Microsoft Internet Explorer")
&& (navigator.appVersion>="3.0")) typ='IE3';
return typ;
}
A pak vesele testuji, kdykoliv to potrebuji, napr.:
var nav=TypProhlizece();
if (nav=='NN4') alert("Pouzíváte Netscape Navigátor verze >= 4.0 - výborne");
Princip je tento: pomocí stylu napíseme popisky na urcené místo pres sebe, ale neviditelne (vlastnosti visibility, resp. display). Pri prejezdu mysí pres odkaz javascriptem odchytíme událost a zviditelníme príslusnou vrstvu.
Je to pomerne pracné, ale výsledek stojí zato.
Casem tu mozná prehledne popísu, jak se to presne delá. Zatím vás odkazuji na prostudování zdrojového kódu mé úvodní stránky (ale varuji vás - dost neprehledné - radeji si to vymyslete sami).
Clovek by chtel, jako v podobných prípadech, vlozit styl skriptem, který by nejprve otestoval typ prohlízece a podle toho vlozil ten ci onen styl.
Chyba! NN styl vlozený skriptem vesele ignoruje (prinejmensím tehdy, pokud je vkládaný funkcí).
Resení: Pro NN styl vlozit natvrdo (do html kódu) a vzápetí pouzít skript, který prípadne pro IE prestyluje.
Napr. takto (nastavení promenné nav viz výse):
Pak v nejakém míste stránky:
function VlozStylIE()
if (nav=='IE4') document.write('</span><span class="stylIE">');
<span class="stylNN"><script>VlozStylIE()</script>
...stylovaný text...
</span>
Jako tento odstavec.
Klícem je transparentní gif.
Celý dokument má nejaké svoje pozadí. Jako pozadí odstavce (ci bunky tabulky a i jiných elementu) se pouzije obrázek, který vypadá jako sachovnice, kde místo bílých polícek je zvolená barva, místo cerných transparentní pozadí. Co polícko, to jeden pixel. Skrz "cerná" polícka pak prosvítá, co je za nimi, ale díky velké hustote pixlu není videt, jakou fintou je to udeláno, a vypadá to jako barevný filtr.
<body background="obrazek.jpg">
...
<p style="background-image: url('filtr_zluty.gif')">
Text ci obrázek
</p>
...
</body>
S tímto pozadím to není moc dobre videt. Podívejte se na lepsí príklad.
A dulezitá poznámka: ctvereckovaný transparentní gif se (narozdíl ode mne) nebojte udelat dost velký, treba 100 x 50 pixlu, jinak se na pomalejsích pocítacích bude vykreslovat prílis dlouho.