<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta name="generator" content="HTML Tidy for Windows (vers 1st January 2002), see www.w3.org" />

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<meta name="viewport" content="width=device-width" />

<title>xhtml 1.0 can mimic HTML - Gunlaug&#39;s homepages</title>

<link rel="SHORTCUT ICON" href="reserved/favicon.ico" />

<link rel="stylesheet" href="styles/base_2c_agc2c.css" type="text/css" />

<link rel="stylesheet" href="styles/ag1c-hh-20070707.css" type="text/css" media="handheld" />

<link rel="home" href="../main-en.html" />

<link rel="contents" href="toc_7a.html" />

<link rel="prev" href="wd_1_06_02.html" />

<link rel="next" href="wd_1_07.html" />

<link rel="copyright" href="main_copyright.html" />

<link rel="author" href="main_author.html" />

<meta http-equiv="Content-Style-Type" content="text/css" />

<style type="text/css" media="all">

/*<![CDATA[*/

@media screen {

/*\*//*/

}

/**/

.int03 {margin-top: 15px;}

.int04 {margin-top: -15px; position: relative; }

.int05 {position: absolute!important; margin-top: -50px; right: -25px;}

.int07 {margin-top: 20px;}

.int08 {margin-top: 40px;}

.int15 {margin: 0 4px 0 5px;}

.int16 {margin-top: -5px; position: relative; }

#add2 {margin-bottom: 40px;}

div#superwrapper1 {border-right: solid 200px #cd9;}

div#add2,div#footer,div#footer div.cover {background: #cd9;}



ol.eap12 li ul li {padding-bottom: 0!important; background: none!important;}



}



/*]]>*/



</style>



<script type="text/javascript">

</script>

</head>

<body>

<div id="wrapper">

<div id="iewrapper">

<div id="superwrapper1" class="g">

<div id="superwrapper2">

<div id="superwrapper3">

<div id="container">

<div id="content">

<div id="col-3">

<div id="inlineheader">

<div class="spacer"><!-- --></div>



<h1>xhtml + CSS&#8230; #4</h1>



<h2><em>&#8230;true xhtml&#8230;</em></h2>



<!--[if IE]><h1 id="overlay-ie">xhtml&#160;+&#160;CSS&#8230;</h1><![endif]-->

</div>



<div class="both">

<h4 class="head">xhtml vs. garbage&#8230;</h4>



<div class="zb zbrt"><a href="http://www.w3.org/TR/xhtml1/"><span class="zblead">W3C</span> <span class="spec">XHTML

1.0</span> <span class="more">more about this issue</span></a></div>



<p class="both sep12">Even beginners may find the following useful, as it is a simplified but pretty accurate

description of how to create and use real <em>XHTML</em> and make it work across browser-land.</p>



<div class="expo both">

<p>An <em>XHTML</em> page is either real <em>XHTML</em>, or it is <em>complete garbage</em>. There&#39;s nothing in

between, so we either get it right, or we don&#39;t &#8220;get&#160;it&#8221; at all.</p>

</div>



<p class="set12">Maybe that&#39;s a hash statement, but to me it is kind of funny when some think every web page with a

<span class="codelike">doctype-declaration</span> that spells <span class="codelike">XHTML</span> is <em>XHTML</em>. It

might be, but only if it survives when browsers treat it as <em>XHTML</em>.</p>



<h5 class="set12">web standard</h5>



<p><em>XHTML</em>, in its many versions, is recognized as a&#160;standard we web carpenters may choose to follow. If

that&#39;s our choice, then we may as well try to get it&#160;right.</p>



<p>Just because someone can create a mess in <em>HTML</em>, call it <em>XHTML</em> and make it work as <em>HTML</em>,

doesn&#39;t mean that one can make anything work as <em>XHTML</em>. There is no error-recovery

in&#160;<em>XHTML</em>.</p>



<p>Complicated? No! Confusing? Maybe, but it shouldn&#39;t be.</p>



<h5 class="set12">quick list</h5>



<img class="flr" src="imagedepot/xmldumb.png" alt="book cover: xml for dummies" /> 



<ul>

<li><em>XHTML</em> is <strong>not</strong> <em class="tight">HTML</em>.</li>



<li><em>XHTML</em> is predefined <em class="tight">xml</em>.</li>



<li><em>XHTML</em> can mimic <em class="tight">HTML</em>.</li>



