Í hnotskurn: munurinn á HTML og XHTML

Skrifað 1. mars 2004, kl. 10:57

Snöggsoðið yfirlit yfir muninn á HTML 4.01 Transitional og XHTML 1.0 Transitional, ætlað þeim sem þurfa að uppfæra gamlan vefkóða í kórrétt XHTML. (Þetta er aðallega skrifað fyrir félagana í vinnunni.)

  1. Öll HTML mörk og stillingar á þau þurfa að skrifast í lágstöfum. Ekkert hástafakjaftæði!

  2. HTML mörk sem eiga ekki samsvarandi lokunarmark, þurfa að enda á ' />':

    • <br> --> <br />
    • <hr> --> <hr />
    • <img ...> --> <img ... />
    • <input ...> --> <input ... />
    • <link ...> --> <link ... />
    • <meta ...> --> <meta ... />
    • <area ...> --> <area ... />
    • <param ...> --> <param ... />

    Ath: Það er mikilvægt að hafa bil á undan skástrikinu því annars munu sumir eldri vafrar lesa skástrikið sem hluta af nafninu á markinu, finnast útkoman asnaleg, og henda viðkomandi marki í ruslið og sleppa að birta það.

  3. Doctype markið efst í hverju HTML skjali breytist í <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. Í XML skjölum er venjan að byrja skjalið á XML skilgreiningu (t.d. <?xml version="1.0" encoding="UTF-8"?>) en í XHTML skjölum getur borgað sig að sleppa þessari skilgreiningu því hún á það til að vefjast fyrir einstaka vöfrum og valda usla.
  5. Í XHTML má ekki sleppa að loka neinum mörkum. Ef mark á samsvarandi lokunarmark (t.d. <p> og </p>) þá verður að nota það! Þetta gildir sérstaklega um þau mörk sem HTML 4.01 staðallinn segir að megi sleppa að loka. T.d.:

    • <p>...</p>
    • <li>...</li>
    • <option value="gildi">...</option>
    • <dt>...</dt>
    • <dd>...</dd>
  6. Allar löglegar stillingar á HTML mörk þurfa að vera á forminu nafn="gildi". Þetta þýðir að nokkrar gamlar boolean stillingar þurfa að breyta um form. Dæmi:

    • selected --> selected="selected"
    • checked --> checked="checked"
    • compact --> compact="compact"
  7. Allur stílblaða- og javascriptkóði þarf helst að færast yfir í sjálfstæðar skrár, því XHTML er jafnan túlkað sem XML, og samkvæmt XML staðlinum má túlkunarhugbúnaðurinn henda öllum <!-- athugasemdum --> í ruslið áður en skjalið er birt, og því er hætta á að CSS og Javascript kóði sem er falinn frá eldri vöfrum með því að setja <!-- ... --> utan um hann glatist og sé aldrei túlkaður/keyrður/birtur.

  8. XHTML úreldir gömlu name="" stillinguna sem var notuð á <map>, <form>, <img>, <a>, o.fl. mörk. Klassískt dæmi um slíka notkun er <a name="foobar"></a>.

    Allar vísanir á vefslóðarendinguna #foobar leita þess í stað eftir stillingunni id="foobar" innan XHTML skjalsins. Það má setja id="" stillinguna á hvaða HTML mark sem er, en ef manni er umhugað um að vísanirnar virki í öllum eldgömlum vöfrum, þá halda name="" stillingunni áfram inni, en þá til viðbótar við id="" stillinguna.

    Ath: Fyrsti stafurinn í id="" gildi verður að vera enskur bókstafur - annað hvort hástafur eða lágstafur. id="" gildi mega undir engum kringumstæðum byrja á tölustaf, punkti, bandstriki eða öðrum slíkum táknum.

  9. Stilligildi þurfa alltaf að vera innan gæsalappa, og öll fyrirfram skilgreind stilligildi þurfa að skrifast í lágstöfum. Dæmi:

    • rowspan=2 --> rowspan="2"
    • method="POST" --> method="post"
  10. Tungumálastillingin lang="is" sem er yfirleitt sett á <html> markið, þarf að fá á sig XML forskeytið xml: til að öðlast gildi í XHTML skjölum. Ef maður vill vera góður við gamla vafra, þá er samt allt í lagi að leyfa báðum stillingunum að vera í einu. Dæmi: <html xml:lang="is" lang="is">.

  11. Ampersand merkið (&) verður alltaf að skrifa sem &amp; - meira að segja í vefslóðum!

P.S. Fyrir tæpu ári síðan bloggaði ég um reyslu mína af því að flytja þessa síðu yfir í XHTML. Færslurnar hétu "Framfarir á síðunni - XHTML" og "XHTML - breytingar og minnispunktar".


Svör frá lesendum (4)

  1. Gaui svarar:

    Helvíti gott. Allt tekið fram sýnist mér.

    20. mars 2004 kl. 05:38 GMT | #

  2. Már svarar:

    Þetta er langt frá því að vera tæmandi, en þessi listi inniheldur allt það mikilvægasta.

    21. mars 2004 kl. 01:12 GMT | #

  3. Baldur svarar:

    Og hvaða hálfvita datt í hug að búa þennan staðal til? Er venjulegt html ekki nógu gott?!?!?

    21. mars 2004 kl. 16:41 GMT | #

  4. Már svarar:

    Baldur, XHTML er ekkert annað en venjulegt HTML útfært með dæmigerðum XML rithætti. Það er engin skylda að skrifa vefsíður í XHTML og ef þú telur að venjulegt HTML fullnægi þínum tæknilegu þörfum, þá skaltu óhræddur nota það áfram. XHTML er hins vegar heppilegur valkostur fyrir þá sem vilja geta meðhöndlað HTML skjölin sín með almennum XML túlkum, og nýtt sér þá kosti sem XML hefur þegar vinna á ákveðnar tegundir gagnavinnslu.

    Endilega flettu upp í Google, og lestu þér til um kosti og galla XHTML staðalsins og kynntu þér aðeins málið, áður en þú kallar fólk hálfvita.

    21. mars 2004 kl. 17:23 GMT | #

Þessum svarhala hefur verið lokað. Kærar þakkir til þeirra sem tóku þátt í umræðunni.


 

Flakk um vefsvæðið



 

Nýleg svör frá lesendum

  • Óli Jens (Lausnin á efnahagsvandanum)
  • Már (Lausnin á efnahagsvandanum)
  • Kjartan S (Lausnin á efnahagsvandanum)
  • Pjétur G (Lausnin á efnahagsvandanum)
  • reynir (Lausnin á efnahagsvandanum)
  • Egill (Lausnin á efnahagsvandanum)
  • Stefán (Hugmynd að gjörningi)
  • mylotarg drug (HOWTO: Fix the hCalendar and hCard accessibility and i18n problems)
  • mylotarg drug (HOWTO: Fix the hCalendar and hCard accessibility and i18n problems)
  • pamelaanderson (HOWTO: Fix the hCalendar and hCard accessibility and i18n problems)
  • Production Music (Íslenskt leitarvélaspam?)
  • ma801zda (Vélrænar þýðingar)
  • tapasbocnoa (HOWTO: Fix the hCalendar and hCard accessibility and i18n problems)
  • Siggi Palli (Vélrænar þýðingar)
  • Bjarni Rúnar (HOWTO: Fix the hCalendar and hCard accessibility and i18n problems)

 

 

Yfirlit yfir þetta skjal

(Atriðin í listanum vísa á ákveðna kafla ofar á síðunni.)