Avatar billede fusentasten Nybegynder
21. april 2005 - 12:57 Der er 6 kommentarer og
1 løsning

Div følger ikke med indholdet i Forefox

Hej Eksperter

Jeg har lavet en skabelon her:
http://marginmedia.dk/kj/

Problemet er, at i Firefox følger min <div id="back">[ Sidens indhold ]</div> ikke med ned.

Css for min #back er :

#back {
    background-color: #ffffff;
    width: 755px;
    border: solid 1px #5C5C5C;
}

Findes der et eller anden smart, man kan skrive, så den selv udvider sig efter idnholdet af den? Jeg har lagt alle de andre div'er _inde i_ <div id="back"> så jeg kan ikke forstå at den ikek udvider sig automatisk.
Avatar billede olebole Juniormester
21. april 2005 - 15:54 #1
<ole>

Jeg kan ikke se den omtalte fejl. Så vidt jeg kan se, er der ikke noget, der ikke bliver vist ... eller?

Til gengæld kan du se, der en del ged i koden, når du ser siden i en Mozilla browser. En ting, du skal være opmærksom på, er, at IE ikke forstår CSS ordentligt, hvis du ikke bruger en DTD - og vel at mærke en DTD med definitions URL ... f.eks:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

/mvh
</bole>
Avatar billede fusentasten Nybegynder
21. april 2005 - 16:46 #2
Hej Ole

I min Firefox browser vises det hvide baggrundslag kun ca. 2 cm ned på skærmen. Det ser korrekt ud i IE.

Jeg har aldrig fattet de der dtd tags må jeg indrømme. Måske man skunne sætte sig lidt ind i dem. Er de meget vigtige?
Avatar billede Slettet bruger
21. april 2005 - 17:24 #3
Her en meget kort beskrivelse:

HTML 4.0 Strict DTD

inkluderer alle koder og attributter der ikke er udgået og ikke indeholder koder der specifikt har at gøre med rammer (frames). For dokumenter der overholder denne standard bør følgende DTD angives:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
.................................................................

når du bruger CSS
HTML 4.0 Transitional DTD

inkluderer de samme koder som i Strict DTD plus de der er udgået. For dokumenter der overholder denne standard bør følgende DTD angives:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
..................................................................

HTML 4.0 Frameset DTD

inkluderer alle HTML-koder, også de der er erklæret for udgået. For dokumenter der overholder denne standard bør følgende DTD angives (dog kun hvis dokumentet inddeler et vindue i rammer, dvs. benytter <FRAMESET>):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
.......................................

olebole...>Er det rigtigt ? gerne kommentarer hertil
Avatar billede olebole Juniormester
21. april 2005 - 21:47 #4
ibtage >> du trækker dug i mine øjne ..... det er smukt!  ;o)

fusentasten >> Ja, DTD'en er et absolut must! For det første fortæller den browseren, hvordan dokumentet er kodet (og hvordan det derfor bør tolkes) - og uden den korrekte, kan IE som sagt ikke tolke CSS ... specielt box-modellen, som bl.a. dikterer, hvor og hvordan margin, border og padding skal renderes. Læs evt:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.asp
- under 'DocType Switch'.

Grunden til, din topboks ser sådan ud, tror jeg er din brug af float. Floatede elementer optager ikke plads.
Desuden holder denne ikke (fra din CSS-regel for body-elementet):
  margin : 10 0 0 15px;
- kun værdien 0 må optræde uden enhed, Sådan skal den se ud:
  margin : 10px 0 0 15px;

Der er mange, der ikke helt har forstået CSS-positionering. Her kommer lige reglerne (i hurtig version) og et lille eksempel:
Hvis et element positioneres abslout, skal det placere sig i forhold til det første omkransende element, der er positioneret (relativt eller absolut er ligemeget).
Findes der ikke et positioneret, omkransende element, skal det placere sig i forhold til body-elementet.

Rigtig mange kender kun til den sidste tilstand ... men den første er utrolig anvendelig:

<!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>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
    padding: 0px;
}
.container {
    position: relative;
    width: 500px;
    height: 500px;
    border: 1px solid #999999;
    margin: 0px auto;
}
.topBoks {
    height: 70px;
    background-color: red;
}
.menu {
    position: absolute;
    width: 140px;
    height: 430px;
    left: 0px;
    top: 70px;
    background-color: yellow;
}
.main {
    position: absolute;
    width: 360px;
    height: 430px;
    left: 140px;
    top: 70px;
    background-color: #dedede;
}
</style>
</head>
<body>

<div class="container">
    <div class="topBoks">Tekst i toppen</div>
    <div class="menu">Et fake link #1<br>
        Et fake link #2<br>
        Et fake link #3<br>
        Et fake link #4<br>
        Et fake link #5
    </div>
    <div class="main">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
        Nunc semper wisi ut velit. Quisque ultrices pharetra nulla.
        Quisque ultrices nisl a est. Donec sit amet lacus.
        Pellentesque nec elit.
    </div>
</div>

</body>
</html>
Avatar billede olebole Juniormester
21. april 2005 - 21:55 #5
En 'detalje' er, at når du bruger den korrekte DTD, vil IE opføre sig meget anderledes - men som den bør. Pludselig skal border og padding lægges til elementets bredde - helt som CSS foreskriver, men IE aldrig har gjort. Du kan prøve dette dokument:

<!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>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
    padding: 0px;
}
div {
    width: 400px;
    height: 400px;
    background-color: yellow;
    border: 100px solid red;
}
</style>
</head>
<body>

<div>En tekst</div>

</body>
</html>

- og prøv så det samme i IE, men uden DTD. Eller bare uden URL'en:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- og se, hvad der sker. Fanden til forskel, ikke?  ;o)
Avatar billede fusentasten Nybegynder
25. april 2005 - 11:44 #6
Jeg vil gerne sige tak for det fyldestgørende svar. Der er helt sikkert noget at arbejde videre med. Jeg var ikke kar over, at position : absolut kunne bruges til at relatere sig efter en anden div.

Skriv et svar for at få dine points :-)
Avatar billede fusentasten Nybegynder
26. december 2005 - 11:54 #7
lukker
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