Avatar billede mik789 Nybegynder
18. januar 2004 - 22:36 Der er 28 kommentarer og
2 løsninger

tabel i stedet for frameset

Et frameset har den fordel at man kan angive en fast højde for nogle af rammerne, f.eks. top og bund, mens browseren automatisk udregener den resterende højde for andre, f.eks. midterrammen, samtidig med at det hele bliver inden for vinduets højde. Det gøres ved at scrolling er sat = "no" i top- og bundrammen men = "yes" (eller ingen ting) i midterrammen. Her er et eksempel:

<frameset rows="139,*,44" frameborder="NO" border="0" framespacing="0">
<frame src="top_home.htm" name="top" scrolling="NO" noresize >
<frame src="content_home.htm" name="content">
<frame src="bottom.htm" name="bottom" scrolling="No" noresize="noresize" marginwidth="0" marginheight="0" id="bottomFrame" />
</frameset>

Dette er fra: http://www.cfs.ku.dk/home.htm
Til gengæld har frameset andre ulemper, f.eks. at undersider evt. vises uden deres frameset. På det nævte site løser de det problem ved simpelthen at lade alle siderne have deres eget frameset med egne rammesider. Alle framesettene har det samme forhold mellem rammerne: 139, *, 44. Enkelt, men bøvlet.

Spørgsmålet er så om man kan opnå det samme uden frameset, altså dynamisk højde på sidens midterfelt samtidig med at siden bliver inden for vinduets højde.

Hvis man "oversætter" framesettet til en tabel og angiver top- og bundcellen med en fast højde (i stylesheetet samtidig med at html, body og table har fået height:100%), men ingen højde for midtercellen, vises dette forskelligt efter browser. Netscape viser det korrekt, men IE viser topcellen for høj, når der ikke er nok indhold i midtercellen. I kan se det her: http://www.e-tidsskrift.dk/dev/tabel_frameset_1.html

Hvis man kommer ekstra indhold i midtercellen udvides hele tabellen/siden i højden ud over vinduets højde. Det hjælper ikke med overflow:auto for midtercellen, for dette ville kræve at også denne celle havde fået angivet en bestemt højde, og det var jo netop det jeg ville undgå. I kan se det her: http://www.e-tidsskrift.dk/dev/tabel_frameset_2.html

Så spørgsmålet er om det i det hele taget kan lade sig gøre med et design hvor midterfeltets højde automatisk tilpasser sig vinduets højde, mens top- og bundfeltet har fast højde, og sådan at hele tabellen altid bliver inden for vinduets højde - ligesom i det rigtige frameset. Nogle forslag? Der skal kunne være overflow i midterfeltet ligesom i framesettet.

//mik
Avatar billede gil-galad Nybegynder
18. januar 2004 - 22:42 #1
altså, du vil have en scroller på det midterste felt?
Avatar billede voirsous Nybegynder
18. januar 2004 - 22:43 #2
Det er en svær en, men det burde kunne lade sige gøre.
Vender tilbage med noget kode senere
Avatar billede mik789 Nybegynder
18. januar 2004 - 22:45 #3
spiffsen> jeps. men hvordan uden at angive højde for dette felt?
Avatar billede exp Juniormester
18. januar 2004 - 22:48 #4
Du kan bruge en div, og sætte overflow:scroll i den...

Når du vil lave det som du beskriver, giver du de omkransende absolutte værdier, så skulle det virke.

Hotlink:
http://www.webdesign101.dk/xhtml/css/csslayout/autocentrering_4.php => overflow attributten
Avatar billede voirsous Nybegynder
18. januar 2004 - 22:53 #5
det var ikke så svært.
http://www.astrostar.dk/exp/453595.html
se CSS dokumation under HEIGHT & hvilke angivelser der kan bruges ;)
Avatar billede mik789 Nybegynder
18. januar 2004 - 22:53 #6
exp> Jo men det kræver jo netop at midterfeltet har en fast højde. Den side du linker til siger jo: "Til mit formål, nemlig at lave en webside, hvor alt indholdet er centreret, også lodret, kan jeg nøjes med at bruge overflow:auto. Det er værd at bemærke, at jeg skal have en absolut højde på kassen div#indhold, for at overflow-attributten kan gøre sit kunststykke." Eller hvad?
Avatar billede voirsous Nybegynder
18. januar 2004 - 22:56 #7
desværre er min løsning pbenbart ikke crossbrowser venlig (mozilla fucker, ellers fucker min kode ;) ). Det kunne være interessant at prøve en tableless løsning, hvilket heller ikke burde være umuligt og alle kan lege med (mozilla).
Avatar billede voirsous Nybegynder
18. januar 2004 - 22:57 #8
problemmet er vidst mozilla tager height = body height, og ikke det element som den er inde i er. (min <td> her)
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:02 #9
voirsous> problemet er vist her:

<td style="height: auto;">
<div style="height: 100%; width: 100%; overflow: scroll;">

hvordan skal browseren finde ud af hvad 100% er for div'en når det element den er i, nemlig tabelcellen, ikke har nogen angivet højde anden en "auto"?
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:13 #10
IE kan finde du af det? :)

