Avatar billede virtualdurran Nybegynder
28. februar 2006 - 10:49 Der er 25 kommentarer og
1 løsning

Vis side i tabel

Jeg har følgende kode:

<table border="1" width="100%">
    <tr>
          <td colspan="3" height="50" align="Center">banner</td>
    </tr>
    <tr>
        <td rowspan="2" height="500" width="50">venstreMenu</td>
        <td height="30" align="Center">topMenu</td>
        <td rowspan="2" height="500" width="50">højreMenu</td>
    </tr>
    <tr>
        <td align="center" valign="middle" title="main">indhold</td>
    </tr>
</table>

i main, vil jeg gerne have vist siden side1.htm, som ligger i samme mappe som indexsiden. Derudover vil jger gerne have at hele min tabel følger størrelsen af siden, men den eneste der skal ændre størrelse, er main, altså der hvor jeg har mit indhold vist. Menuer og banner skal altid have samme størrelse.
Avatar billede virtualdurran Nybegynder
28. februar 2006 - 10:54 #1
Omformulering. Menuerne i siderne, skal selvfølgelig også blive længere, i takt med at "indholdsrammen" bliver længere.
Avatar billede milandt Nybegynder
28. februar 2006 - 11:56 #2
hvis du gerne vil have vist siden side1.htm i din main td, er der 3 måder at gøre det på:

en iframe: du skal definerer en fast højde, og det er relativt omstændigt at tilpasse højden af din iframe til højden af dit content. er content højere end iframen vil der blive vist en scrollbar

et frameste: det du beskriver lægger mest op til et frameset. det skulle være relativt simpelt at omsætte dit layout i en tabel til det samme layout i et frameset.

server-side include: hvis du har kendskab til asp eller php kan du før siden sendes til browseren inkludere side1.htm det sted du gerne vil have indholdet af denne vist. siden kommer til at fremstå som een side, så side1.html skal selvfølgelig ikke indeholde dictype, html og body element etc..
Avatar billede virtualdurran Nybegynder
28. februar 2006 - 12:56 #3
Jeg har valgt at bruge iframe i denne omgang, for jeg har ikke nok kendskab til asp endnu, og jeg vil lave en hjemmeside uden frames. Kender godt metoden med at bruge frame og så bare lave src="side1.htm". Når jeg så linker i min menu og bare vil have den til at smide siden ind i min main td, hvordan skal det link så se ud? lad os bare sige jeg skal have et link i stil med:
<a href="side1.htm">Forsiden</a>
Avatar billede virtualdurran Nybegynder
28. februar 2006 - 13:30 #4
Nååh, jeg fandt selv ud af det med at lave target til min iframe. Men jeg mangler stadigvæk at finde ud af hvordan jeg får min tabel til hele tiden at følge størrelsen på browservidnuet, så det ikke har noget at sige om man kører 800X600 eller 1280X1024. Noget du kan hjælpe mig med milandt?
Avatar billede milandt Nybegynder
28. februar 2006 - 14:02 #5
som sagt, det er rimeligt omstændigt, ved hjælp af javascript, at ændre højden på din iframe så den har samme højde som det content der ligger i den.

hvis du har lyst til at kaste dig ud i dette alligevel, så læs denne side, eller find lignende ved at spørge google:
http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm

i øvrigt er min holdning, at hvis grunden til at bruge en iframe er for at undgå at bruge et frameset, så er det en dårlig løsning. du opnår ikke større brugervenlighed eller gør din side lettere at indexere ved at bruge en iframe. tværtimod støder du ind i problemer som f.eks højden på iframen i dit tilfælde - noget et frameset ville løse - og det er præcis egenskaber fra et frameset eller server-side include du efterspørger. en iframe har nok sin berettigelse, men ville betegne den som den mindst egnede af de tre forslag jeg kom med.
Avatar billede virtualdurran Nybegynder
28. februar 2006 - 14:14 #6
Det er også min mening at hente siden ved brug af ASP, men jeg er endnu ikke god nok til at bruge asp.

Grunden til jeg ikker bruger frames, er at jeg vil lære mig selv at bruge tabels i stedet for. Jeg kan nemlig godt finde ud af at bruge frames allerede, men vil gerne være så alsidig som muligt :)
Avatar billede virtualdurran Nybegynder
28. februar 2006 - 14:16 #7
En af mine venner er en rimelig fornuftig hjemmeside programmør og han siger at det er at foretrække at man bruger tabels i stedet for frames. Har det noget på sig?
Avatar billede milandt Nybegynder
28. februar 2006 - 15:35 #8
tables kan ikke erstatte frames, men hvis man en af fordelene ved at bruge et frameset er at koden bliver lettere at vedligeholde, idet du kan have en side med din menu i en frame til venstre, en side med dit top-banner i en frame i toppen, og så dine content sider i en frame i midten.

nette kan man også opnå ved at bruge server-side includes, og så erstatte sit frameset med en tabel med tre td'er, en til menuen, en til toppen, og en til main content.

i asp skal du gøre følgende, for at inkluderer side1.html det sted du gerne vil have den indsat:

<table>
  <tr>
    <td>left menu</td>
    <td><!--#include file="side1.html"--></td>
  </tr>
</table>