<li><em>HTML</em> can <strong>not</strong> mimic <em>XHTML</em>.</li>

</ul>



<p><em>xml</em> is a format where practically nothing is declared or defined until we declare and define it ourselves.

Creating ones own vocabulary may easily end in confusion at the receiving-end. We will have to send along an

&#8220;interpreter&#8221; with every <em>xml</em> document to make sure the outcome makes sense.</p>



<p>To simplify things we&#39;ve been given <em>XHTML</em>, which is predefined <em>xml</em> so that most elements have

a&#160;presentational default that is similar, in fact identical, to what we&#39;re used to from dealing with

<em>HTML</em>. Thus, no ambiguity, and no need to create our own vocabulary.</p>

</div>



<div>

<h4 class="head">xhtml vs. html&#8230;</h4>



<p>The enormous differences between <em>HTML</em> and <em>XHTML</em> will only become apparant when we want to take

advantage of <em>xml</em>, and have to serve our documents with the proper <span class="codelike">MIME</span> type.

<b>Time to become cautious&#8230;</b></p>



<h5 class="set12">MIME types</h5>



<ul>

<li>text/html is for <em>HTML</em> &amp; <em>XHTML 1.0 mimicking HTML</em></li>



<li>application/xhtml+xml is for <em>XHTML</em>, <em>xml</em>, <em>Mathml</em> and so on.</li>

</ul>



<p>No need to go into details on that last one, as we have no idea about what <i>can</i> be wrapped into that

<em>xml</em> environment in the future. It should however be obvious that <em>HTML</em> documents are left out, and so

are <i>all</i> flawed <em>XHTML</em> documents. Once again: there is no error-recovery in <em>XHTML</em>.</p>



<h5 class="set12">quick test, using this page and duplicates of it:</h5>



<ul class="nobullet layout">

<li><a class="z1 both" href="wd_1_06_03.html"><img src="imagedepot/xhtmlyes.png"

alt="valid XHTML as &#39;text/html&#39;" />&#160;&#8776; HTML</a></li>



<li><a class="z1 both" href="wd_1_06_03-notvalid.html"><img src="imagedepot/xhtmlnot.png"

alt="non-valid XHTML as &#39;text/html&#39;" />&#160;&#8776; HTML</a></li>



<li><a class="z1 both" href="wd_1_06_03.xhtml"><img src="imagedepot/xhtmlyes.png"

alt="valid XHTML as &#39;application/xhtml+xml&#39;" />&#160;= XHTML</a></li>



<li><a class="z1 both" href="wd_1_06_03-notvalid.xhtml"><img src="imagedepot/xhtmlnot.png"

alt="non-valid XHTML as &#39;application/xhtml+xml&#39;" />&#160;&#8800; XHTML</a></li>



<li><a class="z1 both" href="wd_1_06_03.xml"><img src="imagedepot/xhtmlyes.png"

alt="valid XHTML as &#39;text/xml&#39;" />&#160;&#8838; xml</a></li>



<li><a class="z1 both" href="wd_1_06_03-notvalid.xml"><img src="imagedepot/xhtmlnot.png"

alt="non-valid XHTML as &#39;text/xml&#39;" />&#160;&#8800; xml</a> (<i>this page</i>)</li>

</ul>



<p class="set12">Ok, so getting <em>XHTML</em> right can be pretty demanding if you&#39;re used to ordinary

<em>HTML</em> and/or &#8220;tag soup&#8221; and forgiving browsers. Trying to serve &#8220;tag soup&#8221; as

<em>XHTML</em> to <em>xml</em> compliant browsers is doomed to fail &#8211;&#160;no matter what we call the garbage.

Yes, <em>garbage</em> is all we have created if browsers can&#39;t render it.</p>



<h5 class="set12">beginner-caution</h5>



<p>It is difficult to start from scratch without the slightest bit of knowledge about web design and <a

href="http://www.w3.org/TR/xhtml1/">XHTML standards</a>. You <i>may</i> save yourself from embarrassment, and the web

from more <em>garbage under false name</em>, by designing in an <a href="http://www.w3.org/TR/html4/">HTML standard</a>

environment where minor, and even some major, errors and coding-flaws don&#39;t disqualify your first attempts

completely.</p>



<p>Thus, a statement like <a href="http://lachy.id.au/log/2005/12/xhtml-beginners">XHTML is not for Beginners</a> might

