webForumDet fria alternativet

XHTML 1.0 Frameset

6 svar · 235 visningar · startad av LeonL

LeonLMedlem sedan dec. 20023 175 inlägg
#1

Jag använder en kod som ser ut som den här:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>En sida</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <frameset cols="130,*">
      <frame name="menu" src="menu.asp" noresize="noresize" frameborder="0" />
      <frameset rows="120,*">
        <frame name="top" src="top.asp" scrolling="no" noresize="noresize" frameborder="0" />
        <frame name="main" src="main.asp" noresize="noresize" frameborder="0" />
      </frameset>
    </frameset>
  </head>
</html>

Jag har hittills lyckats med att få bort de irriterande frame-kanterna som brukar finnas med, genom att använda frameborder="0". Nackdelen är dock att det ändå dyker upp mellanrum mellan ramarna (framespacing, som inte stöds). Kan man få bort detta på något sätt?

När jag kör igenom koden på validatorn säger den att den första frameset-taggen (<frameset cols="130,*">) inte får vara där. Varför? Alla frameset-koder finns inuti head-taggarna.

Och till slut så undrar jag varför jag får ett fel på raden där det står "</html>" med meddelandet "end tag for "html" which is not finished".

Felen jag får är alltså:

Line 7, column 26: document type does not allow element "frameset" here (explain...). 
      <frameset cols="130,*">
                            ^
Line 15, column 6: end tag for "html" which is not finished (explain...). 
  </html>
        ^

:o

andreascarlssonMedlem sedan feb. 2003211 inlägg
#2

Om du placerar om head-taggen lite, så fungerar det bättre... Nedanstående kod validerar fint:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>En sida</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  </head>
    <frameset cols="130,*">
      <frame name="menu" src="menu.asp" noresize="noresize" frameborder="0" />
      <frameset rows="120,*">
        <frame name="top" src="top.asp" scrolling="no" noresize="noresize" frameborder="0" />
        <frame name="main" src="main.asp" noresize="noresize" frameborder="0" />
      </frameset>
    </frameset>
</html>
LeonLMedlem sedan dec. 20023 175 inlägg
#3

Nämen LOL :e.
Jag får väl skylla på att jag inte har använt frames på ca ett år. :P

Tack, andreascarlsson!

Ett problem kvar... ;)

VimpMedlem sedan juli 20021 064 inlägg
#4

Kan du inte sätta id på framesen och sen fixa till det i en css-mall?

LeonLMedlem sedan dec. 20023 175 inlägg
#5

Jag har försökt med olika CSS-attribut, men ingen vill ta bort linjerna :l

andreascarlssonMedlem sedan feb. 2003211 inlägg
#6

Jag har försökt förut och mig veterligen går det inte att ta bort "kanterna", utan att ta ett litet avsteg från standardiserad XHTML.

Jag kan dock ha fel, men jag kommer ihåg att jag letade som f-n, efter en lösning utan att hitta någon. Jag fick helt enkelt leva med att sidan inte validerade till 100%

(Detta kunde jag dock inte leva med särskilt länge, utan slopade alla frames totalt efter en tid!) ;)

LeonLMedlem sedan dec. 20023 175 inlägg
#7

Jag får väl leva med det då ;)

Jag ska göra ett förslag på en kataloglösning åt ett företag, och till det behöver jag frames. ;)

Genererad på 395 ms · cache AV · v20260730165559-full.f96bc7eb