حتما همه شنیدید که خیلی جاها توصیه میشه که برای Layout صفحه بجای Table از Div استفاده کنید. اما چرا؟
روزی که HTML ایجاد شد، ایده طراحان آن این بود که شما بتوانید یک کتاب را همانگونه که وجود دارد بر روی اینترنت منتشر کنید و برای این کار هم ابزارهای کافی و مورد نیاز را فراهم کردند. از آنجا که معمولا طراحان از ابزارها نسبت به دانشی که دارند به روش های متفاوتی استفاد می کنند به همین دلیل طراحان ( بی دانش تر ) در استفاده از ابزارهای Html دچار سردرگمی شدند و این ابزارها را بدلیل شباهت کار و بعضا بدلیل راحتی کار بجای هم استفاده کردند. یکی از مهمترین این ابزارها کنترلهای div و table هستند که معمولا بجای هم استفاده میشوند.
وظیفه اصلی تگ div در واقع چیدمان صفحه و طراحی قالب صفحه است و به همین دلیل است که نسبت به table فوق العاده انعطاف پذیرتر است. شما براحتی می توانید یک div را در هر مکانی از صفحه در کوتاهترین زمان قرار بدهید. حالا به این انعطاف پذیری قابلیت حرکت ( انتقال ) را که با کمک تکنولوژی آژاکس اضافه شده نیز بی افزایید.
از طرف دیگر، div کد کمتر و بهینهتری (<div> </div>) نسبت به یک table (که معادل <table><tr><td></td></tr></table>) ایجاد میکند. که این هم باعث کاهش حجم صفحه تولیدی میشود و هم باعث لود شدن سریعتر صفحه .
نکته دیگری که وجود دارد آن است که crawler ها که وظیفه جستجوی و ذخیره کردن صفحات را برای موتورهای جستجو ( مثل گوگل ) بعهده دارند. چون بصورت معنایی صفحات را crawl می کنند بنابراین اگر صفحه شما بهتر و معنایی تر ایجاد شده باشد ، از Page rank بالاتری هم برخوردار خواهد بود. مشکل Crawler ها در ایجاد ارتباط بین مطالب داخل تیبل است. زمانیکه شما مطالب مرتبط با یک موضوع را در بخش های مختلف یک تیبل قرار میدید Crawler ها در نحوه ارتباط این بخش ها با هم و همچنین نحوه ارتباطشون با مطلب اصلی دچار سردرگمی میشن.
نکته دیگری که یک div را در قالب بندی دردرجه بالاتری قرار می دهد، انعطاف پذیری آن در CSS هاست. به این معنی که شما می توانید یک قالب چندین منظوره ایجاد کنید و بعد با تغییر مکان div ها که با css انجام میدهید . کل قالب صفحه تغییر شکل پیدا میکند.
حالا با این همه برتری div نسبت به table ممکن است برای شما این سوال ایجاد شود که table برای چه مواردی باید استفاده شود. طراحان html همانطور که div را برای قالب بندی وقرار دادن متن و تصویر پیادهسازی کردند. table را هم برای ایجاد صفحات به شکل Tab و ایجاد جداول (لیست های موجود در صفحه) بوجود آوردند. در اکثر مواقع توصیه میشود که برای پیادهسازی Tab ها از table استفاده کنید. همانطور که مسلما خود شما هم متوجه شدید با استفاده از یک table براحتی میتوان یک tab را پیادهسازی کرد. درصورتی که اگر بخواهید همان tab را با div پیادهسازی کنید باید زمان و انرژی بیشتری صرف کنید.
در کل با توجه به این نکات کلیدی :
حجم کمتر صفحه تولید شده
Page rank بالاتر در گوگل و سایر search engine ها
قالب انعطاف پذیرتر
برای قراردادن متن و تصویر در وب توصیه شده که از div استفاده شود
کنترل بیشتر بوسیله css
جدول صرفا برای ساختار tabی مناسب است
کنترل و حرکت توسط آژاکس
...
به شما اکیدا توصیه میکنم که بجای استفاده از table در قالببندی صفحات از div استفاده کنید و از قدرت آن لذت ببرید.
بعنوان نمونه این سایت رو ببینید [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این سایت را که با div طراحی شده کاملا بررسی کنید، سمت راست سایت که ظاهر بسیار سادهای دارد یکسری لینک هست که وقتی روی هر کدام کلیک کنید ظاهر سایت کاملا تغییر میکند.
بعد از بررسی این سایت سعی کنید حتی توی ذهنتون هم که شده یه همچین چیزی رو با Table طراحی کنید، انوقت میتونید لزوم استفاده از div در طراحی Layout صفحه رو با تمام وجود درک کنید ...