Avatar billede zacariaz Nybegynder
17. april 2011 - 20:20 Der er 10 kommentarer og
1 løsning

boks modellen, hvad er det jeg ikke har forstået?

Jeg ved virkelig ikke hvordan jeg skal forklare mit problem, så jeg har lavet fire små test dokumenter som skulle beskrive det.

Boks uden fast højde og uden borders:
http://myhideout.eu/temp/testwoh1.html
Boks uden fast højde og med top/bottom borders:
http://myhideout.eu/temp/testwoh2.html
Boks med fast højde og uden borders:
http://myhideout.eu/temp/testwh1.html
Boks med fast højde og med top/bottom borders:
http://myhideout.eu/temp/testwh2.html

som det ses, sker der mærkelige ting der, efter min mening, ikke burde ske.

I det første eksempel, uden borders, ligger <P>'s margin uden for boksen og i det andet eksempel, med borders, ligger margin inden for boksen.

I det tredje og fjerde eksempel, med fast højde, holder boksen den korrekte størrelse, med og uden borders, men der sker stadig mærkelige ting.

Da dette er en så basal fremgangsmåde, kan jeg kun antage at jeg gør noget helt forkert, hvilket er meget pinligt da jeg, trods alt, har rodet med html og css i mange år, og jeg håber derfor at i kan hjælpe.


På forhånd tak.
Avatar billede keysersoze Ekspert
17. april 2011 - 21:47 #1
Så længe din DOCTYPE ikke er det absolut første i dit dokument vil browseren gå i quirksmode og så kan du ikke forvente at boksmodellen vil spille. http://www.web-dev.dk/post/DOCTYPE-og-valid-kode-ens-udseende-i-Internet-Explorer-og-FireFox.aspx
Avatar billede zacariaz Nybegynder
17. april 2011 - 22:03 #2
Så vidt jeg ved afhænger det af browseren, men hvad enten jeg har ret eller ej, har jeg lige prøve at fjerne xml doctypen og det har ikke gjort nogen forskel.
Avatar billede zips Juniormester
17. april 2011 - 22:31 #3
Som dine test viser, er det netop vigtig at man altid bruger en reset css så man selv kan styre hvordan det skal se ud og ikke lade en browser bestemme det.
Avatar billede zacariaz Nybegynder
17. april 2011 - 22:40 #4
Det er jeg sådan set enig i, men jeg kan ikke lige se hvordan dette er relevant i forhold til det nuværende problem.

Boksen bliver ganske enkelt visualiseret forskelligt, afhængig af om der er borders på, eller ej. Jeg har bevidst lavet borderen transparent i dette eksempel for at slå fast at borderen i sig selv, ikke har noget med problemet at gøre, men blot er en løsnings model. Jeg mener i midlertid at det er en kluntet løsning der ikke burde være nødvendig. Og så ser vi jo også, i eksemplerne med fast højde, hvor kontrollen helt forsvinder.
Avatar billede mediman Nybegynder
17. april 2011 - 23:10 #5
border-tbottom?

Den er vist ny ...
Avatar billede zacariaz Nybegynder
17. april 2011 - 23:15 #6
tbottom skulle være fikset nu ;)
Avatar billede zacariaz Nybegynder
18. april 2011 - 08:43 #7
Skal til at på arbejde, men slynger lige en reminder ud først.
sandt nok, så var der en typo, men den er fikset og det søste altså ikke problemet.
Avatar billede tjens Nybegynder
19. april 2011 - 08:44 #8
Det er en interessant problemstilling du demonstrerer, men jeg kan desværre ikke komme med en forklaring.

Hvis man ser på det i f.eks Chrome eller Firefox og højreklikker og tager punkt "Inspect Element", får man mange gode informationer i de forskellige menuer til højre.
Jeg kan bare ikke få øje på den afgørende forskel

Det er tydeligt at det er <P>s indbyggede top og bund-margin, der gør udslaget:
Browseren skal beslutte om top-margin skal ramme indenfor din <div>,
så det er åbenbart afgørende, hvor "visuel" denne div er.

Måske bliver effekten af <P>s margin endnu tydeligere i Inspect Element, hvis du tilføjer en <P> nummer to i Div'en: Så skal browseren beslutte at disse top- og bund-marginer skal overlappe, så der ikke kommer dobbelt linieafstand.

Men jeg undrer mig over at <P>s margin ikke i alle tilfælde falder indenfor <div>:
Størrelse 100x100 med baggrundsfarve, burde da være nok til at div'en bliver et renderet element?
Avatar billede keysersoze Ekspert
19. april 2011 - 09:31 #9
Avatar billede tjens Nybegynder
21. april 2011 - 10:23 #10
keysersoze: Dine links forklarer problemet helt, og det nævnes også at mange er blevet "snydt" af dette.

Jeg synes nu også, at det er helt ulogisk at en DIV med margin = 0px skal collapse med sin childNode og derved få hele P's margin.
Avatar billede keysersoze Ekspert
22. april 2011 - 20:35 #11
netop - så jeg lægger et svar når nu spørger har fået det opklaret :)
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