be right for you. It all depends on what kind of &#8220;beginner&#8221; you are and what you wanna be in the

future.</p>



<p>Personally I don&#39;t agree with the above statement. However, having seen some of the mess and confusion first

hand, I have to admit that a pretty strong warning should be issued &#8211;&#160;before going to the next step and

solve the entire problem.</p>



<h5 class="set12">knowledge first</h5>



<p>Beginners should acquire in-depth knowledge about both <a href="http://www.w3.org/TR/html4/">HTML standard</a> and

<a href="http://www.w3.org/TR/xhtml1/">XHTML standards</a> before releasing <i>anything</i> with a <span

class="codelike">doctype-declaration</span> that spells <span class="codelike">XHTML</span>. <em>HTML</em> and

<em>XHTML</em> are two completely different &#8220;animals&#8221;, but that doesn&#39;t show when we use <em>XHTML</em>

to mimic <em>HTML</em> in a <em>HTML environment</em>.</p>



<p>It is when we want <em>XHTML</em> to perform in an <em>XHTML environment</em> (xml compliant browsers) that both

beginners and more advanced web designers might be caught with their pants down &#8211;&#160;literally.</p>



<div class="expo">

<p>Badly coded <em>XHTML</em> is like handicapping a purebred racehorse with 5 tons of dead weight before a race. It is

dead meat then, and won&#39;t even get to the starting-line. It only takes <i>one flaw</i> in a document to prevent

<em>XHTML</em> from performing at all &#8211;&#160;so knowledge is an unconditional requirement.</p>

</div>



<p class="set0">If we do it right, and make sure everyone else involved also do it right &#8211;&#160;all the time,

then there aren&#39;t all that many problems ahead for an ordinary &#8220;sweet little <em>XHTML</em> page&#8221;

&#8211;&#160;or an entire site for that matter. Purebred <em>XHTML</em> can go where <em>HTML</em> has no entry, and

team up with other <em>xml</em> based languages to perform tasks beyond most of today&#39;s web developers

imagination.</p>



<p class="set12"><em>XHTML</em> is actually quite easy to learn, as long as we don&#39;t try to introduce

&#8220;short-cuts&#8221; and/or sloppy code. One set of rules with room for expansion in all directions, and the rest

can be discarded as rubbish until someone standardize it. Can&#39;t be much simpler than that &#8211; can it?</p>

</div>



<div>

<h4 class="head">procedure for future-proofing&#8230;</h4>



<p>A good and stable procedure does make all the difference. For an ordinary web page (<i>like this one</i>) it&#39;s

all pretty basic, so I&#39;ve put my own procedure for creating such pages in writing here.</p>



<ol class="eap12">

<li>

<h4>back to the basics</h4>



<p>I always start out by creating a true <em>XHTML</em> page. I always work directly in source-code, and use <a

class="z1" href="wd_1_08.html"><em>Opera</em></a> for preview. Others may start with <em>Firefox</em> or

<em>Safari</em>, but I&#160;leave those browsers out till later.</p>

</li>



<li>

<p>I clean out all &#39;human errors&#39; from my <em>XHTML</em> page. My tool of choice is <a

href="wd_1_07.html"><em>HTMLTidy</em></a> which is included in all my source-code editors.</p>

</li>



<li>

<p>Choice of <span class="codelike">doctype</span> is important for later validation &#8211;&#160;but nothing else.

I&#160;leave that to <a href="wd_1_07.html"><em>HTMLTidy</em></a>, but I put restrictions on it. <span

class="codelike">XHTML 1.0</span> has to do for now since I want to jump between <span class="codelike">MIME

types</span> &#8211;&#160;see below...</p>

</li>



<li>

<h4>MIME type: application/xhtml+xml</h4>



<p>I serve my <em>XHTML</em> page as <em>XHTML</em> to <em>xml</em> compliant browsers. That&#39;s done by adding the

correct <em>XHTML</em> extension.</p>



<h5>XHTML-extensions:</h5>



<ul>

<li>.xhtml</li>



<li>.xht</li>

</ul>



<p>This is how an <em>XHTML</em> page/document is supposed to be served to browsers. Never mind what works with other

extensions, as that doesn&#39;t count at all.</p>

</li>



<li>

<p>I check appearance and performance in all <em>xml</em> compliant browsers at hand. I&#160;also check the information

these browsers give me.</p>



