webForumDet fria alternativet

val av korrekt doctype

16 svar · 5 706 visningar · startad av hildurblad

hildurbladMedlem sedan maj 2003107 inlägg
#1

Hej,

Har läst lite om det här med val av Doctype. Är inte så insatt... Hur vet man vilken Doctype man skall välja? (Jag har läst men jag fattar inte riktigt...) Vad blir resultatet om man väljer fel/rätt?
Titta på http://www.predator.nu
Vilken Doctype skall jag använda mig av?
Kan tillägga att jag har haft problem i IE5 för Mac, beror detta på val av Doctype.

(Se närmre beskrivning av problem under tråden "Scrollningslist i <iframe>)

Tackar!

mikkeXMedlem sedan aug. 2002477 inlägg
#2

Ser ut som du använt rätt doctype för ditt projekt eftersom du blandat "gammaldags" font-taggar med stilmallar.

Val av doctype kan ställa till med problem.. men i just detta fallet tror jag inte det spelar någon roll.

Dock bör du se till att din sida validerar:
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.predator.nu%2F

hildurbladMedlem sedan maj 2003107 inlägg
#3

massa fel

Hej,

Ser ju att det är massa fel. Men jag vet inte hur jag skall göra för att rätta till dem. Vad är det som saknas egentligen för att det skall vara korrekt?

AxelMedlem sedan aug. 20004 638 inlägg
#4

Det saknas vad som sägs. Det är egentligen inga allvarliga fel och orsakar inte felvisningar i någon modern webbläsare. Det den saknar är typ på scripten, vilket i det här fallet ska vara type="text/javascript"

På rad 100 har du blandat ihop html och css. I css betecknas storleken med font-size, men i <font>-taggen ska du bara skriva size.

Sen saknar den alt-attibut på alla dina bilder. Det kan du ju fixa til om du vill, men det är ju inget viktigt om man inte surfar utan bilder eller i Lynx eller nåt.. ;)

jarvkloMedlem sedan juli 20013 378 inlägg
#5

Hur vet man vilken Doctype man skall välja?
[...]
Vad blir resultatet om man väljer fel/rätt?

Det finns två aspekter på det där...

  1. Med valet av Doctype väljer du vilka taggar du kan/får använda.
    Det är främst kanske viktigt när du validerar din kod eftersom valet påverkar vilka taggar du "får" använda...

I HTML 4 finns tre olika Doctype-varianter att välja mellan. Transitional, Strict och Frameset.
* Strict - "Bantad" version. (en del kallar den "ren" eftersom nästan allt "utseende" måste anges med CSS eftersom Strict saknar saker som bgcolor-attribut och font-taggar) Strict saknar även <iframe>.
* Transitional - Allt som W3C någonsin har godkänt ;) <font>, <iframe> osv.
* Frameset - Används för "frameset"-sidor (dvs den sidan som innehåller <frameset> och <frame>

Väljer du "rätt" Doctype får du använda de taggar du tänkt dig (i ditt fall, måste du antagligen välja Transitional eftersom jag förstått att du vill kunna använda t.ex. <iframe>)

Så långt är det inga konstigheter - men sedan finns det en aspekt till:
2) Beroende på hur du skriver din Doctype-tagg så kommer din webbläsare att bete sig på olika sätt!
Dagens webbläsare har två olika "moder" som de väljer mellan när de skall rita ut en sida. Moderna kallas "Quirks" (eller "bakåtkompatibel") och "Standards".
Webbläsaren väljer vilken mod som skall användas genom att kolla hur den Doctype du använder är skriven!

Exempel:
Du väljer att köra HTML4.01 Transitional.
En Doctype för detta kan då se ut som följer:

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

Den kan också se ut såhär:

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

eller såhär:

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

Oavsett vilken du väljer, så kommer din kod (om den är korrekt) att validera, men olika webbläsare kommer att hantera din sida olika beroende på att den första och sista (eller helt utelämnad Doctype!) ställer in webbläsare i "Quirks"-mode och den i mitten ställer in webbläsaren i "Standards"-mode.

