Frameset- og Frame-attributter

version 2.00
eller: »Alt hvad du altid har ønsket at vide om frame attributter«
 

Der hersker del usikkerhed omkring anvendelsen og effekten af de forskellige attributter (parametre), der kan bruges i forbindelse med med de to HTML-elementer (tags):  <frameset>  og  <frame>.

Derfor har jeg testet virkningen af de forskellige attributter i en række browsere.  Resultaterne heraf kan ses i nedenstående to tabeller - holdt op mod HTML 4.0x standarden.

Brugen af de enkelte attributter og virkningen i de forskellige browsere er uddybet i afsnittet "Bemærkninger".

 
element: <frameset> <frame> <frameset> & <frame>
attribut: rows & cols onLoad & onUnload src name scrolling noresize target longdesc title style id & class
HTML 4.0x pixels / % / * / n* script URI tekst yes / no / auto + identifier URI tekst CSS CSS identifier
Netscape 2.02 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
Netscape 3.04 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
Netscape 4.8 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - buggy buggy
Netscape 7.1 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
Explorer 3.03 pixels / % / * / n* Jscript, VBScript URI tekst yes / no / auto + - - - - -
Explorer 4.01 pixels / % / * / n* Jscript, VBScript URI tekst yes / no / auto + - - tekst CSS CSS identifier
Explorer 5.00 pixels / % / * / n* Jscript, VBScript URI tekst yes / no / auto + - - tekst CSS CSS identifier
Opera 2.12 pixels / % / * / n* - URI tekst yes / no / auto + - - - - -
Opera 3.21 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
Opera 3.51 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
Opera 3.60 pixels / % / * / n* JavaScript URI tekst yes / no / auto + - - - - -
 
attribut: frameborder border framespacing bordercolor marginwidth marginheight
element: <frameset> <frame> <frameset> <frame> <frameset> <frame> <frameset> <frame> default min. default min.
HTML 4.00 - 0 / 1 - - - - - - - 2 - 2
HTML 4.01 - 0 / 1 - - - - - - - 1 - 1
Netscape 2.02 - - - - - - - - 10 1 15 1
Netscape 3.04 0 (no) / 1 0 (no) / 1 pixels  (6) 0 / 1 - - farve farve 10 1 15 1
Netscape 4.8 0 (no) / 1 0 (no) / 1 pixels  (6) 0 / 1 - - farve farve 8 1 8 1
Netscape 7.1 0 (no) / 1 0 (no) / 1 pixels  (6) 0 / 1 - - farve farve 8 0 8 0
Explorer 3.03 0 / 1 0 / 1 - - pixels  (2) - - - 10 0 15 0
Explorer 4.01 0 / 1 0 / 1 - - pixels  (2) - farve farve 10 0 15 0
Explorer 5.00 0 / 1 0 / 1 pixels (2) - pixels  (2) - farve farve 10 0 15 0
Opera 2.12 -  (1) -  (1) pixels  (2) - - - - - 5 1 5 1
Opera 3.21 -  (0) -  (0) pixels  (2) - - - - - 5 1 5 1
Opera 3.51 -  (0) -  (0) pixels  (2) - - - - - 5 1 - 0
Opera 3.60 -  (0) -  (0) pixels  (2) - - - - - 5 1 5 1
 
 fed =  default(standard)-værdi.
+=  understøttet, men kræver ingen værdiangivelse.
-=  ikke understøttet eller ikke omfattet af standarden.
buggy=  fejlbehæftet understøttelse.
 

Bemærkninger

Bemærk !  Dette er ikke et basalt kursus i brug af frames, men en gennemgang af virkningen af de forskellige attributter i de testede browsere.