<h5>typical and correct info:</h5>



<ul>

<li>MIME type from server:<br />

application/xhtml+xml</li>



<li>Encoding from server (used by Opera):<br />

utf-8 (utf-8)</li>

</ul>



<p>Well now. Looks like that browser got the message. Remember that similar information and performance should be

expected from all <em>xml</em> compliant browsers, so better test until a good and stable procedure is hammered in.</p>

</li>



<li>

<h4>MIME type: text/html</h4>



<p>I need for my web page to work in all major browsers at present time, so I&#160;&#8220;downgrade&#8221; my <span

class="codelike">XHTML 1.0</span> page so it becomes compatible with <span class="codelike">HTML 4.01</span> by

changing its extension. That&#39;s <span class="codelike">MIME type</span> jumping &#8211;&#160;at least in my

terminology.</p>



<h5>HTML-extensions:</h5>



<ul>

<li>.html</li>



<li>.htm</li>

</ul>



<p class="expo exp03">This is where things starts to get ugly, as <em>XHTML</em> shouldn&#39;t really be downgraded to

<em>HTML</em>. Well, we are <a

href="http://www.w3.org/TR/xhtml-media-types/xhtml-media-types.html#media-types"><strong>allowed</strong></a> to do so

for <span class="codelike">XHTML 1.0</span> only, and also <strong>must</strong> do so as long as old and <em

class="tight">xml</em>-incapable browsers are dominating the web.</p>



<p class="sep0">Those who like may discuss theory and practical implications until they have reached a&#160;concensus

and written a&#160;normative piece in the standards. What is important is that this page &#8211;&#160;and all others

like it &#8211;&#160;can be upgraded again just by changing the extension. It is a&#160;valid <em>XHTML</em> page so it

will survive the jump.</p>



<p class="expo">Now, how many badly prepared and badly maintained web pages out here are really able to survive such

<span class="codelike">MIME type</span> jumping? Or&#160;put differently: how many web sites are future-prepared?</p>

</li>



<li>

<p>A quick check to see that the page is performing well in all browsers <a href="wd_1_02_02.html">I&#160;care to

support</a> (<i>that is nearly all, really</i>), and a&#160;quick look at the infomation in my favorite browsers.</p>



<h5>typical and correct info:</h5>



<ul>

<li>MIME type from server:<br />

text/html</li>



<li>Encoding from server (used by Opera):<br />

utf-8 (utf-8)</li>

</ul>



<p>My <em>XHTML</em> page is apparently ready to enter the world of tag-soup browsers.</p>

</li>



<li>

<p>Time to debug <em>Internet Explorer</em> since that&#39;s the main browser that has made this <span

class="codelike">MIME type</span> jumping necessary. That debugging is all done in CSS, so my source-code is not

affected at this&#160;stage.</p>



<p><em>Microsoft Internet Explorer</em> has no idea what <em>XHTML</em> is all about, but I won&#39;t let that browser

destroy my carefully prepared <em>XHTML</em> page. If something can&#39;t be fixed in <em>Internet Explorer</em>

<i>because</i> this is an <em>XHTML</em> page, then it won&#39;t be fixed. Haven&#39;t found any problematic

issues&#160;yet.</p>

</li>

</ol>



<p class="set0">There you are&#8230; A&#160;&#8220;sweet little <em>XHTML</em> page&#8221; that can jump back and forth

between <em>HTML</em> and <em>XHTML</em> when called for. Now I&#160;only have to make sure it is kept perfectly valid

at any stage, and <a href="wd_1_07.html"><em>HTMLTidy</em></a> is called in whenever there&#39;s any doubt. Works every

time and saves me from worries about the&#160;future.</p>



<p>Oh, and <a href="wd_1_08.html"><em>Opera</em></a> sure does lend a&#160;helping hand too. Who needs validators when

one can test in the real thing? Well, a&#160;round-trip to the validator now and than doesn&#39;t hurt,

I&#160;guess.</p>



<p class="set0">As can be seen from the above, I&#160;start at the top with <em>XHTML</em>, and switch to the lower

level of <em>HTML</em> later on. It is the same as when we start coding for the good browsers first, and fix things for

the weak browsers later. Just a&#160;&#8220;common sense approach&#8221; in my opinion, and I&#160;always work

this&#160;way.</p>

</div>



<div>

<h4 class="head">checklist for xhtml&#8230;</h4>



