Avatar billede moejensen Nybegynder
26. september 2004 - 16:25 Der er 8 kommentarer og
1 løsning

højde på indholds div i laypot med fast top og bund

Jeg har følgende css:

@charset "ISO-8859-1";
@media screen {
    body>#top { position:fixed; }
    body>#bottom { position:fixed; }
}

html, body {
    margin:0px;
}

#top {
    width: 760px;
    height: 100px;
    border: solid black 1px;
    position:absolute;
    top:5;
    left: 50%;
    margin-left: -380px;
}
#menu {
    position:absolute;
    top: 110px;
    left: 50%;
    margin-left: -380px;
    width: 760px;
    height: 30px;
    background-color: #ffffff;
    border: solid black 1px;
}

#main {
    position:absolute;
    top: 145px;
    left: 50%;
    margin-left: -380px;
    overflow: auto;
    padding: 5px;
    background-color: #ffffff;
    width: 760px;
    border: solid black 1px;
}

#bottom {
    width: 760px;
    height: 20px;
    background-color: #ffffff;
    border: solid black 1px;
    position:absolute;
    bottom:0;
    left: 50%;
    margin-left: -380px;
    margin-bottom: 5px;
}

og følgende HTML:

<body background="/Templates/skabelon/bg.jpg">
    <div id="top">top</div>
    <div id="menu">menu</div>
    <div id="main"><!-- Content --></div>
    <div id="bottom">bund</div>
</body>

Jeg mangler en måde hvorpå min main fylder hele mellemrummet ud mellem menuen og bunden, og hvis indholdet er større, så kommer der scroller på. Jeg kan bare ikke helt få det til at virke.
Avatar billede -zonic- Nybegynder
26. september 2004 - 16:28 #1
hvis du skal have det til at virke med scroll kun i dit main indhold bliver du nok nødt til at bruge iframe til den slags :)
Avatar billede roenving Novice
26. september 2004 - 16:33 #2
Avatar billede moejensen Nybegynder
26. september 2004 - 16:37 #3
nej det kan normalt gøres med overflow: auto;, men jeg skal lige have styr på højden.
Avatar billede moejensen Nybegynder
26. september 2004 - 16:43 #4
roenving --> det ser rigtig godt ud, men når jeg sætter overflow på, så går det lidt galt, for så er scrollen bag nogle af de andre felter i bunden og toppen
Avatar billede roenving Novice
26. september 2004 - 16:45 #5
Ja, det er rigtigt, men alternativet er at sætte højden via javascript, ved at aflæse vindueshøjden og trække det fra, top og bund fylder onload ...
Avatar billede moejensen Nybegynder
26. september 2004 - 16:57 #6
okay, hvordan gør jeg det med javascript? og vil det virke i alle browsere?
Avatar billede roenving Novice
26. september 2004 - 17:13 #7
F.eks.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hold højden</title>
<meta name="Generator" content="Stone's WebWriter 4">
<style type="text/css">
html,body {
    margin:0px;
    padding:0px;
    height:100%;
}
#topbar {
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 20px;
    background-color:#24A520;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #FFFFFF;
    font-weight:bold;
    font-size: 14px;
}
#logobar {
    position: relative;
    left: 0px;
    top: 1px;
    width: 100%;
    height: 45px;
    background-color:#D4D0C8;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:bold;
    font-size: 16px;
}
#personalmenubar {
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color:#b1b19f;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #24A520;
    font-weight:bold;
    font-size: 14px;
}
#rightmenu {
    position: relative;
    TOP: 3px;
    left: 0px;
    width:120px;
    float: left;
    background-color:#D4D0C8;
    padding-left: 5px;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:none;
    font-size: 14px;
}
#content {
    position: relative;
    top: 3px;
    left: 10px;
    float:left;
    background-color: #FF80C0;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:none;
    font-size: 14px;
}
#bottombar {
    clear:left;
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color:#b1b19f;
}
</style>
<script type="text/javascript">
var divs = ['content','rightmenu'];
var faste = ['topbar','logobar','personalmenubar','bottombar']
function syncronizeDivs(){
    document.getElementById('content').style.width = document.body.offsetWidth - 135 + 'px';
    var maxH = document.body.offsetHeight ;
    d = document.getElementsByTagName("DIV");
    for(i=0;d.length>i;i++){
        for(j=0;faste.length>j;j++){
            if(d[i].id==faste[j])maxH -= d[i].offsetHeight;
        }
    }
    for(i=0;d.length>i;i++){
        for(j=0;divs.length>j;j++){
            if(d[i].id==divs[j])maxH = Math.max(maxH,d[i].offsetHeight);
        }
    }
    for(i=0;d.length>i;i++){
        for(j=0;divs.length>j;j++){
            if(d[i].id==divs[j])d[i].style.height=maxH + 'px';
        }
    }
}
</script>
</head>
<body onload="syncronizeDivs()">
<div id="topbar">
Hold højden
</div>
<div id="logobar">
</div>
<div id="personalmenubar">&nbsp;
</div>
<div id="rightmenu">
Menu<br><br>
</div>
<div id="content">
Indhold <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</div>
<div id="bottombar">&nbsp;
</div>
</body>
</html>
Avatar billede moejensen Nybegynder
26. september 2004 - 17:49 #8
takker,

jeg har lavet funktionen om til det følgende:

function syncronizeDivs(){
  var maxH = document.body.offsetHeight ;
    maxH = maxH - 180
    document.getElementById('main').style.height = maxH + 'px';
}

og det virker helt pergekt i IE, men i NS og opera der går lidt galt.
Avatar billede moejensen Nybegynder
08. oktober 2004 - 14:24 #9
lukker
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