Avatar billede svoeber Nybegynder
09. april 2003 - 16:28 Der er 31 kommentarer og
2 løsninger

Mozilla: width og padding i en DIV

Jeg har et problem, når jeg laver en DIV og vil lave en padding samtidig med en fast bredde og højde.
Mozilla lægger værdien af padding til bredden og højden, så min div bliver større end den skulle.

CSS'et ser sådan ud:
width: 135px;height: 135px;padding:10px;

I IE har div-boksen en bredde og højde på 135px - men i Mozilla får den en højde og bredde på ialt 155px :(

Hvad gør jeg?
Og hvilken browser har fejlen?
Avatar billede olebole Juniormester
09. april 2003 - 16:31 #1
<ole>

Det er formodentlig din kode, der er fejlbehæftet. Hvilken doctype har du angivet? Må vi se et link?

/mvh
</bole>
Avatar billede olebole Juniormester
09. april 2003 - 16:36 #2
Fejlen, du beskriver, ligger i IE ... ikke i Mozilla  ;o)
Avatar billede michaeltajo Nybegynder
09. april 2003 - 16:38 #3
>>> svoeber

Eftersom padding pr. definition fra w3c befinder sig inde i div-boksen og margin udenfor, er det i dette tilfælde IE, som har ret. Der er meget www om den slags fx:
http://www.tantek.com/CSS/Examples/boxmodelhack.html

Hvilken version af henholdsvis IE og Mozilla bruger du ? Mozilla har for kort tid siden frigivet version 1.3 .....

mvh
Tajo
Avatar billede svoeber Nybegynder
09. april 2003 - 16:38 #4
Koder lokalt.

Min header ser sådan ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title><?=$side_title?></title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript" language="JavaScript" src="scripts.js"></script>
</head>
Avatar billede svoeber Nybegynder
09. april 2003 - 16:40 #5
Jeg bruger ver. 1.0 - så det kan måske løses ved at opgradere til 1.3
Avatar billede olebole Juniormester
09. april 2003 - 16:41 #6
michaeltajo >> Det er 180 grader omvendt  ;o)

svoeber >> Hvis du skriver til HTML4.01, ser DTD'en sådan ud:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

Nøjes du med:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
fejltolker IE box-modellen ... det er nok det, der er fejlen.
/mvh
Avatar billede svoeber Nybegynder
09. april 2003 - 16:43 #7
Ole, læg et svar, det ser ud til at virke.
(Lige bortset fra, at min side nu ser anderledes ud generelt, men det er nok min kode, der lige skal ryddes op i :)

Vil IE 5.0 og 5.5 også vise det korrekt?
Avatar billede olebole Juniormester
09. april 2003 - 16:44 #8
Citat fra:
  http://www.w3.org/TR/REC-CSS1#formatting-model

"The size of the box is the sum of the element width (i.e. formatted text or image) and the padding, the border and the margin areas."

Sætter du elementets bredde til 135px og padding til 10px, så bliver boxen (som er det, du ser på siden) 155px bred.
/mvh
Avatar billede olebole Juniormester
09. april 2003 - 16:45 #9
Ja, for de overholder også (nogenlunde) CSS's box-model  :)
/mvh
Avatar billede svoeber Nybegynder
09. april 2003 - 16:47 #10
I får lidt point hver, da jeg blev klogere af begge jeres svar :)
Avatar billede olebole Juniormester
09. april 2003 - 16:51 #11
michaeltajo >> Du har da vist slet ikke læst artiklen bag det link, du lagde. Der står jo det stik modsatte af, hvad du skriver  :)
/mvh
Avatar billede michaeltajo Nybegynder
09. april 2003 - 17:12 #12
>>> olebole

Jeg er faktisk alvorligt bange for, at du har ret...

:)
tajo
Avatar billede olebole Juniormester
09. april 2003 - 17:18 #13
Rolig nu ....... du skal ikke være bange, så længe vi er her  ;o))

... men med din seneste kommentar, har vi begge ret  :)
/mvh
Avatar billede michaeltajo Nybegynder
10. april 2003 - 15:40 #14
>>> olebole
Jeg har netop checket
http://www.w3.org/TR/REC-CSS1#formatting-model

Du har åbenlyst ret, de siger:
"The size of the box is the sum of the element width (i.e. formatted text or image) and the padding, the border and the margin areas"...

Anyway...jeg har baseret mine tidligere udtalelser ang. dette spørgsmål på erfaringer gjort i IE, Netscape, Mozilla og Opera.

Jeg går ud fra, at du føler som mig: "Please, Browser-skabere ! Vi vil have W3C-STANDARD !"

mvh
tajo
Avatar billede michaeltajo Nybegynder
10. april 2003 - 15:42 #15
>>> olebole

Det virker umiddelbart ulogisk på mig...

En indre margin (padding) og en ydre margin (margin) giver mening !

mvh/ tajo
Avatar billede olebole Juniormester
10. april 2003 - 16:01 #16
Jeg forstår ikke, hvad du mener
Avatar billede svoeber Nybegynder
10. april 2003 - 16:04 #17
Jeg giver michaeltajo ret :)

En indre margin som padding burde ikke bidrage til den samlede bredde af en boks.
Avatar billede olebole Juniormester
10. april 2003 - 16:17 #18
Nå ... !?!?!???!?? Det tror jeg afgjort, I står ganske alene med  :)