<p>It doesn&#39;t take long to check if ones creation conforms to the standards claimed in the <span

class="codelike">doctype-declaration</span>, at least on the most basic level.</p>



<ol class="eap12">

<li>

<p>A page with a&#160;<span class="codelike">doctype-declaration</span> containing <span class="codelike">XHTML</span>

<strong>must</strong> work flawless in <em>xml</em> compliant browsers when served and recognized as <span

class="codelike">application/xhtml+xml</span>.</p>

</li>



<li>

<p>All solutions, scripts, stylesheets <strong>must</strong> work flawless in <em>xml</em> compliant browsers when

served and recognized as <span class="codelike">application/xhtml+xml</span>.</p>

</li>

</ol>



<p>That&#39;s the short list, but that&#39;s also really all there is to it. We may complicate it by adding in every

little detail that has to work perfect for any <em>XHTML</em> file to survive, but they are all parts of the above so

I&#160;won&#39;t even mention them.</p>



<p class="exp">That one has a&#160;working creation is of course not a&#160;guarantee that the document makes sense.

Semantics in web authoring &#8211;&#160;proper use of elements and so on &#8211;&#160;is still up to the individual

author.</p>

</div>



<div>

<h4 class="head">questions related to xhtml&#8230;</h4>



<p>Those who grasped the above right away won&#39;t have that many questions at this stage. However, we all may at time

like to approach an issue from different angles in order to get a&#160;better understanding of it.</p>



<ol class="eap12">

<li>

<p><b>Question:</b> With <span class="codelike">HTML 5</span> slowly emerging as the next standard, is all this

wrangling with <span class="codelike">XHTML</span> really necessary?<br />

<b>Answer:</b> If you want to avoid ambiguity: <strong>yes!</strong><br />

Of course: it is only necessary if one serves documents with a&#160;<span class="codelike">doctype-declaration</span>

that spells <span class="codelike">XHTML</span> to begin with, but that&#39;s what this article is all

about&#160;anyway.</p>



<p><span class="codelike">HTML 5</span> is <a href="http://www.w3.org/QA/2008/01/html5-is-html-and-xml.html">one

vocabulary, two serializations</a>, and the source-code resulting from an <span class="codelike">xml</span>

serialization is in itself perfectly good <span class="codelike">HTML 5</span> when served as&#160;<span

class="codelike">HTML</span>. Valid and well-working <span class="codelike">XHTML 1.0</span> fits right in.</p>



<p>In practical terms it is most often only a&#160;matter of providing a&#160;valid and well-working <span

class="codelike">XHTML 1.0</span> document with a&#160;new <span class="codelike">doctype</span>, which serves as

a&#160;mode switch in browsers when we&#39;re serving them <span class="codelike">HTML</span>. Although <a

href="wd_additions_34.html">only IE needs doctype</a> in order to perform its best, we better provide&#160;one.</p>



<p>Basing ones work today on valid and well-working <span class="codelike">XHTML 1.0 Strict</span> served as <span

class="codelike">HTML</span> has been, and still is, a&#160;safe approach. No clean-up or convertion is necessary as

one goes up the conformance-ladder from one standard to the next. The familiar <a

href="http://dev.w3.org/html5/html-author/#xhtml-syntax">XHTML syntax</a> can be used in <span class="codelike">HTML

5</span> no matter how it is served, and also is a&#160;requirement if one ever wants to serve documents as&#160;<span

class="codelike">XHTML</span>.</p>

</li>



<li>

<p><b>Question:</b> Is the page behind this article really <em>XHTML</em>?<br />

<b>Answer:</b> Yes, it is. You can check it by loading its <a href="wd_1_06_03.xhtml">indentical twin with an

<em>.xhtml</em> extension</a> to the file-name. You shouldn&#39;t experience any differences in appearance in any

<em>xml</em> compliant browser, but you sure will in <em>Internet Explorer</em>.</p>



<p>Just to make sure you know how one little mistake may break this page in an <em>xml</em> compliant browser, try this

<a href="wd_1_06_03-notvalid.xhtml">almost perfect &amp; valid</a> example. It isn&#39;t a&#160;nice&#160;sight.</p>

</li>



<li>

<p><b>Question:</b> How come the source-code behind this page looks so ugly?<br />

<b>Answer:</b> It is an <a href="wd_additions_26.html">old template</a>, and has quite a&#160;few redundant elements to

