Dina html dokument skall börja med DOCTYPE raden, altså på första raden.
Det raden kör är att tala om vär validatorn (eg. parsern) att resten av dokumentet är ett HTML ver 4.01 Transitional. I princip följer HTML4 specifikationen.
HTML & CSSur HTML, XHTML & CSS
26 svar · 741 visningar · startad av KoTTeN
Hallå!
Testade å göra en validering (heter det så föresten?) på w3c, då kom detta fel:
Fatal Error: no document type declaration; will parse without validation
Som exempel ville den att man skulle lägga till detta:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Men vad betyder det?
Något som ska ändras?
Dina html dokument skall börja med DOCTYPE raden, altså på första raden.
Det raden kör är att tala om vär validatorn (eg. parsern) att resten av dokumentet är ett HTML ver 4.01 Transitional. I princip följer HTML4 specifikationen.
Ok, ska man ändra Transitional till //Sv eller nå? Då siten ä på svenska?!
Nej,
det gör du med meta taggen i head'ern:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
ehh... hur menar du GunnarD ? fattade hur du menade nu, men jag håller kvar resten av inlägget ändå.. :h
språk säger man i den taggen som det är språk i ( :) )
ex. <html lang="sv"> (för svenska i hela dokumentet)
ex. <span lang="en">My computer is large</span> (för engelska i en del av dokumentet)
Ok!
Det jag visade var hur man angav teckenuppsättningen inte vilket språk, sorry! :)
KoTTen:
I <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> står "EN" för att taggarna i märkspråket HTML är på engelska (alltså "P" för "Paragraph" osv), det säger som sagt inget om innehållets språk ;)
En annan sak att tänka på:
Valet av <!DOCTYPE styr numera också i praktiken hur de senare webbläsarna (typ IE5+ och NN6/Moz1) hanterar vissa detaljer för hur sidkoden skall tolkas. Har man otur, kan "fel" doctype ge mycket skumma effekter på hur en sida visas upp av vissa versioner av vissa webbläsare... Man pratar om två "moder" -
"Standard" - som numera skall vara "strikt enligt W3C"
och
"Quirks" - vilket är en "bakåtkompatibel" emulering av beteendet_som_varit_sedan_hedenhös_med_alla_klassiska_buggar_och_feltolkningar_av_standard ;)
Här är en översikt på hur man kan välja mellan "standard"- och "quirks" mode i t.ex. NN6, Moz1 och MSIE5+ och här är en intressant artikel i ämnet <!DOCTYPE och varför man skall/bör ha dem
Alltså, jag fattar ingenting av det här, när jag använder mig av:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
och sedan:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
följt av:
<html lang="sv">
följande fel:
character data is not allowed here (i meta taggen)
antog då att meta taggen skulle ligga i head, men det verkar inte funka. sedan säger den att jag inte avslutat head, och inte avslutat html heller..
finns det något ställe där man kan läsa om sånt här? det verkar lite konstigt tycker jag.
tacksam för svar..
<meta http-equiv="Content-Language" content="sv">
inom <head>-taggarna funkar jättebäst också
visa hela filen pakmannen så ska vi nog kunna hjälpa dig
Okej, här kommer koden (utan några !doctype)
Vilken doctype skall man använda?
<html>
<head>
<title>Sondera Design AB</title>
<style type="text/css">
body {
background: #aabbcc;
margin: 0px;
scrollbar-face-color: #9BB6D2;
scrollbar-shadow-color: #9BB6D2;
scrollbar-highlight-color: #9BB6D2;
scrollbar-darkshadow-color: #9BB6D2;
scrollbar-track-color: #F5F5FF;
scrollbar-arrow-color: #FFFFFF;
}
.ruta {
position: absolute;
border: solid 1px;
border-color: #445566;
padding: 0px;
}
.textbox {
padding: 20px;
font-family: verdana;
font-size: 10px;
color: #000000;
overflow: auto;
}
.image {
position: absolute;
}
</style>
<script language="javascript" type="text/javascript">
function grodan() {
adress.style.filter = "alpha(opacity=60)";
}
function boll() {
adress.style.filter = "alpha(opacity=30)";
}
function center() {
if (navigator.appName == "Netscape") {
TopPos = (window.innerHeight - 500) / 2;
LeftPos = (window.innerWidth - 709) / 2;
}
else {
TopPos = (document.body.clientHeight - 500) / 2;
LeftPos = (document.body.clientWidth - 709) / 2;
}
sondera.style.top = TopPos;
sondera.style.left = LeftPos;
}
</script>
</head>
<body onLoad="center()" onResize="center()">
<div id="sondera" style="position: absolute; width: 709px; height: 500px;">
<!-- Vänster ruta -->
<div class="ruta" style="width: 272px; height: 500px; top: 0px; left: 0px; background: #ffffff;">
<img src="bilder/logo.gif">
<div class="textbox" style="padding-top: 10px; width: 260px; height: 350px;">
<p><b>Välkommen till Sondera Design AB</b></br>
Vi har mångårig erfarenhet i branschen presentreklam och företagsprofilering.
Sondera Design finns i Värnamo med såväl kontor, lager och utställning.</p>
<p>I vår utställning visar vi flera av världens ledande
leverantörer när det gäller presentreklam.</p>
<p>Vårt breda sortiment gör att det alltid
finns något för alla, såväl stora som mindre kunder.</p>
<p>Vi jobbar mycket med import av intressanta
artiklar från vår omvärld.</p>
<p>Vi har bra globala kontakter och kan erbjuda direktimport
av i stort set vilken vara som helst och till högsta kvalitet.</p>
</div>
</div>
<!-- /Vänster ruta -->
<!-- Höger ruta -->
<div class="ruta" style="width: 419px; height: 500px; top: 0px; left: 290px; background: #ffffff;">
<img src="bilder/bluepic.jpg" class="image" style="top: 238px; left: 111px;">
<!-- Adress -->
<div id="adress" class="ruta"
style="width: 419px; height: 85px; top: 400px; left: -1px; background: #A9AAD0; filter: alpha(opacity=30);"
onMouseOver="grodan()" onMouseOut="boll()">
<div class="textbox" style="padding-top: 5px; padding-bottom: 0px;">
<b>Sondera Design AB</b><br>
Postgatan 8<br>
Box 516<br>
331 25 Värnamo<br>
Tel. 0370-195 50<br>
Fax 0370-156 65<br>
</div>
</div>
<!-- /Adress -->
</div>
<!-- /Höger ruta -->
</div>
</body>
</html>
Jag skulle köra XHTML strict, men då du verkar vilja ha alla javascriptfunktioner och stilmallar inuti HTML-koden är det ingen hit för din del.
Testa med XHTML 1.0 transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Kom ihåg att du måste ha en annan doctype på de sidor du har frameset i.
Här kan du läsa lite om doctypes och vad de nyttjas till
http://www.alistapart.com/stories/doctype/
SuPeR_ToBBe skrev
<html lang="sv"> (för svenska i hela dokumentet)
Betyder detta att jag kan skriva å, ä ,ö tecknen utan att behöva
ge speciella tecknen för dem?
Nej. Det funkar bara om du har
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
och skriver in åäö kodat i ISO-8859-1 (dvs det beror på vad din webbeditor sparar tecknen i för teckenkodning ;) - i Windows brukar man inte behöva fundera så mycket på det iallafall )
lang="sv" är mest till för att sökmotorer och andra programvaror som kan tänkas vilja läsa din sida skall veta att innehållet är på svenska, och ger alltså ingen information om hur åäö är kodat - tyvärr.
pakmannen - kör du HTML4.01 (som du gör enligt doctype-taggen i din fråga) måste du skriva
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
som är HTML och inte
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
som är xhtml !
Validatorn tycker alltså att ditt "/" är "character data" som inte får finnas där ;) !
Alltså, stilmallarna ligger bara där temporärt, och javascript funktionerna kan man ju lägga i enskilda filer också. Men när jag prövade att köra som xhtml tyckte den att onLoad och onResize inte skall finnas. Hur gör man för att få samma effekt? (Kan man skriva in nåt i scriptfilen då eller?)
Det där "/" var ju lite löjligt.. :)
En annan fråga ang xhtml. Hur gör man när det gäller typ <br> ?
Jag prövade att skriva </br> men då sa den att taggen inte var påbörjad.. ?
Någon som vet någon bra sida om skillnader mellan strict/transitional etc?
Hmm... Håller inte med om att det är löjligt...
Har du inte kört xhtml förut så är det inte konstigt att du råkar missa sådana smådetaljer (och du var ju inte ensam om att missa det - eller hur ;) )
Nu över till dina andra funderingar...
Alla namn skall skrivas med små bokstäver i xhtml.
Alltså onload istället för onLoad och onresize istället för onResize.
<br> skrivs som <br/> i xhtml. Liksom t.ex. man skriver <hr/>, <link/> och (som du redan snubblat på) <meta ... /> ;)
Zvon.org har en komplett men kanske lite akademisk referens över skillnaderna mellan Strict och Transitional.
Det finns fler också - men det var den jag kom på direkt - kolla på http://xhtml.nu om några dagar när jag fått igång allt där igen ;)
pakmannen skrev:
Men när jag prövade att köra som xhtml tyckte den att onLoad och onResize inte skall finnas. Hur gör man för att få samma effekt? (Kan man skriva in nåt i scriptfilen då eller?)
I xhtml så skriver du onresize, onload och så vidare.
Personligen tycker jag att xhtml är ett väldigt stort steg framåt för html.
Okej, jag har nästan lyckats få den xhtml transitional. Ett fel kvarstår dock, och det är onresize som den hävdar inte finns. Varför?
PS, jag testade precis att använda strict istället, och då sa den inte ifrån att stilmallen ligger i samma fil. Så det går nog bra att ha det så också.
En konstig grej till: Positioneringen blir helt konstig när man har en !doctype, men om jag lägger en kommentar ovanför, såhär:
<!-- tjo -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
så fungerar allt. Ska det vara så?