Ha valamit nagyon szeretnénk kiemelni, akkor két lehetőségünk is van: megnövelhetjük (vagy csökkenthetjük) a betűk nagyságát, illetve átszínezhetjük őket. A kulcsszó a font.
Átméretezés:
<font size=+3>Ez nagy.</font><font size=-3>Ez kicsi.</font>
Színezés:
<font color=#FF0000>Ez piros.</font>
Ha sok adatot akarunk táblázatokban közölni, akkor azt régebben előre tördelt szövegként vágtuk be, most viszont van saját, igaz kicsit bonyolult megadási módja:
A táblázat a <table> jellel kezdődik és a </table> zárja. Ezen belül a sorokat a <tr>, az oszlopokat a <td> határolja el egymástól. (Ha a táblázat oszlopneveit ki akarjuk emelni, akkor <td> helyett <th> jelet használunk.) A táblázat szélességét a width= módosítóval megváltoztathatjuk, border= megadásával keretszélességet definiálunk, a táblázat celláin belül pedig az align= segítségével jobbra right, balra left, középre middle, föl top és le bottom igazíthatjuk az adatot. Lássuk a helyi focieredményeket!
<table border=2> <tr><th>Hazai csapat <th>Vendégcsapat <th>Eredmény <tr><td>Baltásasszonyfa FC<td>Redvestáka TC <td align=middle>2 : 1 <tr><td>Rongyosi Falábúak <td>Szentkanalasi SC<td align=middle>0 : 0 <tr><td>Macskási Vasasok <td>Akasztódombi SE <td align=middle>1 : 3 </table>
Nem erre találták ki, de két (vagy több) hasábos kiírást is táblázattal oldunk meg. A szöveget <table> és <td> jelekkel vezetjük be, majd a hasáb végén újabb <td> jelet szúrunk be, végül </table> jellel zárjuk. Az align= legyen top.
Kép mellé ugyanígy írhatunk, csak akkor az egyik "cellában" a kép van, a másikban a szöveg.
A böngésző ablakát több részre oszthatjuk frame, azaz keret definiálásával. Ekkor tulajdonképpen több különböző HTML lapunk szorong egy osztott ablakban. A megosztáshoz egy vezetőlapot kell készítenünk, amin a felosztás szerepel, valamint itt helyezhetünk el üzenetet azok számára, akik nem rendelkeznek kereteket kezelő böngészővel. Egy példa:
<head> <title>Jakab ablakai</title> </head> <frameset rows="*,120"> <frame name=fent src=alap.html> <frame name=lent src=menu.html> </frameset> <noframe> <body> Te sajnos nem látsz be az ablakaimon. Keress egy nagyobb verziójú "létrát"! </body> </noframe>
Azt, hogy egy kattintás után melyik ablakban jelenjen meg az új lap, a target= határozza meg. Ide kell beírni az ablak nevét, amit a name= után írtunk.
<a target=alap href="elso.html">
Egy HTML lapot nem csak passzívan megtekinteni lehet, hanem megfelelő kiegészítésekkel szabályos kérdőívet, szavazólapot, vendégkönyvet, stb. kaphatunk, amelybe aztán be is írhatunk. Egy ilyen lap nyomógombokat, adatbeviteli mezőket, menüket tartalmazhat. A bevitt adatokat azonban a HTML keretei közt nem lehet feldolgozni, ahhoz kiegészítőprogram szükséges: vagy egy szerver oldali program, vagy egy Java alkalmazás. Ez pedig már egy másik kurzus anyaga.
Bár a scriptek sem tartoznak szorosan véve a HTML-hez, egy rövid és igen gyakran használt példa erejéig mégis kitérek rá. Számlálót ugyanis nagyon sokan szeretnének a lapjukra tenni.
Mi is egy script? Röviden és DOS akcentussal ;-) -- a script a UNIX ".bat"-ja. Csakhogy sokkal többet tud. Gyakorlatilag programnak minősül. Lapunkról ilyen kis (vagy akár nagy) programok indítására van lehetőség!
A világ nem egyszerű, a scriptek meghívására is kétféle megoldást dolgoztak ki: egy elsőt és egy jót. ;-)
Az első ilyen megoldás a
azaz a Common Gate Interface. Ez egy "patkolás", amely beül a buta CERN httpd server és a külvilág közé, hogy a scriptre vonatkozó és a server által nem ismert utasításokat feldolgozza. Ez néhány kellemetlen jelenséggel jár. Az egyik, hogy a meghívott scriptek nem paraméterezhetők. A másik, hogy a scripteknek külön cgi-bin könyvtárban kell gyülekezniük. A scripteket el kell látni "fejlécinformációval" is.
Mindezek ellenére a CGI nagy karriert futott be, így a fejlettebb serverekbe eleve beépítettek egy ehhez hasonló, de kellemesebb lehetőséget, ez a
azaz Server Side Include. Itt már a script hívása egyszerűbb és kényelmesebb, s együtt maradhat az őt hívó oldallal. Ez azért jó, mert pl. a cgi-bin könyvtárra vagy kapunk írási jogot, vagy sem, de még ha kapunk is, ott mások is "nyomulnak", közös lónak meg ugye... A saját könyvtárunkban viszont nyugodtan fejleszthetünk.
A példát ez utóbbi serverhez írtam meg, mert mentes a CGI "sallangjaitól".
Teendőink sorrendben:
Készítsük el counter néven az alábbi UNIX scriptet tetszésünk szerinti szövegszerkesztővel a public_html könyvtárba:
N=`cat ./counter.$1` expr $N + 1 > ./counter.$1
Nagyon ügyeljünk minden egyes jelre, még a szóközökre is, mert a UNIX haragos öregúrként viselkedik, ha pontatlanok vagyunk!
A kész állományra adjunk végrehajtási jogot!
chmod 755 counter
Készítsük el az index.html "adatlapját"!
echo 0 > counter.index
Erre adjunk általános írási jogot, hiszen a világon mindenki belátogathat a lapunkra, növelve a számláló állását!
chmod 666 counter.index
Végül helyezzük el az index.html-ben a számláló hívását (célszerű a legelső sorba a <head> elé):
<!--#exec cmd="./counter index"-->
Ezzel a számláló kész és működik is, csak épp nem látjuk a lapon az eredményét. Ehhez egy újabb sort csempésszünk a lap törzsébe:
Ezt a Jakab-féle lapot <!--#exec cmd="cat ./counter.index"--> boldogtalan elektronikus csavargó látta eddig.
A szám valóban megjelenik a szövegben, mi több a forrásban is, így aki lapunk "kéziratát" olvasgatja, az sem sejtheti, milyen csodaprogrammal értük el ezt az eredményt. Más lapokon is bevethető ugyanez a script, mivel eleve úgy íródott, hogy csak az index cserélendő le más névre a lapban a hívásnál. Persze az "adatlapokat" külön-külön el kell készíteni! És ez még csak a kezdet!...
FIGYELEM! Ez a megoldás korszerűtlenebb servereken nem működik!
Több érdekes információt tartalmazó szabványos rendszerváltozót használnak a serverek, ezek közül emelek ki néhányat:
A lap utolsó módosítási dátumát tartalmazza. Ahol lényeges, hogy kövessük, mikor frissült utoljára a lap, az állandó dátumátírás helyett ennek a változónak a kiíratásával is elintézhetjük a kérdést:
<!--#exec cmd="echo $LAST_MODIFIED"-->
Ebben a változóban rejlik a lapunkat éppen meghívó kíváncsi "ügyfél" gépének neve (maga a felhasználó anonim marad). Sokan szívesen veszik, ha a lap "felismeri" őket, így ezt is kiírathatjuk a fenti módon.
A mai dátum a helyi idővel együtt. Ha valaki nagyon lassúnak találja a vonalat, ezt az adatot ismerve rádöbbenhet, hogy nem munkaidőben kellene próbálkoznia... ;-) (Nem árt, ha olykor eszünkbe jut, hogy az Interneten mindig máshol van éjszaka.)