der er ikke noget asp kode i ovenstående, men din side skal være en *.asp side for at <--#include file="..."--> virker.
Avatar billede milandt Nybegynder
01. marts 2006 - 10:25 #9
der er vist rimelig mange slåfejl i ovenstående? :)
Avatar billede mm12010 Nybegynder
02. marts 2006 - 09:45 #10
lidt info om ssi som er meget let at gå til: http://www.html.dk/tutorials/ssi/
Avatar billede virtualdurran Nybegynder
08. marts 2006 - 10:24 #11
har lavet min side om til frames. Men nu er der så bare det problem at selvom jeg laver frameborder til 0, forsvinder de alligevel ikke helt. Der er stadigvæk en hvid streg, hvilket ødelægger mit design temmelig meget. Hvordan får jeg den væk?
Avatar billede milandt Nybegynder
08. marts 2006 - 10:40 #12
du kan læse om frames her:

http://www.w3.org/TR/html4/present/frames.html#edef-FRAME

prøv at sætte marginwidth og marginheight til 0 også.
Avatar billede virtualdurran Nybegynder
08. marts 2006 - 11:30 #13
har læst og har også sat dem til 0. Det virker bare ikke.
Avatar billede milandt Nybegynder
11. marts 2006 - 14:37 #14
prøv at copy/paste koden fra dit frameset.
Avatar billede virtualdurran Nybegynder
15. marts 2006 - 08:38 #15
<frameset rows="120,*">
        <frame frameborder="0" noresize="" scrolling="no" name="banner" src="banner.htm">
        <frameset cols="150,*">
            <frame frameborder="0" noresize="" name="menu" src="vMenu.htm">
            <frame noresize="" frameborder="0" name="main" src="front.htm">
        </frameset>
      </frameset>

Således ser det ud.

Lige et spørgsmål til din ssi kode <!--#include file="side1.html"-->. Hvilket format skal siden gemmes i, før det virker?
Avatar billede milandt Nybegynder
15. marts 2006 - 13:40 #16
For at <!--#include file="side1.html"-->  virker efter hensigten skal pågældende side gemmes som .asp - der behøver dog ikke være noget andet asp kode i siden.

Det er også et krav at siden bliver vist fra en webserver - dvs at hvis du har dine sider liggende lokalt når du arbejder med dem, så skal du sætte din IIS (webserver) op til at siderne som et website. Alternativt kan du bare uploade dem til dit webhotel.

Med hensyn til dine borders i dit frameset, sæt frameborder="no" på dit frameset:

<frameset rows="120,*" frameborder="no">
    <frame scrolling="no" name="banner" src="banner.htm">
    <frameset cols="150,*">
        <frame name="menu" src="vMenu.htm">
        <frame name="main" src="front.htm">
    </frameset>
</frameset>
Avatar billede virtualdurran Nybegynder
16. marts 2006 - 00:26 #17
Når jeg nu har installeret IIS på min computer og bare har filerne liggende i mappen D:\min side\ Hvordan skal jeg så gøre for at få det vist? Bare gemme den som .asp og vise den? Det synes jeg nemlig ikke rigtig virker :S
Avatar billede milandt Nybegynder
16. marts 2006 - 01:02 #18
prøv at læse her: http://www.html.dk/tutorials/asp/lektion2a.asp

så burde det være lige til at komme igang.

du burde også kunne skrive http://localhost  og så se filerne der ligger i mappen C:\Inetpub\wwwroot

du kan sætte IIS op til at bruge D:\min side\ som root folder, så http://localhost viser dine filer derfra.
Avatar billede virtualdurran Nybegynder
16. marts 2006 - 15:58 #19
Hvordan definerer hvad for en mappe IIS bruger?
Avatar billede milandt Nybegynder
16. marts 2006 - 23:54 #20
Du åbner IIS'en og folder træstrukturen ud til venstre, til du finder det der hedder "Default web site", og højreklikker på det og vælger properties. I det vindue der åbner finder du fanebladet "Home directory", og der kan du sætte det der hedder "Local path" til at være der hvor du har dine websider liggende lokalt.

Fik du i øvrigt svar på dit oprindelige spørgsmål?
Avatar billede virtualdurran Nybegynder
27. marts 2006 - 19:29 #21
"Åbner IIS'en"...Hvordan? :D
Avatar billede milandt Nybegynder
27. marts 2006 - 23:10 #22
Du har ikke læst det her, vel? http://www.html.dk/tutorials/asp/lektion2a.asp

Hvis det hele bare er sort og ikke giver nogen mening, så tror jeg at jeg giver op. Beklager.
Avatar billede virtualdurran Nybegynder
05. april 2006 - 09:03 #23
Det er det ikke. Du kunne jo bare have sagt jeg skulle gå ind i Administration for at ændre det! :D
Avatar billede virtualdurran Nybegynder
06. april 2006 - 15:58 #24
Nååh...skulle der aldrig uddeles nogle point sys du!? :D
Avatar billede milandt Nybegynder
07. april 2006 - 09:52 #25
jeg plejer ikke at ligge et svar før spørger beder mig om det
Avatar billede virtualdurran Nybegynder
18. april 2006 - 13:16 #26
Hehe...det skal jeg da huske frem over! :D
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