webForumDet fria alternativet
Logga in / Bli medlem

Doctypestrul

HTML & CSS

4 svar · 266 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Trådstart#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>
Medlem sedan nov. 2001274 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. :)

Medlem sedan dec. 20025 483 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]).

:)

Medlem sedan nov. 20017 144 inlägg
#4

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

Medlem sedan juli 20013 378 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

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)