Avatar billede jannek_ek Nybegynder
16. september 2007 - 20:54 Der er 19 kommentarer

100% i forhold til et andet div

Jeg sidder og roder med en side, der skal variere efter sidens størrelse. Problemet er dog at den ikke skal gå helt ud i kanten.

Derfor har jeg bygget en div uden om selve designet, for at holde possitionerne på plads. Problemet er dog at de divs inde i det yderste div er relative i forhold til siden, og ikke i forhold til det yderste div.

Mit css: (kun det vigtigste)

body {
    background-color: #ebd8ff;
    margin: 0px;
    overflow: auto;
}
#mainDiv {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 800px;
    height: 600px;
}
#head {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 120px;
    background-image: url(gfx/headbg.gif);
}

Og html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sjælstjerne - The Heaven</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>
    <div id="mainDIv">
        <div id="content">
        </div>
        <div id="purpleLeft"></div>
        <div id="redRight"></div>
        <div id="bottom"></div>
        <div id="head"></div>
        <div id="purpleTop"></div>
        <div id="purpleBottom"></div>
        <div id="theHeaven">
            <img src="gfx/theheaven.gif" alt="The Heaven" /></div>
        <div id="yellow">
            <img src="gfx/yellow.gif" /></div>
        <div id="gg">
            <img src="gfx/gg.gif" /></div>
        <div id="leftBottom">
            <img src="gfx/leftbottom.gif" /></div>
    </div>
</body>
</html>

Så hvordan får jeg head og alle de andre divs til at holde sig inden for mainDiv?
Avatar billede herlevsen Nybegynder
16. september 2007 - 21:06 #1
fjern position tror jeg. Er ikke SÅ meget inde i css, men tror at den placerer din div uafhængigt af noget andet og den derfor behandles som om den ikke lå i maindiv. Er ikk sikker, bare et gæt!
Avatar billede jannek_ek Nybegynder
16. september 2007 - 21:33 #2
nej beklager .. de placere sig godtnok i forhold til yderste div, men de ligger sig bare under hinanden. jeg prøvede også at samlet hovedet i en div, men det virkede heller ikke
Avatar billede herlevsen Nybegynder
16. september 2007 - 21:57 #3
hvordan er det da meningen de skal placere sig?
Avatar billede Slettet bruger
16. september 2007 - 22:56 #4
kan du ikke smide siden paa nettet i stedet for? Det er altsaa meget nemmere at arbejde med end bare at have koden.
Avatar billede jannek_ek Nybegynder
16. september 2007 - 23:57 #5
Jo: http://noerwerk.dk/andet/side/

Det hele skal ligge inden for mainDiv, og da jeg måske laver mainDiv om til at have en variabel bredde, skal de mål, der står i procent fortsat værre i procent.
Avatar billede Slettet bruger
17. september 2007 - 10:02 #6
øh, hvilke div'er er der tale om? hvis de skal have noget indhold, kunne du så ikke tilføje noget sample tekst?
Avatar billede jannek_ek Nybegynder
17. september 2007 - 19:42 #7
det er content divet selve teksten skal stå i, og mainDiv, som alle de andre divs skal defineres ud fra.
Avatar billede Slettet bruger
18. september 2007 - 09:39 #8
så smid noget tekst ind i designet, så er det nemmere at se for os andre.

Dummy tekst kan findes her: http://www.lipsum.com/
Avatar billede jannek_ek Nybegynder
18. september 2007 - 18:53 #9
kan på ingen måde se hvordan det kan hjælpe ... men nu er der noget tekst...
Avatar billede Slettet bruger
18. september 2007 - 19:28 #10
Den flytter sig da fint nok (nogenlunde) i firefox.

Måske er dit problem at du anvender absolute positioner, der skal man hele tiden passe på med absolut i forhold til hvad.

Desuden, som siden er nu, hvis siden er kort, så passer tingene ikke sammen. Teksten løber under bunden (derfor er teksten en god ting at have med).

Hvorfor laver du ikke bare rammen omkring contents med en border? i stedet for at anvende billeder. En border og noget padding så har du jo samme effekt.
Avatar billede jannek_ek Nybegynder
18. september 2007 - 19:40 #11
jeg bruger ikke border her, fordi det ofte er besværligt at lave præcist i IE og FF på samme tid, da de placere dem forskelligt. Endvidere er der andre grafiske ting der gerne skulle passe til. pointen med at smide det inde i en anden div, var at den kunne udvide sig, når der kom mere tekst i.
Jeg har også ofte andvendt absolutte possitioner, hvor de har skulle holde sig inden for en div, men aldrig i forbindelse med "width: 100%"
Avatar billede Slettet bruger
18. september 2007 - 20:00 #12
Er du sikker på at det ikke er boksmodel problemer? quirksmode etc. Ikke at jeg ved noget om det, anvender ikke IE.

Din mainDiv har i hvert fald slet ikke noget at have sagt, du positionerer jo ikke noget i forhold til den.

Der er vist også en div for meget.

Jeg legede lige lidt med layoutet, dette virker da nogenlunde i FF

http://home.imf.au.dk/daleif/testarea2/gg/

Farver og størrelser passer ikke helt, men det havde jeg heller ikke lige tid til. GG billedet har jeg udkommenteret, da det har noget lilla baggrund.
Avatar billede jannek_ek Nybegynder
18. september 2007 - 20:20 #13
jo det ligner det jeg har lavet .. men det ligger stadig ikke inden for mainDiv!

kassen har en bredde på 800 og en højde på 600. Målne bliver sandsynligvis lavet om til min 700 i bredde, ellers 90% bred. og min 400 i højden, uden maks

Derfor skal siden kunne strække sig efter de mål mainDiv har
Avatar billede Slettet bruger
18. september 2007 - 21:17 #14
det kan du ikke!

det hele er absolut positioneret i forhold til body ikke i forhold til mainDiv!

du kan ikke have absolut positioneret en div og bagefter have relativ inden i den.

Saa maa man foerst have en ydre div som er absolut positioneret og saa have en indre div som har position relative

Jeg vil anbefale at du finder en anden maade at komponere dit layout
Avatar billede jannek_ek Nybegynder
18. september 2007 - 21:28 #15
http://bhtx.dk/

her er en side jeg har lavet vha absolutte positioner inde i et div ...
Jeg er sikker på at problemet ligger i at den tager 100% af hele sidens bredde, hvilket er underligt, når den normalt godt kan tage koordinater i forhold til den ydre div
Avatar billede olebole Juniormester
18. september 2007 - 21:28 #16
<ole>

Man kan sagtens have et relativt positioneret element i et absolut positioneret element - men resultatet bliver et andet end ved den omvendte positionering

/mvh
</bole>
Avatar billede olebole Juniormester
18. september 2007 - 21:30 #17
Relerne for absolut positionering er:

1) Et absolut positioneret element skal placerer sig i forhold til det første omkransende element, der er positioneret. Om dette så er positioneret relativt eller absolut betyder ikke noget.

2) Findes et omkransende, positioneret element ikke, skal elementet placere sig i forhold til body-elementet.
Avatar billede olebole Juniormester
18. september 2007 - 21:35 #18
Dette fungerer f.eks. fint:

<div style="position:absolute;left:200px;top:100px;width:700px;height:500px;background:yellow">
    <div style="position:relative;background:red">Hep</div>
    <div style="position:absolute;right:20px;bottom:50px;background:#ededed">Hep Hey</div>
</div>
Avatar billede jannek_ek Nybegynder
18. september 2007 - 21:39 #19
men ved du så hvad der sker når jeg regner bredden i procent i forhold til det omkransende element?
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