تفاوت html و xhtml در چيست؟
HTML در ابتدا برای ساخت صفحات وب ساخته شد و تا HTML 4.0 هم ارتقا داده شد. با عرضه نسخه HTML 4.01 این زبان با قواعد XHTML که در واقع زبان آینده وب خواهد بود ترکیب شد و در نهایت XHTML در تاریخ 26 ژانویه سال 2000 به عنوان آخرین نسخه html حال حاضر معرفی و وارد بازار شد. تفاوت بین HTML 4.01 و XHTML بسیار ناچیز است. این زبان، نسل جدید زبان وب مي باشد که داراي یکسري اصول و قوانین خاص است تا کمبودهاي HTML را در مورد دستگاههاي کوچک الکترونیکي مانند تلفن های همراه که به وب هم متصل مي شوند را جبران کند.
ویژگیهای html
به طور خلاصه html نوعی زبان نشانه گذاری است و اسکلت اصلی تمامی سایتهایی که تا به الان مشاهده کردهاید، میباشد. html یک زبان ساده است که به عبارتی پیشنیاز ورود به دنیای طراحی وب محسوب میشود. لازم است بدانید که html یک زبان برنامه نویسی نیست و تنها به عنوان نمایش محتوا در ساختارهای از پیش مشخص شده ایجاد شده است. این زبان هیچ ظاهر خاصی ندارد و معمولا به همراه مکمل خود یعنی CSS ظاهر و صورت به خود میگیرد. دو زبان html و css در دسته زبانهای ساده کامپیوتری جای دارند.
ویژگیهای xhtml
در بخشهای قبلی توضیح دادیم که زبان xhtml جزو جدیدترین ورژنهای زبان html میباشد. این زبان با حفظ تمام ویژگیهای html، دارای قوانین سختتری برای به وجود آوردن صفحات، برای نزدیکتر شدن به کد کامل، است. این موضوع سبب میشود تا سایتها مستقل از دستگاههای نمایشگر و مرورگرها عمل کنند. به عبارتی دیگر، تمامی مرورگرها و دستگاههای مدرن مانند رایانه، تلفن هوشمند، PDA و… به درستی یک سایت xhtml را به کاربران نمایش میدهند. بنابراین xhtml جلوهای از یک زبان دقیقتر است و نه صرفا زبان نشانه گذاری که لزوما به دلیل ویژگیهای منحصر به فردش ایجاد شده است! به طور خلاصه ویژگیهای این زبان عبارتند از:
- xhtml تقریبا مشابه html است.
- این زبان کمی دشوارتر است.
- xhtml از تمامی مرورگرهای مطرح پشتیبانی میکند.
مهمترین تفاوتهای html و xhtml
اولین سوالی که ذهن مخاطب را درمورد زبانهای html و xhtml درگیر میکند، این است که این دو زبان چه تفاوتهایی با یکدیگر دارند؟ به طور خلاصه، میتوان گفت که xhtml نسخه ارتقا یافته htmlاست. عمده تفاوتی که میان این دو زبان وجود دارد، بیشتر در حوزه قوانینی است که در نوشتن کدها باید به آنها توجه شود. در ادامه چند مورد از مهمترین این تفاوتها را شرح خواهیم داد.
داشتن عنصر ریشه
در xhtml تمامی محتوای صفحه وب باید در داخل یک عنصر ریشه یعنی <html> قرار بگیرند. بقیه عناصر باید به طور متناسب و با رعایت تقدم و تاخر باز و بسته شدن در داخل عنصر ریشه و یکدیگر نوشته شوند. مانند مثال زیر:
<html>
head>/>…<head>
body>…</body>>
html/>>
نوشتن توضیحات برای تصاویر
در xhtml تمامی تصاویر یا همان عناصر <img> باید دارای خاصیت Alt باشند که در آن توضیحاتی درمورد تصویر ارائه میشود. مانند مثال زیر:
</ “img src=”happy.gif” alt=”Happy face>
فرمت
زبان html دارای فرمت فایلهای مستندات است، اما فرمت xhtml زبان نشانه گذاری میباشد.
تفاوت در عنوان هر دو زبان
همانطور که مشهود است، یکی از تفاوتهای فاحش این دو زبان در نام آنها است. نام html
( Hypertext Markup Language ) به معنای زبان نشانه گذاری هایپرتکست است. این در حالی است که زبان xhtml
( Extensible Hypertext Markup Language) به معنای زبان علامت گذاری به عنوان متن گسترده میباشد.
تفاوت در پروندههای این دو زبان
به طور کلی پروندههایی که با استفاده از xhtml پدید آمدهاند، شلوغتر از html هستند؛ چراکه نیاز به پیروی دقیقتری از قوانین در آن وجود دارد. با این حال، خواندن کدهای آن سختتر نیست؛ زیرا شلوغ بودن کدهای نوشته شده توسط این زبان، نظم بیشتری را نیز پدید آورده است.
کاربرد
به طور خلاصه زبان html کاربردی از SGML است، اما xhtml کاربردی از XML میباشد.
تجزیهگر
html به تجزیهگر اختصاصی خودش نیاز دارد، اما xhtml با تجزیه کننده استاندارد XML قابل تجزیه است.
لانه سازی عناصر
در html به کاربر پیشنهاد میشود تا عناصر را به صورت درست و اصولی لانه کند. این توصیه به کاربران، این امکان را ایجاد میکند تا کد خود را مرتب نگه دارند. لانه سازی اشتباه یک عمل غیرحرفهای است. به هر حال سیستم، حتی با لانه سازی غیراصولی هم کار میکند. اما در زبان xhtml عدم رعایت استانداردها در لانه سازی، سبب ایجاد خطا در کدها میشود و این موضوع در xhtml بسیار حساستر است.
تفاوت در سازگاری با دستگاههای مختلف
بسیاری از صفحاتی که با استفاده از html به وجود آمدهاند، به طور غیراصولی کدنویسی شدهاند. همانطور که گفتیم، این زبان حتی اگر به درستی و با توجه به قوانین، کدنویسی نشده باشد، باز هم کار میکند. امروزه تکنولوژیهای مختلفی از مرورگرها پدید آمدهاند. بعضی از این مرورگرها بر روی گوشیهای موبایل یا دستگاههای کوچک دیگر اجرا میشوند. از آنجایی که این نوع دستگاهها، قدرت یا منبع تفسیر نشانه گذاریهای غیرحرفهای را ندارند، xhtml در این زمینه بسیار کارآمدتر خواهد بود. به بیانی بهتر، این زبان با حساسیتی که بر روی رعایت قوانین نشانه گذاری دارد، با تمام دستگاهها و مرورگرها سازگار است.
نوع رسانه
نوع رسانه زبان html متن html/ است، در صورتی که نوع رسانه در xhtml اپلیکیشن xhtml + xml/ میباشد.
اضافه کردن عناصر جدید
در زبان xhtml اضافه کردن عناصر جدید به آن بسیار سادهتر از زبان html است. همچنین مرورگرها و برنامههای دیگر نیز توسط این زبان پشتیبانی میشوند. علاوه بر موارد ذکر شده، اصول زیر باید در xhtml رعایت شوند، در حالی که این موارد برای html اهمیت چندانی ندارند.
- تعریف تگ DOCTYPE در زبان xhtml ضروری است.
- مقادیر صفات لزوما باید در داخل نقل قول (“) تعریف شوند.
- در xhtml صفات هر تگ لازم است به صورت کامل باشند و به حداقل رساندن صفات ممنوع است.
- صفحات html نگهداری آسانی دارند.
- اسناد xhtml از برنامههایی مانند اپلت و اسکریپت و…میتوانند استفاده کنند.
- xhtml دارای خصوصیات ویژه مایکروسافت است که کلیدهای دسترسی language ، tabindex ، hidefocus و… را در برمیگیرد.
- xhtml دارای eventهای <form> میباشد و زمان تغییر عناصر، ارسال فرم و مانند آن فعال میشود.
چگونگی تبدیل html به xhtml
حال که با ویژگیها و تفاوتهای هر یک از زبانهای نشانه گذاری htmlو xhtml آشنا شدید، لازم است بدانید که چگونه میتوان صفحاتی که با استفاده از html ایجاد شدهاند را به xhtml تبدیل کرد. در ادامه به اختصار مراحل این اقدام را شرح خواهیم داد:
- <XHTML <! DOCTYPEرا به سطر اول هر صفحه اضافه نمایید.
- عنصر xmlns را به عنصر html موجود در هر صفحه اضافه کنید.
- تمامی نامهای عناصر باید به حروف کوچکتر تبدیل شوند.
- تمام عناصر خالی را ببندید.
- تمامی نامهای ویژگی لازم است به حروف کوچک تغییر پیدا کنند.
- همه مقادیر ویژگی در نقل قول (کوتیشین مارک) قرار داده شوند.
به طور خلاصه، برای تبدیل کردن صفحات html به xhtml باید تمام تفاوتهایی که در این مقاله ذکر شد را به خاطر بسپارید و هر یک از آنها را در کدهای خود لحاظ کنید.
XHTML زبان امتدادپذیر نشانهگذاری فرامتن یا (EXtensible HyperText Markup Language)
هر مرورگر وب ، داخل خود يک نوع DTD دارد و به همين دليل است که يکسري از دستورات نسخه هاي مختلف HTML در بعضي از مرورگرها نمايش داده نمي شوند. همچنین XHTML 1.0 از سه الگوی DTD استفاده می کند : Strict (سختگیرانه)، Transitional (انتقالی) و Frameset. این الگو در اصل از HTML 4.0 پدیدار شد و در HTML 4.0.1 دنبال شد.
در حال حاضر سه نوع DTD براي حالتهاي مختلف وجود دارد:
حالت اول براي صفحه اي است که فقط از دستورات صحيح XHTML استفاده شده و براي مرورگرهايي است که از CSS پشتيباني مي کنند،
<! DOCTYPE HTML PUBLIC
“-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
حالت بعدي براي صفحه اي است که مخلوطي از کدهاي HTML و XHTML باشد و مرورگرهاييکه از CSS پشتيباني نمي کنند هم، آن را نمايش دهند،
<! DOCTYPE HTML PUBLIC
“-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
و حالت آخر هم براي استفاده عنصر فريم Frame در صفحه است،
<! DOCTYPE HTML PUBLIC
“-//W3C//DTD XHTML 1.0 Frameset//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
فراموش نکنيد که نوشتن يکي از آنها اجباري است.
جمع بندی
همانطور که پیشتر از این نیز اشاره کردیم، زبانهای html و xhtml هر دو در دسته زبانهای نشانه گذاری قرار میگیرند. به طور کلی، زبان xhtml نسخه پیشرفتهتر html است و بعضی از ویژگیهای آن در ورژنهای قبلی آن موجود نیستند. درواقع xhtml دارای سبکهای مختلف سینتکسی از html میباشد. معمولا متخصصان برنامه نویسی استفاده از xhtml را به دلیل پیشرفتهتر بودن به مبتدیان پیشنهاد نمیکنند و منطقیتر آن است که در ابتدا کدنویسی با زبان html آغاز شود.