Avatar billede floetti Nybegynder
08. september 2006 - 22:41 Der er 14 kommentarer og
1 løsning

height: inherit til at fylde hele parent div

Hej...

Vi har siddet her i hele dagen og prøvet at få en menu div til at fylde hele højden på en parent "main" div

<div id="main">
<div id="content">
Content
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<div id="menu"></div>
</div>
<div class="clear"></div>
<div id="footer">Footer</div>
</div>

Det er sådan at "menu" skal fylde lige så meget af "main" som "content" gør...

Vi har lavet det sådan:

#main {
height:auto;
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
}

#menu {
height:inherit;
width:160px;
float:left;
background-color:#CCCCCC;
border:1px solid #FF33CC;
}

#content {
width:596px;
height:auto;
float:right;
border:1px solid #FF33CC;
}

men det vil ikke - HVORFOR!!??
Avatar billede stenger Nybegynder
08. september 2006 - 23:03 #1
Dumt spørgsmål... men har i prøvet at sætte height:100% istedet for?
Avatar billede stenger Nybegynder
08. september 2006 - 23:03 #2
Eller læser jeg spørgsmålet forkert?
Avatar billede floetti Nybegynder
08. september 2006 - 23:05 #3
jo, det har vi prøvet men det virker ikke... alle mulige tricks har vi prøvet men intet fungerer :(
Avatar billede stenger Nybegynder
08. september 2006 - 23:09 #4
Der er da en slut-div for meget "</div>", er der ikke? Det kunne nok spille ind...

Prøv at slette </div> mellem menu og clear... ved ikke om det er det
Avatar billede floetti Nybegynder
08. september 2006 - 23:14 #5
nej, det er ikke ordenlig en fejl...

Der var lige noget som ik var med.

<div id="container">
    <div id="header">Head</div>
        <div id="footer">Bar</div>
        <div id="main">
            <div id="content">
              Content
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
            </div>
              <div id="menu"></div>
        </div>
        <div class="clear"></div>
        <div id="footer">Footer</div>
</div>
Avatar billede floetti Nybegynder
08. september 2006 - 23:15 #6
#container {
width: 780px;
background-color:#FFFFFF;
border:1px solid #CCCCCC;
text-align:left;
margin:0px auto 30px auto;
}

#top {
width: 760px;
height:20px;
/*background-color:#999999;*/
margin: 10px auto 5px auto;
border: 1px solid #99CC00;
}

#header {
width: 760px;
height:80px;
margin: 0px auto 5px auto;
border:1px solid #009933;
}

#footer {
width:760px;
height:25px;
/*border-top:1px solid #6633CC;*/
background-color:#999999;
border-top:1px solid #666666;
border-bottom:1px solid #666666;
margin:0px auto;
}

#main {
height:auto;
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
}

#menu {
height:inherit;
width:160px;
float:left;
background-color:#CCCCCC;
border:1px solid #FF33CC;
}

#content {
width:596px;
float:right;
border:1px solid #FF33CC;
}
Avatar billede floetti Nybegynder
08. september 2006 - 23:16 #7
dette sidste er hele css for disse div's
Avatar billede stenger Nybegynder
08. september 2006 - 23:20 #8
I har også prøvet at sætte position: ind? Har I sikkert...

Kan umiddelbart ikke se noget forkert, men måske andre kan!
Avatar billede stenger Nybegynder
08. september 2006 - 23:20 #9
I har prøvet at sætte position: absolute eller relative på nogle af elementerne og se hvad der så sker? Har I sikkert...

Kan ikke umiddelbart se noget, som skulle være galt, ihvertfald!
Avatar billede stenger Nybegynder
08. september 2006 - 23:21 #10
Og undskyld dobbelt-posten...computer fucker up!
Avatar billede mclemens Nybegynder
08. september 2006 - 23:30 #11
Det er en nitte - du skal bruge en tabel istedet
- eller et javascript men det er nok ikke optimalt ...

... Du kan måske også bare lade dem flugte kunstigt ved at kaste
en baggrundsfarve på hoveddiv'en cleare (af hensyn til FF) ... men
det fusk med bare at definere baggrunden fordrer så at det ene element
altid er højere eller ligeså højt som det andet - og at man ved hvilket
element der altid er det højeste ...







