[IMAGE]

Kehykset
Kirjan sivut
87 - 91
Kehyksien tekemiseen tarvitset ainakin kolme erillistä html-dokumenttia. Kehykset ovat tapa jakaa selainikkuna useampaan osaan. Yksi sivuista on aina se, millä määrittelet jaon ja muut ovat sitten kehykseen avautuvia yksittäisiä www-sivuja. 

Kehyksillä helpotetaan sivuilla liikkumista ja päivitystä. Ajattele, että sinulla on mahdollisuus jättää yhteen kehykseen aina näkyvissä oleva sivu. Se voi olla linkkisivu, yhteystietoja tai muuta vastaavaa, jonka helposta saatavuudesta on hyötyä.

Ensin  määrittelet näytön jaon kehyksillä: Head-elementin jälkeen sijoitetataan FRAMESET-elementti
<FRAMESET ROWS=”50%,50%”>
 
ROWS-attribuutti määrittelee, että näyttö selaimessa jaetaan kahteen osaan vaakasuuntaisesti. 
Toinen tapa jakaa selain kehyksiin on käyttää COLS-attribuuttia, jolloin sivu jaetaan kahteen osaan pystysuunnassa.

Mittayksikköinä voidaan käyttää prosenttien ohella pikseleitä tai *-merkkiä, jolla annetaan tietylle kehykselle lopputila. 

FRAMESET-elementti lopetetaan </FRAMESET>


FRAMSET-elementin sisälle tulee FRAME-elementti, joka määrittelee kehykseen avattavan dokumentin nimen SRC-attribuutilla. SRC-kohdassa nimetyn sivun teet aivan kuten olet tehnyt tähänkin asti htm-tiedoston. 
<FRAME SRC="sivu.htm">
FRAME-elementtejä tulee niin monta kuin olet FRAMESET-kohdassa määritellyt mittoja.
Esim. <FRAMESET COLS="100, 100, 100, *"> vaatisi seuraaville riveille neljä kappaletta FRAME-elementtejä. Mallissa olevat mitat tarkoittavat, että jaa sivu kehyksiin, jossa kolmen ensimmäisen mitat ovat 100 pikseliä ja lopun tilan käyttää neljäs kehys. 
SRC:n ohella FRAME-elementtiin kannattaa antaa NAME-attribuutti, jota voidaan käyttää hyväksi linkkien kohdekehyksien määrittelyissä.
Muut määritykset:
NORESIZE - kehyksen kokoa ei voida muuttaa selaimessa.
SCROLLING = auto, no tai yes  
* auto-arvo tarkoittaa, että kehyksessä näkyvät vierityspalkit tarvittaessa. 
* no-arvo poistaa vierityspalkit. Tämä on vaarallista, koska pienemmillä näytöillä ei välttämättä koko sivu tule näkyviin kehyksiin, ja jos arvo on no ei sitä voida saada näkyviin vierityspalkeilla
* yes-arvo tuo vierityspalkit näkyviin, vaikka niitä ei tarvittaisikaan
FRAMEBORDER = 1 tai 0 kehyksien väliin jäävän reunuksen näkyvyys. Arvolla 1 reunat näkyvät ja arvolla 0 eivät.


Kehyksiä ei tueta kaikissa selaimissa eikä Netscapen ja Explorerin vanhemmissa versioissa. Voit FRAMESET-elementin jälkeen lisätä<NOFRAMES>-elementin . Ja sen sisälle tekstin niille Internetin käyttäjille, jotka eivät näe kehyksiä. 
<NOFRAMES>Selaimesi ei tue kehyksiä</NOFRAMES>


Linkit kehyksissä:

Kehyksiin avatun dokumentin linkit avaavat kohdesivun oletuksena samaan kehykseen missä itse linkkikin on. Lisäksi kehyksiä monesti käytetään navigoinnin helpottamiseksi, jolloin tehdään erillinen valikko-sivu, jossa on linkit muihin aiheisiin. Näiden linkkien kohteet avataan sitten toiseen kehykseen. Linkkien avaamiseksi toiseen kehykseen lisätään A-elementiin TARGET-attribuutti.