Rows og Cols

  1. Rows og cols angiver antallet af rækker og kolonner samt højden af rækkerne henholdsvis bredden af kolonnerne i et frameset.
  2. Størrlesen kan enten opgives i pixels, i procent, med * eller med n*.  Hvis * anvendes, vil størrelsen af den pågældende frame blive den resterende plads, når de øvrige frames har fået tildelt deres relative plads.
  3. Angivelse af f.eks.  cols="*, 2*"  opretter to frames, hvor den højre frame er dobbelt så bred som den ventre.  Svarer til  cols="33%, 66%",  cols="33%, *"  eller  cols="*, 66%".
  4. Hvis både rows og cols angives i det samme <frameset> tag, så bliver de enkelte frames indsat i den orden, de er skrevet fra ventre mod højre og nedefter.
  5. Brug af både rows og cols i samme <frameset> tag kan give besynderlige resultater, specielt hvis der er nestede framesets (<frameset> inden i andet et <frameset> tag).  Det kan derfor kun anbefales enten at bruge cols eller at bruge rows i et <frameset> tag, men ikke begge dele i samme tag.
  6. Hvis rows og cols bruges i samme <frameset> tag, så vil Netscape flette borders over og under hinanden.
  7. Netscape overholder ikke de angivne størrelser af højde og bredde på frames, men kan variere størrelsen adskillige pixels afhængig af browservinduets størrelse.  Dette kan gøre det overordentligt vanskeligt at få grafikelementer i tilstødende frames til at "passe sammen" i Netscape.
    Obs!  Hvis man angiver absolutte værdier for rows og cols med tal, der er delelige med 5, så er Netscape langt bedre til at overholde værdierne.
    Netscape 7.x overholder de angivne størrelser.
  8. Explorer og Opera ændrer først på de angivne størrelser af højde og bredde på frames, hvis browservinduet gøres så lille, at der bliver problemer med at vise alle frames.
  9. Ved små browservinduer kan man med Explorer risikere at nogle frames ikke vises.  Den risiko er mindre i Netscape og Opera, da disse to browsere i højere grad forsøger at vise alle frames.
  10. Visse HTML-redigeringsprogrammer ynder konstruktioner som:
      <frameset cols="80,*" rows="100%">
    
    rows="100%" er her fuldstændig uden betydning og kan derfor fjernes.
  11. Man kan lave en "skjult" frame med følgende konstruktion:
      <frameset rows="100%,*" border=0 framespacing=0>
        <frame src="main.htm" frameborder=0>
        <frame src="skjult.htm" frameborder=0>
      </frameset>
    
    Dette virker dog ikke i Opera, der viser skjult.htm i en 24 pixels høj frame.
  12. I princippet er der ingen begræsning af antallet af frames i en browser, men mange browsere får problemer med at vise og/eller opdatere frames, når der er flere end 15.  Nogle browsere har endda problemer med færre frames, så man bør ikke anvende mere end ca. 8 frames på én gang.

OnLoad og onUnload

  1. Intrinsic events som udløser et script henholdsvis, når hele framesettet er indlæst, eller når det forlades.
  2. OnLoad udføres først, når det fulde indhold af alle frames er indlæst.
  3. Da man ikke kan angive typen af script ved intrinsic events som onLoad og unOnload, bør man angive den type script man ønsker anvendt på siden.  Dette kan gøres med et META-tag i dokumentets header, f.eks:
       <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
    
    Det har selvfølgelig kun betydning for browsere, som understøtter flere scriptsprog, eller som ikke understøtter det scriptsprog, der er anvendt ved onLoad og/eller onUnload.

Src

  1. Med src angives den fil, der skal indlæses i den pågældende frame.  Det vil normalt være en HTML-fil, men kan f.eks. også være en billed- eller lydfil.
  2. Hvis src er en HTML-fil kan denne enten være et almindeligt HTML-dokument, eller det kan være endnu et frameset.

Name

  1. Forsyner den enkelte frame med et navn, som kan bruges i links og scripts til at definere, i hvilken frame et link skal åbnes.
  2. I HTML bruges navnet i forbindelse med "target" attributten i elementerne <a>, <area>, <base>, <form> og <link>.
  3. For f.eks. at få et link til at åbne en side i en frame med navnet "main" bruges:  <a href="side.htm" target="main">
  4. Man kan sætte target for alle links på en side på én gang ved at bruge:  <base target="main">.  <base> skal bruges imellem sidens <head> og </head> tag.

