Avatar billede RasmusRR Nybegynder
12. april 2013 - 22:42 Der er 13 kommentarer og
1 løsning

Placering af div tags

Jeg har tidligere opbygget min hjemmeside ved hjælp af tabeller, men prøver nu at bruge div tags.

Jeg har opbygget siden med en container der er 1024px bred og centeret. Her i er der 3 div tags: header, page og footer, der står under hinanden.

Mit problem opstår når jeg indsætter 4 div tags, der skal stå efter hinanden, i min header. Hvordan får jeg det til at stå efter hinanden, og ikke under hinanden?
I min kode hedder de 4 div'er fane1-4



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
#container {
    background-color: rgba(204,204,204,1);
    width: 1024px;
    margin-right: auto;
    margin-left: auto;
    height: 500px;
}
#header {
    background-color: rgba(102,102,102,1);
    width: 100%;
    height: 100px;
}
#page {
    background-color: rgba(255,255,255,1);
    width: 100%;
    height: 500px;
}
#footer {
    background-color: rgba(0,0,0,1);
    width: auto;
    height: 100px;
}
#fane1 {
    background-color: rgba(255,0,0,1);
    width: 100px;
    height: 100px;
    left: 100px;
    position: relative;
}
#fane2 {
    background-color: rgba(0,255,0,1);
    width: 100px;
    height: 100px;
    position: relative;
    left: 200px;
}
#fane3 {
    background-color: rgba(0,0,255,1);
    width: 100px;
    height: 100px;
    right: 100px;
    position: relative;
    left: 300px;
}
#fane4 {
    background-color: rgba(255,255,0,1);
    width: 100px;
    height: 100px;
    position: relative;
    left: 400px;
}
#logo {
    background-color: rgba(255,0,255,1);
    width: 300px;
    height: 100px;
}
</style>
</head>

<body>
<div id="container">
  <div id="header">
      <div id="fane1"></div>
    <div id="fane2"></div>
    <div id="fane3"></div>
    <div id="fane4"></div>
  </div>
  <div id="page">
      <div id="logo">
     
      </div>
  </div>
  <div id="footer">
  </div>
</div>
</body>
</html>
Avatar billede NielsErikP Mester
12. april 2013 - 23:31 #1
Hej...

Har du prøvet at sætte display: inline-block; på dem... evt. give dem en float:left;
Avatar billede NielsErikP Mester
12. april 2013 - 23:34 #2
Hej igen...

Så skal du nok have din Position:relative; left:???px slettet.
Avatar billede olebole Juniormester
13. april 2013 - 02:49 #3
<ole>

Når du bruger display:inline-block, vil elementerne opføre sig som inline elementer udadtil - og som block elementer indadtil.

To inline elementer, adskilt af et linjeskift (eller andet blanktegn) i koden, vil renderes med et mellemrum:

<span>ole</span>
<span>bole</span>

- vil udskrive:

ole bole

Du kan skrive dine tags på én linje - eller:

<span>ole</span><span>
    bole</span>

- som udskriver olebole uden mellemrum.

Forslag til koden med lidt yderligere rettelser:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
#container {
    background-color: rgba(204,204,204,1);
    width: 1024px;
    margin-right: auto;
    margin-left: auto;
    height: 500px;
}
#header {
    background-color: rgba(102,102,102,1);
    height: 100px;
}
#page {
    background-color: rgba(255,255,255,1);
    height: 500px;
}
#footer {
    background-color: rgba(0,0,0,1);
    height: 100px;
}
.fane {
    position: relative;
    display: inline-block;
    width: 100px;
    height: 100px;
}
#fane1 {
    background-color: rgba(255,0,0,1);
}
#fane2 {
    background-color: rgba(0,255,0,1);
}
#fane3 {
    background-color: rgba(0,0,255,1);
}
#fane4 {
    background-color: rgba(255,255,0,1);
}
#logo {
    background-color: rgba(255,0,255,1);
    width: 300px;
    height: 100px;
}
</style>
</head>

<body>
<div id="container">
  <div id="header">
    <div class="fane" id="fane1"></div><div
        class="fane" id="fane2"></div><div
        class="fane" id="fane3"></div><div
        class="fane" id="fane4"></div>
  </div>
  <div id="page">
      <div id="logo">
     
      </div>
  </div>
  <div id="footer">
  </div>