Det är här det blir klurigt eftersom skillnaderna mellan "Quirks" och "Standards" ofta märks visuellt...
Exempel:
Ta filen:

<html>
<head><title>Test</title></head>
<body>
<table style="height:100%; width:100%; border: 1px solid black">
<tr><td style="text-align:center;">Hej hopp!</td></tr>
</table>
</body>
</html>

(testa: http://member.webforum.nu/2241/doctype1.html )
Inga konstigheter...
Hej hopp mitt på sidan!
Men lägg nu till

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

överst....
(Testa: http://member.webforum.nu/2241/doctype2.html )
Och hoppsan Kerstin! - Nu blev det skillnad i höjdled !!!
(i Standards-mode måste du nämligen ställa in height:100% på body och html mha CSS för att det skall funka som man kanske tror - men det är en annan historia - t.ex. http://www.webforum.nu/showthread.php?s=&postid=8068#post8068 ;) )

Vilken Doctype skall jag använda mig av?

Hmm...
Du har, som MikkeX påpekar redan valt "rätt" med tanke på de taggar du använder...
Valet du har kvar är vilken variant av "Transitional-Doctype" du skall köra med...

Min erfarenhet? - Eh... Det beror på :p ( ledsen - men det finns inget enkelt svar). Jag gillar personligen att koda för "Standards" mode just nu eftersom jag upplever att webbläsarna av idag (ja - jag blir 40 snart ;) ) beter sig mer lika om man kör "standards" mode än om man kör "Quirks" - men det kan iofs bero lika mycket på min kodningsstil som på något annat.

Men är man van att "width:100%" på en tabell även innefattar border och padding-värden och blir förvånad när man får rullningslister så skall man nog sikta på "Quirks"-mode...

Sök lite i ämnet (ange t.ex, "Quirks mode" eller "quirky mode" på Google - och du har att göra en stund ;) ) och prova dig fram.

Kolla även in http://www.hut.fi/u/hsivonen/doctype.html
Om inte annat hittar du där (längst ner) en länk som verkar handla om hur IE5/Mac hanterar det där med Doctype ;)

NickemannenMedlem sedan aug. 20003 575 inlägg
#6

tog en stund att skriva det där eller ?

SugarDaddyMedlem sedan apr. 20021 155 inlägg
#7

jarvklo :bire
Sällan man/jag har sett ett så bra och klargörande inlägg - mina riktigt feta applåder! :D

jarvkloMedlem sedan juli 20013 378 inlägg
#8

Nickemannen skrev:

tog en stund att skriva det där eller ?

Jupp... Men jag hade ett utkast på en artikel i ämnet för xhtml.nu som jag kunde använda här istället nu när frågan kom upp - så jag fuskade lite... ;)

PalleMedlem sedan apr. 20003 174 inlägg
#9

*stänger munnen*

Ska genast skicka en länk på ditt inlägg till min chef Jarvklo.
Vi brottas dagligen med att han inte gillar att jag använder en
strict xhtml-doctype på de projekten som vi gör.
Inget fungerar som han vill då han sitter och micklar med sidan i DW säger han,
så hittar jag sen <font-taggar överallt i min fina kod. ;)

Nexus86Medlem sedan okt. 20023 030 inlägg
#10

Måste vara bästa förklaringen hittills! :bire

hildurbladMedlem sedan maj 2003107 inlägg
#11

Tackar!

Tack så väldans mycket! Skall nu försöka bearbeta all information. :)

m_soderlundMedlem sedan sep. 20026 425 inlägg
#12

Oj oj oj, järvklo kan sina saker, han! :D
Palle: Font-taggar, vad är det? ;) :e

Och hildurblad: jag rekommenderar dig att börja använda dig av XHTML och skippa HTML. Framtiden ligger i XML och då XHTML, plus att det för tillfället är roligt att koda XHTML. :D

