Avatar billede cubie Novice
14. januar 2010 - 10:27 Der er 7 kommentarer og
1 løsning

Dynamisk div på indhold

Hejsa

Jeg er lige ved at lave en hjemmeside, og css driller allerede fra start, så det bliver helt sikkert et godt projekt.

Men det er meget simpelt egentlig. Jeg skal have en 3 spalter, som jeg laver ud af 3 div's. Spalterne i  højre og venstre side skal have en fast bredde, men spalten i midten, skal fylde 100%, således at hvis enten højre eller venstre spalte er væk, så strækker den sig så meget den kan.

Problemet er, at content delen skubber sig selv ned under sidebar_left og sidebar_right flytter sig ned under content. De skulle helst stå ved siden af hinanden.

Her er hvad jeg har:

#container {
width:900px;
margin: 0 auto 0 auto;
}

#sidebar_left {
float:left;
width: 230px;
background-color: #fff;
}

#content {
float:left;
width:100%;
background-color: #fff;
}

#sidebar_right {
float:left;
width: 230px;
background-color: #fff;
}

----------
HTML:

<div id="container">
    <div id="sidebar_left"></div>
        <div id="content"></div>
        <div id="sidebar_right"></div>
</div>
Avatar billede stinejh1980 Nybegynder
15. januar 2010 - 09:33 #1
Du kan ikke med width på 100%.
Hvis du fjerner den virker floats.
Avatar billede cubie Novice
15. januar 2010 - 10:46 #2
Elvstine > Vil det sige, at det ikke kan lade sig gøre?
Avatar billede stinejh1980 Nybegynder
15. januar 2010 - 11:20 #3
Du kan øre noget idenne stil, men så flytter den sig ikke alt efter om venstre eller højre div er væk.

#container {
width:900px;
margin: 0 auto 0 auto;
}

#sidebar_left
{
    float: right;
    width: 230px;
    background-color: #CC33FF;
    position: absolute;
    z-index: 0;
    top: 0px;
    left: 0px;
    height: 100%;
}

#content
{
    position: absolute;
    float: left;
    background-color: #00FF00;
    z-index: 0;
    top: 0px;
    left: 230px;
    right: 230px;
    height: 100%;
}

#sidebar_right
{
    height: 100%;
    position: absolute;
    float: left;
    width: 230px;
    background-color: #CC33FF;
    z-index: 0;
    top: 0px;
    right: 0px;
}
Avatar billede stinejh1980 Nybegynder
15. januar 2010 - 11:21 #4
Jeg har lige tilføjet lidt, så jeg bedre kunne se det på min skærm.

Dine baggrundsfarver er også forkerte.
Hvis du vil have hvis baggrund skal du skrive #FFFFFF
Avatar billede cubie Novice
15. januar 2010 - 12:14 #5
Forslaget er udmærket, men det løser ikke helt problemet. Indholdet, content, skal nemlig bruge mere plads på enkelte sider, hvor right sidebar er væk. Derfor skal den strække sig. Men det lader ikke til, at css kan klare det.
Kunne løsningen være, at lave en stump kode, som siger, at IF sidebar er væk, så skal width være ekstra bred, ELSE skal den bare være normal?
Avatar billede stinejh1980 Nybegynder
15. januar 2010 - 14:29 #6
Nu ved jeg ikke lige hvad du koder i men jeg bruger ASP.NET og VB.NET.

Hvis du opbygger dit indhold dynamisk på alle side kunne du godt lave noget i denne stil.

Så kunne du lave 2 styles
#Content1 { styles som den jeg gav}
#Content2 {styles med 100% width }


Når du genererer dine elementer dynamisk (i mit tilfælde i codebehind) Så giver jeg den et ID=Content1 hvis den har alle 3 kolonner og ID=Content2 hvis kun venstre kolonne og content er tilstede.
Det betyder så at du ikke skal skrive
<div id="container" align="center">
    <div id="sidebar_left">left</div>
        <div id="content" class="content1">content</div>
        <div id="sidebar_right">right</div>
</div>
men lave det dynamisk
Avatar billede cubie Novice
15. januar 2010 - 15:09 #7
Det er det, som jeg går efter. Du får mange tak for den fine hjælp. Det har kastet lidt lys over det. Jeg er forresten i PHP.

Smid et svar, så får du point for denne.
Avatar billede stinejh1980 Nybegynder
18. januar 2010 - 08:13 #8
Godt jeg kunne hjælpe, du kan bare tage svar #1
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

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