</div>
</body>
</html>


/mvh
</bole>
Avatar billede RasmusRR Nybegynder
13. april 2013 - 15:55 #4
Nu står de på række :-)

Kan jeg ikke få lidt styring på hvor de står i min "header" div?
F.eks. hvis jeg vil have to af dem til at ligge oven på hinanden?
Eller at fane 3 skal være 400px inde i min "header" div?

/Rasmus
som er HELT ny inden for CSS
Avatar billede olebole Juniormester
13. april 2013 - 15:58 #5
Jo, du kan alt muligt, men det kan blive en lang tråd, hvis ønskerne kommer dryssende. Hvad er det præcist, du vil? Upload gerne et billede af, hvad du forestiller dig
Avatar billede RasmusRR Nybegynder
13. april 2013 - 19:55 #6
Jeg vil gerne have følgende:

Fane1 skal stå i venstre side.
Fane2 skal stå efter 250px.
Fane3 efter 300px så den overlapper fane2.
Fane4 skal stå i højre side (924px).

mvh
Rasmus
Avatar billede olebole Juniormester
13. april 2013 - 20:13 #7
Jamen, så er det en fundamentalt anden løsning, du har brug for:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
#container {
    background-color: rgba(204,204,204,1);
    width: 1024px;
    margin-right: auto;
    margin-left: auto;
    height: 500px;
}
#header {
    position: relative;
    background-color: rgba(102,102,102,1);
    height: 100px;
}
#page {
    background-color: rgba(255,255,255,1);
    height: 500px;
}
#footer {
    background-color: rgba(0,0,0,1);
    height: 100px;
}
.fane {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 0;
}
#fane1 {
    background-color: rgba(255,0,0,1);
    left: 0;
}
#fane2 {
    background-color: rgba(0,255,0,1);
    left: 250px;
}
#fane3 {
    background-color: rgba(0,0,255,1);
    left: 300px;
}
#fane4 {
    background-color: rgba(255,255,0,1);
    left: 924px;
}
#logo {
    background-color: rgba(255,0,255,1);
    width: 300px;
    height: 100px;
}
</style>
</head>

<body>
<div id="container">
  <div id="header">
    <div class="fane" id="fane1"></div>
    <div class="fane" id="fane2"></div>
    <div class="fane" id="fane3"></div>
    <div class="fane" id="fane4"></div>
  </div>
  <div id="page">
      <div id="logo">
     
      </div>
  </div>
  <div id="footer">
  </div>
</div>
</body>
</html>
Avatar billede RasmusRR Nybegynder
13. april 2013 - 21:59 #8
YES så virker det, og jeg kan forstå det :-D

1000-tak for hjælpen,opret endelig et svar.

/Rasmus
Avatar billede olebole Juniormester
13. april 2013 - 23:04 #9
Ellers tak, jeg samler ikke point. NielsErikP var med det samme inde på løsningen af problemet som formuleret i spørgsmålet, så han bør vel lægge et svar  =)
Avatar billede olebole Juniormester
13. april 2013 - 23:12 #10
Bemærk i øvrigt, at et absolut positioneret element placerer sig i forhold til det første, omkransende element, som er positioneret.

Findes et sådan ikke, placerer det sig i forhold til BODY (eller faktisk rettere til viewport'en).

Derfor tilføjede jeg position:relative#header. Du kan prøve at slette det - så vil du se, fanerne får lyst til 'eksotiske omgivelser'  *o)
Avatar billede NielsErikP Mester
14. april 2013 - 02:01 #11
Hej...

Jamen, så hiver jeg et SVAR selvom det jo var dig ole der gav tråden det "professionelle" Point of view.
Avatar billede RasmusRR Nybegynder
14. april 2013 - 10:55 #12
Hej Niels Erik

Selvfølgelig går pointene videre til dig, du brugte jo også tid på at hjælpe mig :-)

Så opret bare et svar.

mvh
Rasmus
Avatar billede NielsErikP Mester
14. april 2013 - 11:29 #13
Hej..

SVAR
Avatar billede NielsErikP Mester
14. april 2013 - 21:17 #14
Hej..

Takker 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