XHTML vs HTML

Karena fakta bahwa XHTML adalah aplikasi XML, praktik tertentu yang benar-benar legal dalam HTML 4 berbasis SGML harus diubah. Anda sudah melihat sintaks XHTML di bab sebelumnya, jadi perbedaan antara XHTML dan HTML sangat jelas. Berikut perbandingan antara XHTML dan HTML.

Dokumen XHTML Harus Berformat Baik

Bentuk yang baik adalah konsep baru yang diperkenalkan oleh XML. Pada dasarnya, ini berarti semua elemen harus memiliki tag penutup dan Anda harus menumpuknya dengan benar.

CORRECT: Nested Elements

<p>Here is an emphasized <em>paragraph</em>.</p>

INCORRECT: Overlapping Elements

<p>Here is an emphasized <em>paragraph.</p></em>

Elemen dan Atribut Harus dalam Huruf Kecil

Dokumen XHTML harus menggunakan huruf kecil untuk semua elemen HTML dan nama atribut. Perbedaan ini diperlukan karena dokumen XHTML diasumsikan sebagai dokumen XML dan XML peka huruf besar kecil. Misalnya, <li> dan <LI> adalah tag yang berbeda.

Tag Akhir Diperlukan untuk semua Elemen

Dalam HTML, elemen tertentu diizinkan untuk menghilangkan tag akhir. Tapi XML tidak mengizinkan tag akhir dihilangkan.

CORRECT: Terminated Elements

<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>

INCORRECT: Unterminated Elements

<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>

Nilai Atribut Harus Selalu Dikutip

Semua nilai atribut termasuk nilai numerik, harus dikutip.

CORRECT: Quoted Attribute Values

<td rowspan="3">

INCORRECT: Unquoted Attribute Values

<td rowspan=3>

Atribut Minimisasi

XML tidak mendukung minimisasi atribut. Pasangan atribut-nilai harus ditulis lengkap. Nama atribut seperti kompak dan dicentang tidak dapat muncul dalam elemen tanpa nilainya ditentukan.

CORRECT: Non Minimized Attributes

<dl compact="compact">

INCORRECT: Minimized Attributes

<dl compact>

Penanganan Ruang Putih di Nilai Atribut

Saat browser memproses atribut, browser melakukan hal berikut -

  • Strip di depan dan di belakang spasi.

  • Urutan peta dari satu atau lebih karakter spasi (termasuk jeda baris) ke satu spasi antar kata.

Script dan Elemen Gaya

Dalam XHTML, skrip dan elemen gaya tidak boleh memiliki karakter “<” dan “&” secara langsung, jika ada; kemudian mereka diperlakukan sebagai awal markup. Entitas seperti "<" dan "&" dikenali sebagai referensi entitas oleh pemroses XML untuk menampilkan karakter "<" dan "&" masing-masing.

Membungkus konten skrip atau elemen gaya dalam bagian bertanda CDATA menghindari perluasan entitas ini.

<script type="text/JavaScript">
   <![CDATA[
      ... unescaped VB or Java Script here... ...
   ]]>
</script>

Alternatifnya adalah dengan menggunakan skrip eksternal dan gaya dokumen.

Elemen dengan atribut id dan nama

XHTML merekomendasikan penggantian atribut nama dengan atribut id . Perhatikan bahwa di XHTML 1.0, atribut nama elemen ini secara resmi tidak digunakan lagi, dan akan dihapus dalam versi XHTML berikutnya.

Atribut dengan Kumpulan Nilai yang Ditentukan Sebelumnya

HTML dan XHTML keduanya memiliki beberapa atribut yang memiliki kumpulan nilai yang telah ditentukan sebelumnya dan terbatas. Sebagai contoh,type atribut dari inputelemen. Dalam HTML dan XML, ini disebutenumerated attributes. Di bawah HTML 4, interpretasi nilai-nilai ini tidak membedakan huruf besar / kecil, jadi nilaiTEXT setara dengan nilai text.

Di bawah XHTML, interpretasi nilai-nilai ini peka huruf besar / kecil sehingga semua nilai ini ditentukan dalam huruf kecil.

Referensi Entitas sebagai Nilai Hex

HTML dan XML keduanya mengizinkan referensi ke karakter dengan menggunakan nilai heksadesimal. Dalam HTML, referensi ini dapat dibuat dengan menggunakan salah satu&#Xnn; atau &#xnn; dan mereka valid tetapi dalam dokumen XHTML, Anda harus menggunakan versi huruf kecil saja seperti &#xnn;.

Elemen <html> adalah suatu Keharusan

Semua elemen XHTML harus bersarang di dalam elemen root <html>. Semua elemen lainnya dapat memiliki sub elemen yang harus berpasangan dan bertumpuk dengan benar dalam elemen induknya. Struktur dokumen dasarnya adalah -

<!DOCTYPE html....>

<html>
   <head> ... </head>
   <body> ... </body>
</html>