<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
#container {
width: 780px;
background-color:#FFFFFF;
border:1px solid #CCCCCC;
text-align:left;
margin:0px auto 30px auto;
}

#top {
width: 760px;
height:20px;
/*background-color:#999999;*/
margin: 10px auto 5px auto;
border: 1px solid #99CC00;
}

#header {
width: 760px;
height:80px;
margin: 0px auto 5px auto;
border:1px solid #009933;
}

#footer {
width:760px;
height:25px;
/*border-top:1px solid #6633CC;*/
background-color:#999999;
border-top:1px solid #666666;
border-bottom:1px solid #666666;
margin:0px auto;
}

#main {
height:auto;
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
background-color:#CCCCCC;
}

#menu {
width:160px;
float:left;
}

#content {
width:596px;
float:right;
border:1px solid #FF33CC;
background:#888888;
}

.clear{clear:both;}
</style>

</head><body>
<div id="container">
    <div id="header">Head</div>
        <div id="footer">Bar</div>
        <div id="main">
            <div id="content">
              Content
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
            </div>
              <div id="menu"></div>
        <div class="clear"></div>
        </div>
        <div id="footer">Footer</div>
</div>
</body></html>
Avatar billede mclemens Nybegynder
08. september 2006 - 23:35 #12
Og et eksempel med en tabel istedet:
( med en lille 1px bug rettet - IE specifik http://www.eksperten.dk/spm/730808)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
#container {
width: 780px;
background-color:#FFFFFF;
border:1px solid #CCCCCC;
text-align:left;
margin:0px auto 30px auto;
}

#top {
width: 760px;
height:20px;
/*background-color:#999999;*/
margin: 10px auto 5px auto;
border: 1px solid #99CC00;
}

#header {
width: 760px;
height:80px;
margin: 0px auto 5px auto;
border:1px solid #009933;
}

#footer {
width:760px;
height:25px;
/*border-top:1px solid #6633CC;*/
background-color:#999999;
border-top:1px solid #666666;
border-bottom:1px solid #666666;
margin:0px auto;
}

#main {
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
border-spacing:0px;
}

#main td{padding:0px;vertical-align:top;}

#menu {
width:160px;
background-color:#CCCCCC;
}

#content {
width:600px;
background:#888888;
}

</style>

<!--[if IE]><style type="text/css">#main{border-collapse:collapse;}</style><![endif]-->

</head><body>
<div id="container">
    <div id="header">Head</div>
        <div id="footer">Bar</div>
        <table id="main"><tbody><tr>
              <td id="menu">menu</td>
            <td id="content">
              Content
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
            </td>
        </tr></tbody></table>
        <div id="footer">Footer</div>
</div>
</body></html>
Avatar billede floetti Nybegynder
09. september 2006 - 00:17 #13
-> mclemens: Ja, sådan kan man også gøre det... ser ud til at være w3c standard, så det er godt nok, hvis det er den beste måde at gøre det på...
Avatar billede mclemens Nybegynder
09. september 2006 - 00:26 #14
Hvis det istedet skal ende med en height 100% løsning kan der fuskes med
http://www.eksperten.dk/spm/728614#rid6401693 , http://www.eksperten.dk/spm/729769#rid6409597 eller en af de andre løsninger som jeg har rodet rundt med eller har læggende i arkivet ... men det kan give grå hår afhængig af om der skal være elementer under de to kolonner eller afhængig af om man ikke ved hvad højde header og footer har ...

Her er lige et svar ;)

... Hvis der skal rodes med height 100% istedet er jeg først på pinden imorgen (måske først til aften) - men jeg ville selv vælge 08/09-2006 23:30:59 hvis jeg kunne ... dernæst 08/09-2006 23:35:54 - ved ikke om den ene px bug fix er nødvendig - men en px ikke altid et stort problem ... men hvis det er uden betydning så er det nok rettelse af:

#main {
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
border-spacing:0px;
}

til:

#main {
width: 760px;
margin: 0px auto 5px auto;
border:1px solid #FF33CC;
border-collapse:collapse;
}

og fjernelse af
<!--[if IE]><style type="text/css">#main{border-collapse:collapse;}</style><![endif]-->
Avatar billede mclemens Nybegynder
12. september 2006 - 12:40 #15
Tak for point :)
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