simplify styling in old browsers. It may look ugly now, but browsers have no problems with&#160;it.</p>



<p>It won&#39;t be changed anytime soon since all the redundant elements makes it easy to include tests for both old

and new browsers. &#8220;Real-world testing&#8221; is&#160;important, and I&#160;use the entire site for&#160;it.</p>

</li>



<li>

<p><b>Question:</b> How can we ensure that a page is real <em>XHTML</em>?<br />

<b>Answer:</b> By making sure it is always kept 100% valid <em>XHTML</em>.</p>



<p>Note that 99.9% isn&#39;t quite good enough (<a href="wd_1_06_03-notvalid.xhtml">as you may have noticed)</a>, so we

may just as well get some help from <a href="wd_1_07.html"><em>HTMLTidy</em></a> during the process. Not much left for

us to do when <em>Tidy</em> is finished &#8211;&#160;and it takes less than 2&#160;seconds. I&#160;think it is

worth&#160;it.</p>

</li>



<li>

<p><b>Question:</b> But Internet Explorer and other old browsers are lost on <em>XHTML</em>. How do we solve

that?<br />

<b>Answer:</b> By downgrading a perfectly valid <span class="codelike">XHTML 1.0</span> page so it becomes compatible

with <span class="codelike">HTML 4.01</span> &#8211;&#160;that is: change its extension to <em>.html</em>. That ensures

backwards compatibility, and is exactly how this page is made widely awailable. See the procedure above...</p>



<p>There are other ways to do this downgrading, as it is all about making sure old browsers understand that the page

should be handled as <em>HTML</em> since they don&#39;t understand anything else.</p>



<p>As long as old browsers get the message that the <span class="codelike">MIME type</span> is one they can handle,

then they will handle it too &#8211;&#160;the best they can.</p>



<p>Such &#8220;trickery&#8221; is necessary until all major browsers in use are <em>xml</em> compliant. Then we can

move forward with <span class="codelike">XHTML 1.1</span> and <span class="codelike">XHTML 2.0</span> and so on. Only

<span class="codelike">XHTML 1.0</span> may ever be served with the wrong <span class="codelike">MIME type</span>, so

leave those higher <em>XHTML</em> versions out for now &#8211;&#160;unless you know how to reformate the entire

document on the server-side for old browsers.</p>

</li>



<li>

<p><b>Question:</b> Why <em>XHTML</em>? Why not create pages in <em>HTML</em> from the start instead?<br />

<b>Answer:</b> Well, to most the choice doesn&#39;t matter at this moment in time. You may do as you please, but

I&#160;advice you to learn how to develop for the future. You&#39;ll be sorry one day if you didn&#39;t.</p>



<p>On this site <a href="wd_additions_12.html">the choice <i>does</i> matter</a> &#8211;&#160;now. I&#160;want

well-formed and future-prepared <em>XHTML</em>, and I&#160;want to keep <em>Internet Explorer 6</em> in quirks mode.

It&#39;s a personal preference &#8220;thing&#8221; based on experience, and you better have extremely good arguments if

you want me to change my mind about it.</p>

</li>



<li>

<p>Most other answers can be found at <a href="http://www.w3.org/MarkUp/2004/xhtml-faq.html">W3C: html &amp; xhtml

FAQ</a>.</p>

</li>

</ol>

</div>



<div>

<h4 class="head">disclaimer&#8230;</h4>



<div class="zb zbrt"><a href="http://www.w3.org/TR/xhtml1/"><span class="zblead">W3C</span> <span class="spec">XHTML

1.0</span> <span class="more">more about this issue</span></a></div>



<p class="both">I&#160;do not claim that the road to future-prepared <em>XHTML</em> is without its rough stretches.

There certainly are quite a&#160;few pot-holes and bumps one has to avoid. If it isn&#39;t pure and clean

<em>XHTML</em> one wants to create, than one might be better off with old <em>HTML</em> where sloppy code has a chance

to work.</p>



<p class="sep12">I&#160;do claim that it is better to learn how <em>XHTML</em> and <em>xml</em> works, and practice it

from the beginning, rather than to fool around with false believs and sloppy code. It is much harder to clean up ones

own bad habits later&#160;on.</p>



<p class="exp">Take the above as the personal opinion from someone who doesn&#39;t claim to know much about web design.

