Gå til innhold

Hvordan dele en side i tre med div-er?


Anbefalte innlegg

Hvordan deler man en side i tre med div-er? Har allerede laget en div som heter innhold, men hvordan får jeg de to andre venstre og høyre div-ene mine til å bli på venstre og høyre side av innhold div-en?

 

Håper noen skjønner hva jeg mener :)

 

Takk!

Endret av phex
Lenke til kommentar
Videoannonse
Annonse

Er jo flere måter å gjøre det på, men jeg pløeier å bruke denne:

 

HTML

<div id="div1">
<p>Innhold</p>
</div>

<div id="div2">
<p>Innhold</p>
</div>

<div id="div3">
<p>Innhold</p>
</div>

CSS

#div1, #div2, #div3 {
position: absolute;
border: 1px solid black;  /* Bare for å se divene på siden */
}

#div1 {
left: 10px;
width: 200px;
}

#div2 {
left: 210px;
width: 400px;
}

#div3 {
left: 610px;
width: 200px;
}

 

Hjalp det deg noe?

Lenke til kommentar

Hvorfor gi så dårlige navn på id? Id bør være litt mer beskrivende enn det der, IMO... Også skjønner jeg ikke hvorfor du bruker absolutt posisjonering når du fint kan gjøre det med floats som er tusen ganger lettere..

 

#left { float: left; width: 150px; }
#content { float: left; width: 400px; }
#right { float: left; width: 200px; }
.clear { clear: left; }

 

Markup blir ca. det samme, bortsett fra at du må legge til et element som kan cleare de floatede elementene slik at de blir liggende slik du vil...

Lenke til kommentar
Hvorfor gi så dårlige navn på id? Id bør være litt mer beskrivende enn det der, IMO... Også skjønner jeg ikke hvorfor du bruker absolutt posisjonering når du fint kan gjøre det med floats som er tusen ganger lettere..

 

Er klar over det, men det var bare div1 osv for å vise.

Når det er sagt så synes jeg ikke divene skal gis navn etter hvor på siden de er plassert, men hva slags innhold de skal ha.

Dersom man skal endre oppsettet på siden, blir det mye enklere vist divene heter feks meny og innhold, og ikke høyre, venstre, midten, nede_til_venstre ol.

 

Når det gjelder position absolute, så kan det godt hende DU synes det er 1000 ganger enklere, men jeg like å bruke det, feks for å lettere kunne bestemme avstanden mellom divene ol. Dersom man feks vil at diven til høyre skal stå 50px lenger ned på siden enn de andre.

 

Men det er bare min mening.

Endret av travis_g
Lenke til kommentar
barer lurer, (for at jeg har problemer med å få det til):

hva om #content skal være dynamisk, sånn at den fyller hele siden med #left boxen på venstre siden og #right boxen på høyre side?

 

Lurer også på hvordan div'ene #left og #right kan få høyde lik #content når #content er mye lengre enn #left og #right.

 

Med en tabell skjer det jo av seg selv.

 

Noen som har en lett løsning på dette?

Lenke til kommentar

http://css.maxdesign.com.au/floatutorial/tutorial0916.htm

Ganske bra!

 

Denne jeg bruker:

CSS:

#menyleft,#content,#menyright,#footer {
overflow:hidden;
display:inline-block;
}
#menyleft,#content,#menyright {
float:left;
}
#menyleft {
width: 20%;
}
#content {
width:60%;
}
#menyright {
width:19.9%;
}
#footer {
clear:left;
width: 100%;
}

HTML:

<div id="menyleft">
Menyvenstre
</div>
<div id="content">
midten
</div>
<div id="menyright">
høyre
</div>
<div id="footer">
Footer med clear.
</div>

Vil du få alle 3 til å se like lange ut, legger du en div utenpå alt, og setter en bakgrunn. Fjern såklart bakgrunnen fra de andre divene.

 

EDIT: Fordelen med den her, er at den hverken bruker hacks eller andre ting, men er faktisk "god" kode. Samtidig kollapser den ikke.

[/edit]

 

Mer her:

http://www.alistapart.com/articles/fauxcolumns/

god artikkel om hvordan du kan få det til å se ut som at alle 3 divene er like lange!

 

 

EDIT: En litt rar måte kan være å lage 2 divs ved siden av hverandre, og så lage 2 divs til inni den ene :)

Endret av matsemann1
Lenke til kommentar
hmm, forsatt ingen som har svart på spørsmålet mitt.... :(

 

drit enkelt med tables da....

5679935[/snapback]

Du kan vel bruke en prosentverdi i den midterste DIV'en, og en fast verdi i de to på sidene (px).

Du må da ikke ha en wrapper rundt alle divene, da 80% i den midterste diven = 80% av bredden på wrapperen, og ikke bredden på selve nettleser vinduet.

Lenke til kommentar

problemet med 80% er at det ikke er hele siden... for at det varierer fra oppløsning til oppløsning. og #left og #right skal være faste.

 

@Jib

visste ikke at ditt innlegg var rettet mot meg, men uansett. det er samme problemet med det jeg finner på google, finner ikke noe med faste side venstre og høyre bokser...

Lenke til kommentar

Bare en liten ting. Jeg synes alle divene bør ha en fast gitt bredde, dette gjør at innholdet ser bra ut uansett oppløsning brukeren har dersom brukeren har en utrolig høy oppløsning: 1200x et eller aant. Husker ikke eksakte nå, vil siden se veldig forskjellig ut i forrhold til en som bruker 800x640, åpå grunn av bilder ol på siden.

 

Jeg vet dette er satt på spissen, men det er faktisk en del brukere som har 800x640 og 1200x1100.

Lenke til kommentar
Bare en liten ting. Jeg synes alle divene bør ha en fast gitt bredde, dette gjør at innholdet ser bra ut uansett oppløsning brukeren har dersom brukeren har en utrolig høy oppløsning: 1200x et eller aant. Husker ikke eksakte nå, vil siden se veldig forskjellig ut i forrhold til en som bruker 800x640, åpå grunn av bilder ol på siden.

 

Jeg vet dette er satt på spissen, men det er faktisk en del brukere som har 800x640 og 1200x1100.

5680189[/snapback]

det er derfor man ikke setter fast bredde på sida... det er nettopp derfor man bruker liquid layouts da... men hvis ting begynner å se dårlig ut ved 400px bredde setter du bare inn min-width:400px.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...