Scrolling

  1. Hvis der bruges scrolling="yes", indsætter browserne scrollbars på følgende måde:
    1. Netscape 4.x eller ældre samt Opera og Explorer 3.x indsætter altid både vandrette og lodrette scrollbars.
    2. Explorer 4.x og 5.x indsætter altid en lodret scrollbar, med kun en vandret scrollbar hvis dokumentets størrelse nødvendiggør det.
    3. I Netscape 4.x eller ældre og Explorer 4.x (ikke 5.x) har scrollbars en anden farve, hvis dokumentets størrelse ikke nødvendiggør dem.
    4. I Netscape 4.x eller ældre og Explorer 4.x og 5.x bliver scrolling-pilene markeret som inaktive, hvis dokumentets størrelse ikke nødvendiggør dem.
    5. Netscape 7.x viser hverken vandret eller scrollbar, hvis dokumentets størrelse ikke nødvendiggør dem.
  2. Ingen browsere understøtter brug af scrolling attributten i <frameset> tags.
  3. Da alle browsere endvidere har scrolling="auto" som default, så er der egentlig ingen grund til at bruge scrolling="auto".

Noresize

  1. Noresize bruges til at angive at man ikke skal kunne ændre størrelsen på en frame ved at trække i dens border.
  2. Noresize kræver ingen parametre, og er uden betydning, hvis der ingen border er mellem de enkelte frames.

Target

  1. Target kan ifølge HTML 4.0 standarden også bruges i <frame>, men ingen af de testede browsere understøtter det.

Longdesc

  1. Longdesc bruges til at angive adressen på en fil med en beskrivelse af den enkelte frame.
  2. Tænkt som en hjælp for f.eks. blinde og er et supplement til "title".

Title

  1. Title bruges til at give en uddybende beskrivelse af et HTML-element på samme måde som f.eks. "alt" i <img> tag'et.
  2. Må ikke forveksles med de enkelte dokumenters titel, som sættes imellem <title> og </title> i dokumenternes header (<head>).
  3. I forbindelse med frames er det kun Netscape 7.x samt Explorer 4.x og 5.x som understøtter denne attribut.  Hvis man har anvendt title i sit <frameset> eller <frame> tag, så vil der komme en lille gul tekst frem ved cursoren, når den holdes over en border.

Style, id og class

  1. Disse attributter bruges i forbindelse med Cascading StyleSheets (CSS) til at angive udseendet af alle HTML-elementer.
  2. Netscape 4.0x's understøttelse af CSS i forbindelse med frames er ubrugelig.  I bedste fald bliver kun dele af framsettet vist - ofte vil framesettet ikke blive vist - og i værste fald crasher browseren.
  3. Explorer 4.x og 5.x understøtter CSS's border-property i forbindelse med frames.  Det er ikke framesettets almindelige borders, der ændres på, men ekstra borders, der skydes ind imellem evt. eksisterende borders.
  4. Med Explorer er det således muligt f.eks. at sætte en bred rød border uden om hele framsettet med style="border: 10px solid red".

Frameborder

  1. Effekt af frameborder:
    1. Netscape 2.x: Hvid kant (1 pixel) rundt om aktive frame.
    2. Netscape 3.x: Sort kant (1 pixel) rundt om aktive frame.
    3. Netscape 4.x: Transparent (hvid) kant (1 pixel) rundt om alle frames.
    4. Netscape 7.x: Frameborder=0 fjerner borders - ligesom border=0 gør. Men man kan ikke sætte border-bredden med frameborder.
    5. Explorer 3.x: Sort kant (1 pixel) rundt om alle frames.
    6. Explorer 4.x/5.x: Grå/hvid kant (1 pixel) rundt om alle frames (giver 3D-effekt).
    7. Opera 2.x sætter altid en sort kant (1 pixel) om aktive frame.
    8. I Opera 3.x kan frameborder vælges fra i opsætningen af browseren, men kan ikke ændres med frameborder-attributten.
  2. Frameborder angivet i <frame> tilsidesætter frameborder angivet i <frameset> i både Netscape 4.x eller ældre og Explorer.
  3. Frameborder=0 i <frameset> medfører at 3D-effekt og farve på borders fjernes i både Netscape og Explorer.
  4. Frameborder=0 i <frame> fjerner 3D-effekt men ikke farve på borders i Explorer.
  5. Frameborder=0 i to tilstødende <frame> eller <frameset> tags fjerner 3D-effekt og farve på borders i Netscape.
  6. Frameborder=1 i <frame> genopretter 3D-effekt og farve på borders i Netscape, men ikke i Explorer, hvis frameborder=0 i <frameset>.
  7. Hvis borders ikke er 3D, kan der ikke trækkes i dem i Netscape.

