webForumDet fria alternativet

Doctypestrul

4 svar · 264 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 058 inlägg
#1

Jag har alltid kört med denna doctype: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Men upptäckte att ett lager och en tabell blir olika långa i I.E.
Sätter jag dit den korta varianten: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Så ser det bra ut.
Varför är det så här?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -->
<html>
<head>
<title>Inget namn</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<div style="width:700px; height:23px; border:1px solid green;">Div</div>

<br>

<table style="width:700px; height:23px; border:1px solid green;">
	<tr>
		<td>Table</td>
	</tr>
</table>

</body>
</html>
BäckmanMedlem sedan nov. 2001339 inlägg
#2

Det blir så för att på div:arna så verkar ramen räknas (1px + 1px) på till bredden. Om du väljer en annan metod för att kolla om de blir lika långa, t.ex. att sätta bådas bakgrundsfärg till svart istället, så ser du att de blir lika långa då.

Sen _varför_ det är så här har jag ingen aning om. :)

Peter SMedlem sedan dec. 20025 484 inlägg
#3

Det har att göra med IE:s boxmodell och hur bredd respektive höjd beräknas beroende på om en URL till DTD:n anges.

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

Ovanstående gör att sidan renderas på ett standardkompatibelt sätt, vilket i detta fall innebär att <div>-elementets bredd blir 700px plus ramen (2px).

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

Ovanstående gör att sidan renderas i ett s.k. "quirks mode", vilket gör att <div>-elementets totala bredd beräknas till 700px (inklusive ramen [2px]).

:)

Jesper TMedlem sedan nov. 20017 058 inlägg
#4

Ok, vad är bäst att köra med då? (Varning för felställd fråga...)

jarvkloMedlem sedan juli 20013 295 inlägg
#5

Vad skall du göra?

Behöver du t.ex. använda <iframe> ? - HTML/XHTML Transitional
Skall du köra frames? - HTML/XHTML Frameset
Behöver du inte <font> och <div align="center"> utan vill köra med CSS - HTML/XHTML Strict, ...eller kör HTML/XHTML Transitional och låt bli de taggarna/attributen ;)

Hur vill du ange dina bredder och höjder (med eller utan border och margin/padding) ? - "Quirks" eller "Standards mode"
Bryr du dig om MSIE5 ? - Glöm "Standards mode"
Vill du skippa en massa specialhack för att gå förbi buggar i MSIE ? - Kör "Standards mode" och acceptera att det ser skräp ut i MSIE5 eller "kör quirks mode" och acceptera att du inte alltid kan använda margin/padding/border som du kanske tänkt dig...

osv. osv.

Inget självklart "bästa" alltså ;)

Mer info:
t.ex. http://www.webforum.nu/showthread.php?s=&postid=787126#post787126 och http://www.webforum.nu/showthread.php?s=&postid=650163#post650163

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
124 ms — hämta tråd, inlägg och bilagor (db)