Avatar billede mik789 Nybegynder
03. oktober 2001 - 18:14 Der er 12 kommentarer og
1 løsning

positioning af en tabel

Spørgsmål 1:
kan man fiksere en tabel absolut på siden v.hj.a. postion:absolute og angivelser for bottom? kan man gøre det med henvisning til selve tabellen eller skal man neste tabellen i <span> eller <div>? kunne man f.eks. gøre sådan:
<style>
.postition {
position:absolute; bottom:50px;
}
</style>
</head><body> osv. ....

<table border, cellpadding osv.... class=\"position\">

eller:

<span class=\"position\"><table osv.> ... </table></span>

Spørgsmål 2:
Det drejer sig om at jeg vil have tabellens bund fikseret i forhold til toppen af siden. Men kan man overhovedet det? Iflg. CSS2 reference, www.w3schools.com/css/css_positioning.asp, angiver  position:bottom hvordan bunden af et element er placeret i forhold til _bunden_ af siden: it \"Sets how far the bottom edge of an element is above/below the bottom edge of the parent element\" og i de eksempler der gives er parent altid \"the document\". Men hvordan kender man positionen af dokumentets bund? Positionen af toppen er jo bare 0 (hvis topmargin er sat til 0), men hvordan ved man hvad dokumentets bund-position er?
Avatar billede jakoba Nybegynder
03. oktober 2001 - 18:23 #1
Du skal skelne meget klar imellem hvilke positioner du ønsker at kende.

lad os sige du laver din tabel 200px bred og 400px høj (bare som eksempel)
så laver du et dokument der fylder 800 px i højden.
og placerer din tabel så den begynder ved 600px.

hvad er det for en bund-position du vil have. 800px eller 1000px?
Avatar billede mik789 Nybegynder
03. oktober 2001 - 19:27 #2
tabellen skal stå med bunden på præcis 512px fra toppen af dokumentet (med topmargin=0).

hvordan laver man et dokument med en bestemt højde? angiver højde for <BODY> eller hvad?
Avatar billede jakoba Nybegynder
03. oktober 2001 - 19:38 #3
du kan fylde dokumentet med en relativ <div og give den div en højde

<body>
<div style=\"position:relative; height:800\">

her skriver du så dit dokument såænge det ikke er over 800px højt vil dokumentet blive fyldt ud med baggrund ned til 800px

Hvis det er for højt vil div-en flyde over og dokumentet blive det længere.

tabellen kan du så placere på en absolut <div indeni:
  <div style=\"position:absolute; top:512\">
    <table ...

    </table>
  </div>

</div
<body>

Avatar billede mik789 Nybegynder
03. oktober 2001 - 21:42 #4
jakoba> der er flere ting jeg har svært ved at forstå her.

1: forskellen på relativ og absolut - hvordan kan en div være relativ, når der angives en præcis højde, og den div omspænder hele dokumentet?

2: hvis jeg fastsætter tabellens placering med angivelsen: top:512, så er det jo toppen af tabellen jeg placerer 512px fra toppen af dokumentet, det er ikke bunden af tabellen jeg får placeret.

pointen er at jeg kun vil have placeret bunden af tabellen fordi jeg vil have at hvis den \"udvider sig\" i nogles browsere, så udvider den sig kun opad (hvilket jeg så giver plads til). sagen er at tabellen skal stå i en bestem højde i forhold til baggrundsbilledet på siden. problemet med absolut position er vel at finde balancen mellem at elementerne er placeret hvor man vil have dem, og samtidig tage højde for at de kan have lidt forskellig størrelse i forskellige browsere og browserversioner. Det virker ulogisk at fastsætte position fra bunden af dokumentet, fordi en webside jo altid arbejder sig nedad: man fylder den med elementer oppe fra og ned. Men OK, hvis det er den eneste måde man kan placere bunden af et element præcist, så er det det jeg må prøve.
Avatar billede jakoba Nybegynder
03. oktober 2001 - 22:06 #5
en \'relativ\' html kommando er er der placeres der hvor man er kommet til i tegningen af siden. Det er det normale. siden den relative <div i eksemplet står lige efter body bliver den tegnet alleørverst på siden.

en \'absolut\' html kommando tegnes der hvor man siger den skal tegnes. Hvis der står noget der i forvejen tegnes den blot oveni. så man skal passe på det kan nemt blive grimt.