Hvis du ikke skriver helt ud til kanten af et stykke A4-papir - men efterlade 2cm margin i begge sider, skulle papir-arket altså ikke længere have bredden 21cm. Det skulle så kun være 17cm bredt.
Tjaaahhhh .... meget må I kalde det - 'logik' er dog ikke det første ord, jeg kommer til at tænke på  :)
/mvh
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:18 #19
>>> olebole

med "indre margin" og "ydre margin" mener jeg:

se det som et stykke papir af vilkårlig størrelse (div-boksen) på et skrivebord. Jeg ser "padding" som afstanden fra skriften på papiret til papirets kant og "margin" som en plads udenom papiret.

:)
tajo
Avatar billede svoeber Nybegynder
10. april 2003 - 16:22 #20
Din sammenligning syntes jeg passer bedre på den ydre margin, altså 'margin' i CSS.
Hvis du tegner en kasse på papiret og skriver tekst i denne kasse, ændrer kassens bredde sig jo ikke, hvis du vælger at lave lidt luft mellem kassens kant og teksten.
_Det_ kalder jeg logisk :)
Avatar billede jensendk Nybegynder
10. april 2003 - 16:22 #21
*Er godt nok enig med Ole...*
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:26 #22
>>> olebole

Hvis man ikke angiver en fast størrelse på boksen, har du hardcore ret; men jeg  TROR (siger med vilje TROR) stadig, at indhold+padding+border+margin ikke gælder for bokse med fixed størrelse.

mvh
tajo
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:27 #23
>>> svoeber

Det glæder mig selvklart, at du er enig med mig; men stadig:

hvad siger W3C (og browserproducenterne) ?

mvh
tajo
Avatar billede olebole Juniormester
10. april 2003 - 16:36 #24
michaeltajo >> Jeg har svært ved at forstå, hvad du skriver.
1. Hvad mener du med 'fixed' størrelse.
2. Hvad mener du med: "hvad siger W3C (og browserproducenterne) ?"
Her tænker jeg ikke på, at W3C bl.a. er browserfabrikanterne, men jeg forstår ikke, hvad du mener. W3C skriver jo klart på siden, jeg refererede til, hvad de mener  :)

svoeber >> Din logik synes ikke at stemme overens med resten af branchens ... og heller ikke med W3C's.
Så må det være en trøst, at du om ikke andet er enig med michaeltajo  :)
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:40 #25
>>> olebole

Jeg har oven i købet fundet et argument:
http://www.w3.org/TR/REC-CSS2/box.html#box-dimensions

Det fremgår med al ønskelig tydelighed, at "padding" er indenfor boksens border, hvilket understøtter mit argument. Vi er begge ordkløvere, og kan forhåbentlig enes om, at præcision er vigtigt; men: tag den !

:)
tajo
Avatar billede svoeber Nybegynder
10. april 2003 - 16:40 #26
olebole >> Min logik stemmer da overens med fx. MS Word.
Hvis man laver en tekstboks i Word og derefter ændrer padding i boksen vil tekstboksens brede forblive uændret.
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:46 #27
>>> olebole

Jeg fik desværre ikke opdateret før jeg sendte "16:40:18".

Svar 1) Med "fixed" størrelse mener jeg, at man angiver "width: xxx; height: xxx" et eller andet sted i stedet for at lade det være op til browseren.

Svar 2)Jeg mener, at vi kan diskutere til vi bliver til støv; men det "virkeligt interessante" er:
A) Hvad mener W3C, at man burde gøre ?
&
B) Hvad gør browser-skaberne ?

mvh
tajo
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:47 #28
>>> olebole

Håber, at jeg ikke fornærmer dig, når jeg siger: "Fuck Microsoft Word"...

mvh
tajo
Avatar billede svoeber Nybegynder
10. april 2003 - 16:49 #29
>> tajo

Jeg går udfra den var til mig?

Jeg kan ikke forestille mig at Open Source kontorpakkerne vil gøre det anderledes - er det tilfældet, vil jeg gerne installere én for at se det!
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:50 #30
SORRY til svoeber + olebole

Så forkert...
Mener stadig: "Fuck Microsoft Word"...

Endnu 1X sorry

mvh
tajo
Avatar billede michaeltajo Nybegynder
10. april 2003 - 16:53 #31
>>> svoeber

Lad os please droppe MS/antiMS-diskussionen...den er i denne sammenhæng irrelevant...

mvh
tajo
Avatar billede olebole Juniormester
10. april 2003 - 18:20 #32
michaeltajo >> Jeg er helt enig i dine betragtninger omkring Word. Derudover bliver noget ikke rigtigere af, at andre gør eller mener det samme (forkerte).
"10.000.000.000 flies can't be wrong ... eat shit!" Nej, vel?  ;o)

Jeg forstår stadig ikke, hvad du mener med: "Hvad mener W3C, at man burde gøre ?".
De mener, at du skal bruge standarden, som den er ... altså medregne padding og margin til boksens størrelse. At det så kun er padding, der får elementets baggrundsfarve er en anden sag.

Til slut: Browserfabrikanterne er en (meget stor) del af W3C - så de mener nok det samme, skal du se  ;o)
/mvh
Avatar billede olebole Juniormester
10. april 2003 - 18:32 #33
Prøv at læse teksten (også referencerne) i det afsnit, du linker til i (10/04-2003 16:40:18). Der står det højt og tydeligt.
Jeg fatter ikke, hvor jeres misforståelse af box-modellen opstår  :)
/mvh
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