He does however have a&#160;background in programming on levels that make everything the web and web standards have to

offer look like a&#160;walk in the park.</p>



<p class="set2">There&#39;s nothing to it &#8211;&#160;but a&#160;few hundred thousand browser bugs and other temporary

show-stoppers. That&#39;s the fun part that makes web development look so familiar to an old machine-code programmer.

I&#160;wouldn&#39;t mind if all those technical bugs disappeared for good though, as it can be enough of

a&#160;challenge to deal with my own, very <span class="nb">human, bugs.</span></p>



<p class="flr sgn-b tar">sincerely&#160; <img src="imagedepot/sign-geo.png" alt="georg; sign" /></p>



<p class="fll"><small>Hageland 05.dec.2005<br />

last rev: 06.dec.2008</small></p>

</div>



<p id="overlay">xhtml + CSS&#8230;</p>

</div>

</div>



<div id="add1">

<hr class="throwleft" />

</div>

</div>



<div id="add2"><img class="port" src="imagedepot/me-transp.png" alt="" /> 



<div class="cont"><img class="flr int04" src="imagedepot/blank_12.gif" alt="" /> 



<p class="int07">Maybe I should have found a less controversial subject to write about..?<br />

Wouldn&#39;t be so much fun though.</p>

</div>



<div class="bnav both">

<h4>Section</h4>



<ul>

<li><a class="z3" href="wd_1.html"><img src="imagedepot/introme.png" alt="introduction" /></a></li>



<li><a class="z3" href="toc_7a.html"><img src="imagedepot/tocme.png" alt="Table of Content" /></a></li>

</ul>



<h4>About</h4>



<ul>

<li><a class="z3" href="wd_1_01.html"><img src="imagedepot/ptl-web-design.png" alt="this is PTL web-design" /></a></li>



<li><a class="z3" href="wd_1_02.html"><img src="imagedepot/css-sledge.png" alt="CSS sledgehammer" /></a></li>



<li><a class="z3" href="wd_1_03.html"><img src="imagedepot/accessme.png" alt="accessibility" /></a></li>



<li><a class="z3" href="wd_1_04.html"><img src="imagedepot/printme.png" alt="Print enhanced page" /></a></li>



<li><a class="z3" href="wd_1_04_01.html"><img src="imagedepot/projectme.png" alt="Projection enhanced" /></a></li>



<li><a class="z3" href="wd_1_05.html"><img src="imagedepot/ssrme.png" alt="Small Screen enhanced page" /></a></li>



<li><a class="z3" href="wd_1_06.html"><img class="live" src="imagedepot/xhtml+css.png"

alt="validity of xhtml and CSS" /></a></li>



<!--<li><a class="z3" href="wd_1_06_04.html"><img class="more" src="imagedepot/more-wd.png" alt="more xhtml &amp; CSS"

title="more about xhtml &amp; CSS" /></a></li>-->

<li><a class="z3" href="wd_1_07.html"><img src="imagedepot/html-tidy.png" alt="html tidy" /></a></li>



<li><a class="z3" href="wd_1_08.html"><img src="imagedepot/operame.png" alt="Opera and me" /></a></li>



<li><a class="z3" href="wd_1_09.html"><img src="imagedepot/ffvsie.png" alt="Firefox vs. IE" /></a></li>

</ul>



<h5>the usual</h5>



<ul>

<li><a class="z3" href="main_author.html"><img src="imagedepot/authorme.png" alt="the author" /></a></li>



<li><a class="z3" href="main_copyright.html"><img src="imagedepot/copyrightme.png" alt="Copyright" /></a></li>

</ul>



<h5>the unusual</h5>



<ul>

<li><a class="z3" href="molly_1.html"><img src="imagedepot/m-speak.png" alt="Molly speaks up" /></a></li>

</ul>



<h5>the additional</h5>



<ul>

<li><a class="z3" href="wd_demo.html"><img src="imagedepot/howto.png" alt="Examples" /></a></li>



<li><a class="z3" href="../tos/"><img src="imagedepot/designtst.png" alt="Demo pages" /></a></li>

</ul>

</div>



<img class="int03" src="imagedepot/smil/1072.gif" alt="Oops!" /> 



<p>I just killed a&#160;browser-bug&#8230;</p>



<h4 class="int03">Offsite resources:</h4>



<ul>

<li><a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0 specification</a></li>