Border

  1. Border angiver bredden af borders i Netscape, Explorer 5.x og Opera.
  2. Border har kun effekt, hvis det indsættes i det første <frameset> tag i Netscape 4.x eller ældre og Opera.
  3. Border=0 i <frame> fjerner 3D-effekt, farve og frameborder i Netscape.
  4. I Netscape 4.x eller ældre tages pladsen til borders ligeligt fra de to tilstødende frames, således at størrelsen af den enkelte frame bliver mindre.
  5. Netscape 4.x eller ældre runder af den grund bredden af borders op til nærmeste lige værdi.  Border=1 bliver altså til border=2.
  6. I Opera lægges borders ind imellem frames, således at disse bevarer deres størrelse.

Framespacing

  1. Framespacing angiver bredden af borders i Explorer.
  2. Framespacing har effekt i både første og efterfølgende <frameset> tags.
  3. I Explorer lægges borders ind imellem frames, således at disse bevarer deres størrelse.
  4. Der er ingen 3D-effekt på borders i Explorer 3.x.
 
Den sikre og tilstrækkelige måde totalt at fjerne borders på er altså at bruge
border=0 framespacing=0 i første <frameset> og frameborder=0 i alle <frame> tags.
 

Bordercolor

  1. Bordercolor angiver farven på borders i Netscape og Explorer 4.x og 5.x
  2. Farven kan angives med hexadecimale rgb-værdier (f.eks. #66CCFF) eller med Netscapes Farvenavne (også i Explorer).
  3. Bordercolor angivet i <frame> tilsidesætter bordercolor angivet i <frameset> i både Netscape og Explorer.
  4. I Netscape kan der angives forskellig bordercolor for de enkelte frames og framesets.
  5. Hvis der i Netscape er angivet forskellig bordercolor i to tilstødende frames sættes bordercolor til den farve, der er angivet i den første af de to frames.
  6. I Explorer får alle borders den farve, der er angivet i det første <frame> eller <frameset> tag.

Marginwidth

  1. Angiver bredden af frame-dokumentets højre- og venstremargin.
  2. Kan ikke sættes mindre end 1 pixel i Netscape 4.x eller ældre og Opera.
  3. Hvis marginwidth angives uden samtidig at angive marginheight, så sættes marginheight=0 i Explorer og i Netscape.
  4. Opera 2.12 og 3.21 lægger 10 pixel til højre margin.
  5. Marginwidth kan også angives i det enkelte dokuments <body> i Netscape 4.x. og kan her sættes til 0.  Den tilsvarende attribut i Explorer er: "leftmargin" (og evt. "rightmargin").

Marginheight

  1. Angiver højden af frame-dokumentets top- og bundmargin.
  2. Kan ikke sættes mindre end 1 pixel i Netscape 4.x eller ældre og Opera.
  3. Hvis marginheight angives uden samtidig at angive marginwidth, så sættes marginwidth=0 i Explorer og i Netscape.
  4. Opera 3.51 kan ikke ændre marginheight, som altid er 0.
  5. Marginheight kan også angives i det enkelte dokuments <body> i Netscape 4.x. og kan her sættes til 0.  Den tilsvarende attribut i Explorer er: "topmargin" (og evt. "bottommargin").

 
Hjem
13221