Jeg havede ikke ganske fattet det der med at bunden af tabellen skulle være fixeret. Men det kan gøres for sådan en \'absolut\' placeret kommando kan der flyttes rundt på bagefter:

<script language=\'javascript\'> <!--

var ns4 = (document.layers)?1:0;
var dom = (document.getElemetById)?1:0;
var ie = (document.all)?1:0;

function placerTabel( ) {
    var el
    if ( dom ) el = document.getElementById( \'abslag\' (
    else
    if ( ie ) el = document.all[ \'abslag\' ]
    else el = document.layers[ \'abslag\' ];
    if ( ns4 )
        el.top = 512-el.document.height
    else
        el.style.top = 512-parseInt(el.offsetHeight);
}; //end placerTabel( )


// --> </script>

det absolut placerede lag skal så have et navn og et id:

  <div style=\"position:absolute; top:0\" name=\'abslag\' id=\'abslag\'>

og i dokumentes <body kommando placerer du en onload:

<body ... onload=\"placerTabel()\">

så skulle tabellen placere sig korrekt når siden hentes.

mvh JakobA
Avatar billede jakoba Nybegynder
03. oktober 2001 - 22:07 #6
Ups. sidste parentes i  if (dom ...  linien vender den gale vej
    if ( dom ) el = document.getElementById( \'abslag\' )
Avatar billede mik789 Nybegynder
03. oktober 2001 - 22:40 #7
jakoba> OK, så forstår jeg det med relativ/absolut. tak skal du ha\'! - det vil prøve.

hvor skal scriptet placeres i html koden? (har ikke arbejdet med script før, kun med html og css - én ting ad gangen ;-)
Avatar billede jakoba Nybegynder
03. oktober 2001 - 23:57 #8
scriptet (fra og med <script  og til og med </script>
placeres foroven i din htmlfil foran din </head> kommando

mvh JakobA
Avatar billede mik789 Nybegynder
04. oktober 2001 - 15:27 #9
jakoba> jeg lærte en masse, men enten virker det bare ikke, eller jeg har ikke gjort det rigtigt. det ser i hvert fald ud af .... i alle browsere. de placerer tabellen forskelligt, men alle forkert og oven i noget andet. har i stedet forsøgt at indlejre alle tabellerne i en med den rigtige højde i forhold til baggrunden. det funker i IE og NS 6 men kun nogen lunde i NS 4.x.

hvis man vil organisere siden i forhold til et baggrundsbillede så at bestemte elementer står ud for bestemte dele af billedet, hvordan er det så den bedste måde at gøre det på? kan man i stedet lade billedet være baggrund for en tabel der omslutter alt andet og så fjerne marginer på siden. (har problemer med det i NS 4.x, se: http://www.eksperten.dk/spm/117160 ). Men vil tabeller inden i denne ydre tabel være transparente så billedet virker som et baggrundsbillede?
Avatar billede jakoba Nybegynder
04. oktober 2001 - 15:45 #10
Hvis du lægger det ud på nettet et sted og lægger et link kan vi evt debugge lidt.
Som du nok har bemærket sker det nu og da at der kommer stavefejl og lignende brok i eksemplerne :-))

tak for points.

mvh JakobA
Avatar billede mik789 Nybegynder
04. oktober 2001 - 17:01 #11
jakoba> her er det:

http://www.hum.sdu.dk/projekter/dahr

Jeg vil være lykkelig for kommentarer!
Avatar billede jakoba Nybegynder
04. oktober 2001 - 17:23 #12
lav om i din flag klasse
.flag {
      position:relative; margin-left:493;
      }

og sæt klassen i billedet istedet for at sætte <div eller <span udenom

du skal nok justere lidt på tallet 493.

mvh JakobA
Avatar billede jakoba Nybegynder
04. oktober 2001 - 17:32 #13
Det er meget nemmere uden styles. glem den style .flag

<span><IMG SRC=\"../gennemsigtig.gif\" BORDER=\"0\" WIDTH=\"130\" HEIGHT=\"1\"></span><a href=\"english/index.html\" onFocus=\"this.blur()\"><img src=\"images/uk16.gif\" alt=\"In English, please!\" border=\"0\" width=\"32\" height=\"16\"></a>
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