<li><a href="http://www.sitepoint.com/forums/showthread.php?t=393445">XHTML vs HTML FAQ</a></li>



<li class="sep12"><a href="http://www.w3.org/MarkUp/2004/xhtml-faq.html">W3C: HTML and XHTML Frequently Answered

Questions</a></li>



<li><a href="http://www.456bereastreet.com/lab/developing_with_web_standards/">Developing With Web Standards</a></li>



<li><a href="http://lachy.id.au/log/2005/12/xhtml-beginners">XHTML is not for Beginners</a></li>



<li class="sep12"><a href="http://h3h.net/2005/12/xhtml-harmful-to-feelings/">Sending XHTML as text/html Considered

Harmful to Feelings</a></li>



<li><a href="http://www.w3.org/QA/2008/01/html5-is-html-and-xml.html">HTML 5, one vocabulary, two

serializations</a></li>



<li><a href="http://dev.w3.org/html5/html-author/">The Web Developers Guide to HTML 5</a> (W3C Editor&#39;s Draft)</li>

</ul>



<h4 class="int07 both">Dear web design experts:</h4>



<p class="exp int03">Validity isn&#39;t important, but performance is.<br />

Valid web pages perform better across browserland, and non-valid XHTML doesn&#39;t perform at all.<br />

<i class="flr">Georg</i></p>



<h3 class="int08 tac">&#8230;make it work&#8230;</h3>



<h4 class="int03">Discussion forums:</h4>



<ul>

<li><a href="http://www.css-discuss.org/">css-discuss.org</a></li>



<li><a href="http://webstandardsgroup.org/">web standards group</a></li>



<li><a href="http://webdesign-L.com/">webdesign-l</a></li>



<li><a href="http://www.webaim.org/discussion/">Web Accessibility Forum</a></li>

</ul>



<p class="exp int03 both">These forums are open for anyone who has questions and/or answers concerning <em>xHTML</em>

and/or <em>CSS</em>.<br />

Become a member and give and receive support.<span class="sep0"><br />

</span> <img class="fll" src="imagedepot/notebook.png" alt="" />Make notes, and become a&#160;better web designer.<span

class="sep0"><br />

</span> Make more notes, and become an even better one&#8230;<br />

<i class="flr">Georg</i></p>



<h4 class="int08 both">Once you have come to love these forums&#8212;<i class="wbrv">&#8203;</i>read these:</h4>



<ul>

<li><a href="http://www.annoyances.org/exec/show/article09-208">How many forum members does it takes to change

a&#160;light bulb?</a></li>



<li><a href="http://hsivonen.iki.fi/wannabe/">HOWTO Spot a Wannabe Web Standards Advocate</a></li>

</ul>



<p class="exp int03 both"><img class="fll" src="imagedepot/notebook.png" alt="" />Yeah, make some notes on those

too&#8230;<br />

<i class="flr">Georg</i></p>



<hr class="throwleft" />

</div>

</div>



<p class="head">about&#8230;<br />

<small>&#8230;2005 - 2008<br />

last rev: 06.dec.2008</small></p>

</div>

</div>



<hr class="throwleft" />

<div id="footer">

<div class="flr"><img class="dh" src="imagedepot/msie-grey.png" alt="IE: dead herring" /><a class="z3"

href="http://browsehappy.com/" title="Browse Happy: Switch to a safer browser today"><img

title="Browse Happy: Switch to a safer browser today" src="imagedepot/bh_150x40_anim.gif"

alt="Browse Happy: Switch to a safer browser today" width="150" height="40" /></a><a class="z3"

href="http://browsehappy.com/browsers/opera/" title="Browse Happy: Switch to a much safer browser today"><img

class="op" src="imagedepot/ico_opera2-blue.png"

alt="Browse Happy with Opera: Switch to a much safer browser today" /></a></div>



<div class="nav">

<ul>

<li><a href="../main-en.html">Home</a></li>



<li><a href="toc_7a.html">Contents</a></li>



<li><a href="wd_1.html">Up</a></li>



<li><a href="wd_1_06_02.html">Prev</a></li>



<li><a href="wd_1_07.html">Next</a></li>



<li><a href="main_author.html">@&#160;author</a></li>



<li><a href="main_copyright.html">&#169;&#160;copyright</a></li>

</ul>

</div>

</div>



<img id="head" src="imagedepot/main-top_05.gif"></div>

</div>

</body>

</html>



