Avatar billede Slettet bruger
20. august 2006 - 00:15 Der er 7 kommentarer og
1 løsning

Position : absolute og underliggende divs der floates

Hejsa.

Kan det lade sig gøre at arbejde med både position : absolute på fx. en top div, samt floate underliggende divs i dokumentet?

Lige nu ryger de underliggende divs op under toppen når jeg forsøger dette, men måske har jeg overset noget.

Koden til mine divs er som følger:

#containerTop {
position : absolute;   
background-color : #99CC99;
}

#topLeft {
    float : left;
    width : 36%;
    padding : 2%;
    background-color : #99CC99;
}

#topRight {
    float : right;
    width : 30%;
    height : 100px;
    padding : 0;
    border-left : solid 1px #ffffff;
    text-align : left;
    color : #ffffff;
    background-color : #CCFF99;
}

#topBottom {
    width : 98%;
    clear : both;
    padding-right : 2%;
    border-top : solid 1px #CCFF99;
    text-align : right;
    background-color : #000000;
    color : #ffffff;
}

#contentLeft {
    float : left;
    width : 70%;
    background-color : #CCFF99;
}

#contentRight {
    float : right;
    width : 28%;
    padding : 0.5%;
    padding-top : 1%;
    background-color : #cccccc;
}

Ovenstående og nedenstående er en forenkling da der mangler nogle divs, men bør vise strukturen på siden.

Min kildekode ser således ud:

<div id="containerTop">
<div id="topLeft">Noget tekst...</div>
<div id="topRight">Testing</div>
<div id="topBottom">Dette er en test</div>
</div>

<div id="contentLeft"></div>
<div id="contenRight"></div>

Jeg spørger fordi jeg gerne vil have placeret min top under de to andre divs i selve kildekoden pga. optimering til søgemaskinerne, men selvfølgelig stadig vil have toppen vist foroven.

Med venlig hilsen,
Thomas
Avatar billede mclemens Nybegynder
20. august 2006 - 00:53 #1
Hvis du kender størrelsen på din top kan du med css - ved at pille ved margin-top ... eller ved at placere dine float som absolute istedet... her er lige eksemplet med margin-top ...



<!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">
html,body{margin:0px;padding:0px;}

#containerTop {
position : absolute;
top:0px;left:0px;
background-color : #99CC99;
}

#topLeft {
    float : left;
    width : 36%;
    background-color : #99CC99;
}

#topRight {
    float : right;
    width : 30%;
    height : 100px;
    border-left : solid 1px #ffffff;
    text-align : left;
    color : #ffffff;
    background-color : #CCFF99;
}

#topBottom {
    width : 98%;
    clear : both;
    padding-right : 2%;
    height:20px;
    border-top : solid 1px #CCFF99;
    text-align : right;
    background-color : #000000;
    color : #ffffff;
}

#contentLeft {
    margin-top:125px;
    float : left;
    width : 70%;
    background-color : #CCFF99;
}

#contentRight {
    margin-top:125px;
    float : right;
    width : 28%;
    padding : 0.5%;
    padding-top : 1%;
    background-color : #cccccc;
}
</style>

</head><body>

<div id="contentLeft">a</div>
<div id="contentRight">a</div>


<div id="containerTop">
<div id="topLeft">Noget tekst...</div>
<div id="topRight">Testing</div>
<div id="topBottom">Dette er en test</div>
</div>
</body></html>
Avatar billede mclemens Nybegynder
20. august 2006 - 00:58 #2
En med position absolute


<!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">
html,body{margin:0px;padding:0px;}

#containerTop {
position : absolute;
top:0px;left:0px;
background-color : #99CC99;
}

#topLeft {
    float : left;
    width : 36%;
    background-color : #99CC99;
}

#topRight {
    float : right;
    width : 30%;
    height : 100px;
    border-left : solid 1px #ffffff;
    text-align : left;
    color : #ffffff;
    background-color : #CCFF99;
}

#topBottom {
    width : 98%;
    clear : both;
    padding-right : 2%;
    height:20px;
    border-top : solid 1px #CCFF99;
    text-align : right;
    background-color : #000000;
    color : #ffffff;
}

#contentLeft {
    position:absolute;top:120px;left:0px;
    width : 70%;
    background-color : #CCFF99;
}

#contentRight {
    position:absolute;top:120px;right:0%;
    float : right;
    width : 29%;
    padding : 0.5%;
    padding-top : 1%;
    background-color : #cccccc;
}
</style>

</head><body>

<div id="contentLeft">a</div>
<div id="contentRight">a</div>


<div id="containerTop">
<div id="topLeft">Noget tekst...</div>
<div id="topRight">Testing</div>
<div id="topBottom">Dette er en test</div>
</div>
</body></html>
Avatar billede mclemens Nybegynder
20. august 2006 - 01:00 #3
- Sidste alternativ er et javascript der "rykker" dem ned onload ... og det er det mindst optimale...
Avatar billede mclemens Nybegynder
20. august 2006 - 01:03 #4
Et alternativ til det i 20/08-2006 00:53:58 er at sætte margin-top på body istedet for de 2 div's...






<!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">
html,body{margin:0px;padding:0px;}
body{margin-top:120px;}

#containerTop {
position : absolute;
top:0px;left:0px;
background-color : #99CC99;
}

#topLeft {
    float : left;
    width : 36%;
    background-color : #99CC99;
}

#topRight {
    float : right;
    width : 30%;
    height : 100px;
    border-left : solid 1px #ffffff;
    text-align : left;
    color : #ffffff;
    background-color : #CCFF99;
}

#topBottom {
    width : 98%;
    clear : both;
    padding-right : 2%;
    height:20px;
    border-top : solid 1px #CCFF99;
    text-align : right;
    background-color : #000000;
    color : #ffffff;
}

#contentLeft {
    float : left;
    width : 70%;
    background-color : #CCFF99;
}

#contentRight {
    float : right;
    width : 28%;
    padding : 0.5%;
    padding-top : 1%;
    background-color : #cccccc;
}
</style>

</head><body>

<div id="contentLeft">a</div>
<div id="contentRight">a</div>


<div id="containerTop">
<div id="topLeft">Noget tekst...</div>
<div id="topRight">Testing</div>
<div id="topBottom">Dette er en test</div>
</div>
</body></html>
Avatar billede mclemens Nybegynder
20. august 2006 - 01:09 #5
muligvis skal det være padding-top på body tagget istedet... afhængig af dit design ... og der skal nok lige kastes noget padding på de andre elementer - og måske rykkes lidt fra toppen ... men svaret på spørgsmålet er:

[ Kan det lade sig gøre at arbejde med både position : absolute på fx. en top div, samt floate underliggende divs i dokumentet? ] Hvis du kender din height på din top kan det sagtens ved placering af float med noget padding eller margin top ... eller ved at placere dem med absolute istedet... Hvis du ikke kender højden så skal der er javascipt til for at måle højden og så placere elementet under toppen istedet ...
Avatar billede Slettet bruger
20. august 2006 - 02:43 #6
Hejsa.
Fint, det virker fint med det første eksempel. Og mange tak for din indsats med de mange indlæg!

Dog har jeg et lille problem. Jeg kan tilsyneladende ikke arbejde med en % højde på toppen og lave en % margin på de underliggende divs. Der laves et gab mellem toppen og de underliggende divs og hele siden bliver tilsvarende længere ud over de 100% højde på dokumentet.
Avatar billede roenving Novice
20. august 2006 - 06:50 #7
Måske er det at arbejde med 'skygge'-elementer, du mangler, prøv f.eks. at kigge på mit eksempel i http://www.eksperten.dk/spm/520876 !-)
Avatar billede mclemens Nybegynder
20. august 2006 - 12:28 #8
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior Data Engineers til dataplatform i Forsvaret

Capgemini Danmark A/S

AI/Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til lokal IT støtte i Oksbøl