webForumDet fria alternativet

Textfält bredare när DTD används

HTML & CSS

4 svar · 232 visningar · startad av Marcus E

Medlem sedan maj 20021 466 inlägg
Frågan#1

Textfälten som jag satt till 100% blir bredare än tabellen när jag använder en DTD från W3C och inkluderar adressen.

Det blir fel med denna högst upp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Med DTD

Med denna fungerar det:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Det är samma resultat utan den.
Utan DTD

Detta gäller Internet Explorer 6 SP1. I Mozilla fungerar båda alternativen. Vad beror detta på?

Medlem sedan juli 20013 378 inlägg
#2

Svårt att säga.... Men man kan ju alltid spekulera lite ;)

Kolla lite på http://www.hut.fi/~hsivonen/doctype.html
Enligt Hr Sivonen så går alltså MSIE6 upp i "Standards mode" med den första <!DOCTYPE:en och i "Quirks mode" med den andra...
Och med tanke på MSIE:6 gamla medärvda beteenden för hur man beräknar just bredd på block så har du nog gissningsvis en trolig förklaring för skillnaderna MSIE6 i just skillnaderna i renderingsmode...

Är det så, finns en del att fundera på på http://tantek.com/CSS/Examples/boxmodelhack.html

Kort sammanfattning:
När MSIE6 kör i standards mode, så ingår varken margin, border eller padding i dina 100%, vilket gör att du får 100% av omgivande block "och lite till" om någon av dessa är satta till annat än noll.
Mär MSIE6 kör i Quirks mode så ingår både border och padding i de 100%:en (iaf i MSIE) vilket gör blocket något smalare jämfört med i "standards mode" om dessa skiljer sig från noll...

För Mozilla gäller antagligen (återigen enligt Sivonen) skillnaden mellan deras "Almost standard" och Quirks mode... vilka jag inte har 100% koll på... Så där har jag ingen gissning att komma med...

Hursomhelst...
Hur det här resonemanget sedan hänger ihop med dina tabeller och just den aktuella CSS:en är omöjligt att gissa utan tillgång till koden...
Har du nöjlighet att lägga upp en länk till den?

Medlem sedan maj 20021 466 inlägg
#3

Jag förstår inte riktigt vad jag ska göra åt det, så jag skickar med koden.

http://member.webforum.nu/Marcus E/form.html

Medlem sedan dec. 20025 483 inlägg
#4

Validera sidan hos http://validator.w3.org och rätta till felen först. Om resultatet ändå inte blir det önskade, kan du ta bort "http://www.w3.org/TR/html4/loose.dtd">.

:)

Medlem sedan juli 20013 378 inlägg
#5

Marcus E skrev:

Jag förstår inte riktigt vad jag ska göra åt det

Hmm...
Du frågade iofs vad det beror på, och inte vad du skulle kunna göra åt det :) - så jag spann loss på ett försök till en förklaring och inte en lösning ;)

Lösning:
Jag håller med Peter S.
Kör med

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

om det funkar som du vill med den.

Kör man HTML, är det enligt min mening aldrig fel att välja en <!DOCTYPE som gör att det funkar i de flesta webbläsarna (eller som i ditt fall i alla du är intresserad av ;) ) och strunta i om det blir "quirks" eller "Standards" mode så länge det funkar och man är medveten om vilket val man gör :)

304 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
171 ms — ändringar (db)