Malli

<HTML>
<HEAD>
<TITLE>
kehykset</TITLE>
</HEAD>
<FRAMESET COLS="
200, *">
   <FRAME SRC="
valikko.htm" NAME="valinta">
   <FRAME SRC="
sisus.htm" NAME="sisalto">
<NOFRAMES>
Selaimesi ei tue kehyksiä.</NOFRAMES>
</FRAMESET>
</HTML>

Yllä ollaan tehty ensimmäinen sivu valmiiksi. Sivun ainoa tarkoitus on jakaa selainikkuna kahteen osaan ja avata vasemmalle valikko.htm ja oikealle sisus.htm -tiedostot. Kehyksille ollaan myös annettu nimet NAME-atribuutilla

Seuraavaksi muistioon avattaisiin valinta.htm -tiedosto. Siellä oleviin linkkeihin tehdään lisäys:
<A HREF="tuonne.htm" TARGET="sisalto">avaa sivu</A>
Eli TARGET-arvolla määritellään, että avaa tuonne.htm -sivu kehyksissä sisalto-nimellä nimettyyn kehykseen.

Toiset tavat määritellä linkin kohdesivun avaaminen:

TARGET="_blank"  - avaa sivun kokonaan uuteen selainikkunaan. Näet tämän katsomalla tehtäväpalkkia linkin testaamisen jälkeen.

TARGET="_top" - avaa sivun samaan selaimeen, mutta ilman kehysrakennetta.

Muiden tekemiä sivuja ei kannata avata omiin kehyksiin, vaan silloin kannattaa käyttää TARGET="_top" tai  TARGET="_blank" lisäyksiä linkeissä.

Oikeampaa olisi sanoa, että muiden tekemiä sivuja ei saa ilman tekijän lupaa avata omiin kehyksiin. Syitä on monia. Yksi on se, että sivun käyttäjä voi harhautua luulemaan, että kehyksiin avattu sivu on sivun tekijän oma, vaikka todellisuudessa se onkin jonkun muun tekemä. Toisena asiana voidaan ajatella, että sivujen luonne on sellainen, että kehyksiin avattava sivu joutuu huonoon valoon kehyksiin avattuna.

Maailmalla on nostettu oikeustapauksiakin kehysten linkitysten takia. Yleensä ne on sovittu, joissakin tapauksissa on riittänyt, että kehysten tekijä selkeästi ilmoittaa, ettei linkin kautta avautuva sivu ole tekijän oma, vaan jonkun toisen. Tällaiseen käytäntöön ilman asiasta erikseen sopimista ei kuitenkaan kannata alkaa. Eli kun olet harkitsemassa jonkun muun sivun käyttämistä omissa kehyksissä, ota yhteys sivun tekijään ja kysy lupaa. Jos tämä ei lupaa anna, tee linkki, jossa sivu avautuu kokonaan uuteen ikkunaan tai koko selaimen kokoiseksi. 

Kehysmalleja
Kun avaat mallin näet 1-4 malleissa koodin yhdessä kehyksessä, kuinka sivu on jaettu osiin. Viidennessä ja kuudennessa mallissa avaa Näytä-valikosta Lähdekoodi, niin saat koodin näkyviin (Netscape,  View-Page Source )

Kehysmalli 1
Kehysmalli 2
Kehysmalli 3
Kehysmalli 4
Kehysmalli 5
Kehysmalli 6

Kooste:
Elementti Attribuutit / selitykset
<FRAMESET> - </FRAMESET> Kehysten määrittely
cols - jako pystysuunnassa
rows  - jako vaakasuunnassa
<FRAME> Kehyksen sisältö
src - tiedoston nimi
name - kehyksen nimi
frameborder - kehyksen reunan koko
noresize - voiko käyttäjä muuttaa kokoa
scrolling - vierityspalkkien asetus
<NOFRAMES> - </NOFRAMES> Tietoa käyttäjille, joiden selain ei kykene näyttämään kehyksiä.