För XHTML 1.0 finns det tre dokumenttyper (doctypes): strict, transitional och frameset.

Strict-dtd:n kan man använda när man vill vara verkligt petig med koden och att allt ska vara så perfekt som möjligt. ;)

Transitional-dtd:n är nog den som är den mest använda (jag använder den också..) och enligt mig är den den smidigaste ddt:n.

Frameset-dtd:n ska man använda om man använder ramar på sin sida.

Här kommer dtd:erna för respektive doctype:

Strict:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Transitional:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Frameset:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Mer om XHTML kan du lära dig på jarvklos eminenta sajt xhtml.nu samt på W3Schools. Lycka till!

/r Upptäckte att jarvklo också förklarat om dtd:erna lite, men men.. ;)

jarvkloMedlem sedan juli 20013 378 inlägg
#13

Tack alla för uppskattande ord... De värmer...

Några kommentarer som egentligen kanske ligger lite utanför ämnet kan jag bara inte låta bli att flika in dock:

Palle skrev:

Vi brottas dagligen med att han inte gillar att jag använder en strict xhtml-doctype på de projekten som vi gör.

Du kan ju alltid "gå med på" att köra HTML i fortsättningen istället...
§e Och sedan konsekvent köra med HTML4 Strict med en <!DOCTYPE som lägger dig i standards mode - därefter kan han ju inte klaga på att du använder xhtml iallafall - men du kan antagligen ge honom en känga för att han inte behärskar teknik som funnits sedan December 1997 §e

m_soderlund: :birp §e "ddt" är väl förbjudet i Sverige... (utom den variant man kan använda för att debugga operativsystemkärnor och liknande) §e :birp

OffTopic kom jag att tänka på följande:
Jag fick en gång i tiden tillfälle att "dra ner brallorna" på en höjdare från ett stort amerikanskt dataföretag som försökte sälja på projektet jag var inhyrd i sin XML-baserade teknik (vi använde redan XML i stor utsträckning och blev med tiden ganska trötta på salespitchar och "slideware" som lovade guld och gröna skogar för olika produkter som "snart skulle komma", och han skulle presentera just en sådan).
Han använde konsekvent termen DDT istället för DTD genom hela sin presentation...

Vid frågestunden efteråt berömde jag dem för hur buggfri deras programvara måste vara som körde med DDT (och låtsades att jag använde en sprayburk) - vilket fick honom att se mycket frågande ut - varefter jag frågade honom om inte deras produkt stödde att multipla DTD:er användes...

Han blev lite tyst ett tag innan han fattade att större delen av rummet just då skrattade på hans bekostnad - men till slut garvade han med... Och varje gång jag sedan stötte på honom under resten av tiden han var där, låtsades han använda en sprayburk och log lite förläget...
Såkandetgå...

Bästa sättet att lära sig vad en förkortning "heter" är att lära sig vad den egentligen står för ;)

m_soderlundMedlem sedan sep. 20026 425 inlägg
#14

Hehe, kul liten historia! :bire

*går och redigerar min ddt-noja*

DunkenMedlem sedan maj 20041 inlägg
#15

Hur skapar du den menyn?

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#16

Mycket bra artikel på http://xhtml.se/2005/11/04/vadan-av-att-valja-fel-doctype/

Tummen upp. Du får en länk från min blivande websida till den.
Tack för hjälpen.

MozfanMedlem sedan okt. 2005541 inlägg
#17

Ordet "transitional" betyder väl "övergångs" ("mellan"), dvs transitional doctype är kvar för att fungera som en "övergång" mellan gamla och nya webbsidor, t.ex. från att inte ha någon DTD och till Strict. Har man gamla webbsidor (som det ju finns gott om) som kanske inte har någon DTD alls idag, så bör dessa kanske lämpligen ha transitional eftersom dom innehåller en massa gammal kod och det tidigare var vanligt med frames. Men bygger man en ny webbsida idag så är det min bestämda uppfattning att man bör hålla sig enbart till Strict och vad som validerar som det.

136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)