A keretek vagy más néven frame-ek használatára gyakran nagy szükségünk van egy honlap készítésénél. Ezekkel ugyanis elérhető, hogy a böngésző
ugyanazon ablakának más-más részein eltérő események történhessenek egy időben. Ezek szerint a keretek alkalmasak arra, hogy egyazon időben több HTML fájlt
is beolvassunk a böngésző ablakába. Ezek a fájlok egymástól eltérő, önálló oldalak, egymástól függetlenül görgethetők, de tartható köztük linkkapcsolat.
Elvileg már nagyon ritka az olyan felhasználó, aki még frame-eket nem ismerő böngészőt használ. Mégis érdemes ezt is figyelembe vennünk, amikor
kereteket helyezünk el az oldalainkon. Emellett arra is ügyelnünk kell, hogy nem minden látogató használja ugyanazt a felbontást, mint mi. Persze mindkét
problémára szolgáltat megfelelő megoldást a HTML nyelv.
A kereteket a <FRAMESET> tag vezeti be és a </FRAMESET> zárja le. Ezeket az utasításokat azonban nem a <BODY
> tag után, azaz a dokumentumtörzsben kell megadnunk, hanem közvetlenül a <HEAD>...</HEAD> blokk után.
Tulajdonképpen egy keretutasítást hordozó fájlnak nem is lehet <BODY> része, hiszen nem az töltődik be.
A <FRAMESET> utasítás rengeteg hasznos opcióval rendelkezik, melyek a következők:
Amikor a <FRAMESET> COLS vagy ROWS tulajdonságait szerkesztjük, meg kell adnunk az egyes keretek szélességét. Már láttuk, hogy
ezt a böngészőablak szélességének százalékában vagy pixelben tehetjük. Viszont például két keret esetén csak az első szélességét kell beírnunk, a másodikét
csillaggal jelezhetjük (amennyi az ablak szélességéből maradt). (Lásd a példát!) Természetesen lehetséges a <FRAMESET> tagek egymásba
ágyazása.
A FRAMEBORDER értékei pozitív egész számok és a "no" lehet. A FRAMESPACING értékei 0 és a pozitív egészek lehetnek.
Miután a keretek alaptulajdonságait megadtuk, a frame-ekbe betöltendő oldalakat is be kell állítanunk. Ezt a <FRAME> utasítással tehetjük,
melynek nincs zárópárja. Kötelező opciói a NAME="frame azonosító" és az SRC="elérési út/fájlnév.htm". Az előbbivel az adott keretet
azonosíthatjuk, amelyre a linkek normális működéséhez van szükségünk. Az utóbbi pedig a keretbe töltendő fájl helyét adja meg. A <FRAME>
parancs további opciói:
Ha már végeztünk az összes keretformázással, ne felejtsük el lezárni a <FRAMESET> utasítást. Ezután belekezdhetünk még egy <BODY> blokkba a háttér miatt, de ez csak akkor jelenik meg a böngészőben, ha az a keretekkel nem tud mit kezdeni. Egyébként létezik még egy frame-ekhez kötődő tag, mégpedig a <NOFRAMES>. Ez adja meg a frame-eket nem támogató programoknak, hogy mit írjanak ki keretutasítások esetén. Ez persze sohasem lehet egy önálló oldal. A tag zárópárja a </NOFRAMES>.