http://www.astrostar.dk/exp/453595_2.html giver lidt bedere resultat, om end mærklig placering af scroll bar er mislykkedes.
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:18 #11
kan ikke få mozilla tip at hoppe de 100%; op fra bunden som jeg gerne vil. Den udvider bare.
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:20 #12
voirsous> ja, og IE lægger også en vandret scrollbar forneden i midterfeltet. det var ikke meningen, men det er godt forsøgt med top- og bundmargin som højden på top- og bund-dive'en ;-)
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:22 #13
100px mener jeg
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:27 #14
problemmet er ikke så stort med den vandrette scrollbar
http://www.astrostar.dk/exp/453595_2.html

det var mit umildbare gæt at gøre sådan, og det virker også halvt jo. Prøver at læse lidt i dokumationen.
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:33 #15
voirsous> prøv engang at se hvad der sker med dit sidste forsøg hvis du skriver doctype erklæringen fuldt ud (som er det korrekte), dvs.:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

;-)
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:38 #16
hehe et aspekt jeg troede jeg havde taget højde for :). Så begynder de jo at enes...
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:41 #17
det er denne her vi snakker om, ikke:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
</head>

<body style="height: 100%; overflow: hidden; margin-bottom: 100px; margin-top: 100px;">
<div style="width: 100%; height: 100px; background-color: black; position: absolute; left: 0px; top: 0px;">
</div>

<div style="  width: 100%; height: 100%; overflow: auto;">

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>[osv.]
</div>



<div style="width: 100%; height: 100px; background-color: black; position: absolute; left: 0px; bottom: 0px;">
</div>

</body>
</html>

.... den ser ok ud i Netscape men ret forkert ud i min IE 6
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:42 #18
jamen så vil jeg umildbart sig at du bliver nød til at 'måle' via noget javascript.
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:43 #19
nej fordi de overføre sig stort set ens nu prøv at gøre scrollbaren visuel
overflow: auto; til overflow: scroll;
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:44 #20
måske... men så er noget af fidusen gået fløjten
Eller med andre ord, frameset kan noget som ingen andre design kan...
Avatar billede voirsous Nybegynder
18. januar 2004 - 23:47 #21
ja der ikke meget lydt tilbage, måske er det rigtig, men det lyder mærkeligt hvis det virkelig er sådan?
Avatar billede mik789 Nybegynder
18. januar 2004 - 23:48 #22
jeg lader lige sp. stå en dag eller to. det kan være at andre vil byde ind....
Avatar billede roenving Novice
19. januar 2004 - 01:22 #23
Hvis du laver en 'hent dog mit frameset'-kode, slipper du for de andre problemer ...

-- mit eget site er en simpel demonstration af dette:

http://roenving.users.whitehat.dk/WD5Opacity.html

Kig i adresselinjen, når du er kommet ind og se kode/forklaring ved at klikke på teksten nede til venstre !-)
Avatar billede mik789 Nybegynder
19. januar 2004 - 09:11 #24
roenving> ja, det trick kender jeg godt og bruger det også selv. Men du ved, der er denne her modvilje mod i det hele taget at bruge frames. Jeg ville bare vise at frames kan noget som andre design ikke kan.

Men den største ulempe ved frames er efter min mening ikke det med undersiderne (som du også har løst), men det at man ikke kan lægge indhold fra én frame ned over en anden uden at det bliver meget besværligt eller kringlet. Det begrænser brugen af dropdown menuer f.eks.
Avatar billede roenving Novice
26. januar 2004 - 02:55 #25
Det er da ik' li'e svært at scripte fra en frame til en anden ?-)

parent.frames["andenFrame"].document.getElementById("visFraAndenFrame").innerHTML="Dette kommer fra en anden frame";
Avatar billede mik789 Nybegynder
26. januar 2004 - 08:20 #26
roenving> jo, det kan man godt så længe du arbejder inden for rammerne af target-frame'en. Men hvis du vil lægge lag henover eller nedover flere frames (typisk dropdown menuer fra en top frame nedover en midterframe) vises lagene kun i den frame hvor de "hører hjemme" og forsvinder bag den anden frame. Man kan godt snyde på forskellig vis, men i princippet kan det da vist ikke lade sig gøre.
Avatar billede roenving Novice
28. januar 2004 - 06:01 #27
Det har du da ret i, derfor er der også en masse menu-scripts, som har specielle udgave, så dropdown-delen af menuen kan ligge i en anden (i)frame ...

Men lægge det delvis over kan de ikke !-)
Avatar billede mik789 Nybegynder
28. januar 2004 - 07:23 #28
roenving> tak for kommentarer... læg lige et svar, så deler du og voirsous så jeg kan lukke... der er vist ikke så meget mere kød på den her lige nu
Avatar billede roenving Novice
28. januar 2004 - 07:26 #29
Jamen velbekomme '-)

-- håber du har fået noget ud af det !-)
Avatar billede roenving Novice
28. januar 2004 - 07:50 #30
-- og tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester