Avatar billede jelboen Nybegynder
06. august 2008 - 10:12 Der er 13 kommentarer og
1 løsning

flydende DIVs i vertikal retning

Hej eksperter

Jeg er er også hoppet med på DIV bølgen. De kloge siger jo at det er mere korrekt at bruge end tables, når det kommer til opbygning af design. Jeg har brugt en tutorial fra http://www.devarticles.com/c/a/Web-Style-Sheets/DIV-Based-Layout-with-CSS/7/

Det er sådan at jeg har tænkt mig at designet skal se ud når jeg har fået skåret photoshop billederne ud. Hvor jeg førhen ikke havde noget problem ved at bruge tables, som er uhyre nemme at styre, så er jeg løbet ind i en del problemer ved divs. Jeg synes at det er sådan nogle underlige løsninger. Men nu til det rigtige problem.

Jeg vil have at min "footer" altid smider sig i bunden af browseren, og hvis der er ikke er nok indhold på siden, så trækker den bare siden ned, således at browseren altid er fyldt ud, og har en bar i bunden. Jeg har lavet det i sin tid på www.klippegavekort.dk med tables. her klister indholds siden og højre side sig til bunden af browseren uanset hvad. Det er samme effekt jeg vil opnå med DIVs, dog skal indhold og højre side klistre sig til footer siden, som så altid er placeret i bunden.
I øvrigt ville jeg gerne have hele designet centreret

Jeg har ændret eksemplet fra tutorial siden som jeg mener at man burde gøre det (mere krævede tables ikke), men alle divs flyder bare oven i hinanden.
Mit design ser ud som følgende:

<html>
<head>
<title>TWO-COLUMN LIQUID LAYOUT WITH FLOATING BOXES</title>
<style type="text/css">
<!--
body {
  margin: 0px;
  padding: 0px;
}
#header {
  background: #0f0;
  width: 750px;
}
#rightcol {
  background: #f00;
  float: left;
  width: 200;
  height: 100%;
}
#content {
  background: #fff;
  float: right;
  width: 500;
  height: 100%;
}
#footer {
  background: #0f0;
  clear: both;
  width: 750px;
  height: 100px;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="righttcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
</body>
</html>
Avatar billede jelboen Nybegynder
06. august 2008 - 10:20 #1
Jeg kan egentlig godt se at det ikke giver så meget mening. jeg beder jo min content og højrecol divs om at "flyde" til højre og venstre, de skal vel egentlig flyde mod bund.
Avatar billede w13 Novice
06. august 2008 - 10:21 #2
width: 200;
skal være:
  width: 200px;

og:
  width: 500;
skal være:
  width: 500px;

Derudover kan du ikke regne med noget, før du har indsat en gyldig doctype i allerførste linje.

Desuden har du kaldt højre kolonne for "rightcol" i dit CSS, men du har sat id="righttcol", dvs. med 2 T'er.

Prøv f.eks.:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TWO-COLUMN LIQUID LAYOUT WITH FLOATING BOXES</title>
<style type="text/css">
<!--
body {
  margin: 0;
  padding: 0;
}
#header {
  background: #0f0;
  width: 750px;
}
#rightcol {
  background: #f00;
  float: left;
  width: 200px;
  height: 100%;
  border:1px solid yellow;
}
#content {
  background: #fff;
  float: right;
  width: 500px;
  height: 100%;
  border:1px solid red;
}
#footer {
  background: #00f;
  clear: both;
  width: 750px;
  height: 100px;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
</body>
</html>
Avatar billede w13 Novice
06. august 2008 - 10:21 #3
Det giver nok mere mening, hvis du sætter float:left; på din #content i stedet for float:right;
Avatar billede w13 Novice
06. august 2008 - 10:22 #4
Hov, "border:1px solid yellow;" og "border:1px solid red;" var bare for at teste. De linjer kan du bare slette.
Avatar billede w13 Novice
06. august 2008 - 10:25 #5
Her har jeg også sat height: 100%; på både html og body:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TWO-COLUMN LIQUID LAYOUT WITH FLOATING BOXES</title>
<style type="text/css">
<!--
html,body {
  height: 100%;
  margin: 0;
  padding: 0;
}
#header {
  background: #0f0;
  width: 750px;
}
#rightcol {
  background: #f00;
  float: left;
  width: 200px;
  height: 100%;
}
#content {
  background: #fff;
  float: left;
  width: 500px;
  height: 100%;
}
#footer {
  background: #00f;
  clear: both;
  width: 750px;
  height: 100px;
}
-->
</style>
</head>
<body>
<div id="header">Header Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
</body>
</html>
Avatar billede jelboen Nybegynder
06. august 2008 - 10:40 #6
Wow det gik også meget stærkt da jeg lige skulle give et "eksempel". Jeg sad og legede lidt frem og tilbage med det igår. Der er en del fejl i koden ja. Din kode er fin :D - og virker også okay, men hele designet er tænkt som at være en bestemt bredde (750px), og lige nu flyder content og rightcol i hver deres retning. contents venstre side skulle gerne flugte med venstre side af headeren. ligeledes skulle rightcols højre side gerne flugte med højre side af headeren. hvorfor kan jeg scrolle når der ikke er noget indhold? - footeren burde jo bare klistre sig til bunden. men den tager vel contents 100% højde og smider yderligere footerens 100px højde på?
Avatar billede jelboen Nybegynder
06. august 2008 - 10:40 #7
tak for hurtigt svar i øvrigt :D
Avatar billede w13 Novice
06. august 2008 - 10:43 #8
Det er lige præcis, hvad footer gør, ja. :)

For alt det der med at få elementerne til at flugte, så kan det være en god idé at smide alle dine div-elementer i ét omkransende div-element, som har en bestemt bredde/højde. På den måde kan de forskellige underelementer tilpasse sig dens størrelse.

Lige nu har #rightcol en float: left; men det burde vel være en float: right; ? :)
Avatar billede jelboen Nybegynder
06. august 2008 - 11:17 #9
Argh... du er skarp :P
Hmm en omkransende DIV er nok en god idé, ligesom det også være nødvendigt med tables. Måske DIVs er okay at styre alligevel :P. Denne her gang er er den næsten korrekt. Jeg mangler at få centreret min container div og det med 100% højde driller stadig. Jeg smider lige min kode igen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TWO-COLUMN LIQUID LAYOUT WITH FLOATING BOXES</title>
<style type="text/css">
<!--
html,body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#globalcontainer {
  background: #0f0;
  width: 750px;
  height: 100%;
  float: center;
}
#header {
  background: #0f0;
  width: 750px;
  height: 100px;
}
#rightcol {
  background: #f00;
  float: right;
  width: 200px;
  height: 100%;
}
#content {
  background: #fff;
  float: left;
  width: 550px;
  height: 100%;
}
#footer {
  background: #00f;
  clear: both;
  width: 750px;
  height: 100px;
}
-->
</style>
</head>
<body>
<div id="globalcontainer">
<div id="header">Header Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
<div/>
</body>
</html>
Avatar billede jelboen Nybegynder
06. august 2008 - 11:19 #10
jeg aner ikke om der er noget der hedder float: center :D - jeg kunne godt bruge noget dokumentation på DIVs.. Det er jo et helt nyt univers for mig. jeg har stadig ikke fundet ud af hvorfor at de er mere smarte end Tables :P
Avatar billede w13 Novice
06. august 2008 - 11:43 #11
Prøv at se min kommentar: http://www.eksperten.dk/spm/840631#rid7172961

Hvad skulle du bruge float:center; til? Hvis du vil centrere et element, så brug margin: auto; og hvis du vil centrere dets indhold så text-align: center;
Avatar billede w13 Novice
06. august 2008 - 11:51 #12
Dette centrerer designet vha. margin: auto;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TWO-COLUMN LIQUID LAYOUT WITH FLOATING BOXES</title>
<style type="text/css">
<!--
html,body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#globalcontainer {
  background: #0f0;
  width: 750px;
  height: 100%;
  margin: auto;
}
#header {
  background: #0f0;
  width: 750px;
  height: 100px;
}
#rightcol {
  background: #f00;
  float: right;
  width: 200px;
  height: 100%;
}
#content {
  background: #fff;
  float: left;
  width: 550px;
  height: 100%;
}
#footer {
  background: #00f;
  clear: both;
  width: 750px;
  height: 100px;
}
-->
</style>
</head>
<body>
<div id="globalcontainer">
<div id="header">Header Section</div>
<div id="rightcol">Right Section</div>
<div id="content">Content Section</div>
<div id="footer">Footer Section</div>
<div/>
</body>
</html>

Desværre har jeg ikke lige på stående fod en løsning på dit højdeproblem.
Avatar billede jelboen Nybegynder
06. august 2008 - 12:02 #13
Jeg takker for din hjælp. det var mange problemer der blev løst, og jeg blev lynhurtig klogere. Det som er det store problem er jo at jeg må følge tutorials som ligner det jeg skal ud i. Normalt har jeg kunne læse mig gennem noget dokumentation, men jeg kan ikke finde det nogen steder. Nå men du får point, tak for hjælpen..
Avatar billede w13 Novice
06. august 2008 - 12:06 #14
Tak for point! :)

Altså det helt rigtige sted at starte er på http://www.w3.org/Style/CSS
Men det kan måske godt være lidt svært for nye at følge med der. Du kan jo prøve.

På HTML.dk og w3schools.com er der nogle populære tutorials, men desværre er der rigtig mange fejl i.
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