View Full Version : Div یا Table
rezamizbani
سه شنبه 01 آبان 1386, 11:57 صبح
من در صفحه بندی رو هم با Table هم با Div انجام دادم ولی الان متوجه شدم هیچ فرقی در لود شدن در صفحه هایی که با Div طراحی شدن با صفحاتی که از Table استفاده شده نیست !!!
یعنی در هر دو اول متن ها می آید و بعد تصاویر البته تصاویر هر هر دو به عنوان Style و در Background قرار دارند ؟
از کسانی که در این زمینه اطلاعاتی دارند ممنون می شم منو راهنمایی کنند !!! :خجالت:
Bahram0110
سه شنبه 01 آبان 1386, 14:34 عصر
مشکلتون کجاست؟
rezamizbani
سه شنبه 01 آبان 1386, 14:49 عصر
مشکلتون کجاست؟
سوال اینجاست ؟ که با سختی هایی که در استفاده از صفحه آرایی با اسفاده از Div وجود داره که برای سرعت در بار گزاری وب استفاده می شه ارزش داره که از DIV استفاده کنی با نه از همون Table استفاده کنیم !؟؟؟؟؟؟:بامزه:
Bahram0110
سه شنبه 01 آبان 1386, 15:05 عصر
این بستگی به کاری داره که می خوای انجام بدی
div یه سری خصوصیات داره ، table یه سری خصوصیات دیگه . . .
فکر نمی کنم استفاده از div خیلی هم دردسر ساز باشه :D
peyman1987
سه شنبه 01 آبان 1386, 21:22 عصر
سوال اینجاست ؟ که با سختی هایی که در استفاده از صفحه آرایی با اسفاده از Div وجود داره که برای سرعت در بار گزاری وب استفاده می شه ارزش داره که از DIV استفاده کنی با نه از همون Table استفاده کنیم !؟؟؟؟؟؟:بامزه:
دوست عزیز اون سمت هم بهتون گفتم ماهیت استفاده از div صرفا برای بالا بردن سرعت لود سایت نیست. مشکل اینجاس که جدول بصورت نادرست و شاید از روی ناچاری بعنوان نگهدارنده چارچوب سایت برگزیده شده بود. div جانشینی برای table هست و بنظر من قالب رو خیلی شسته رفته تر از table درمیاره. درضمن استفاده از css هم با استفاده از div خیلی راحتتر میشه.
در کل جدول کد رو خیلی شلوغ میکنه و برای همین هم استفاده از div که باعث کاهش حجم کد میشه در نهایت منجر به لود شدن سریعتر سایت میشه.
در ضمن من هم سختی چندانی در طراحی قالب با div نمیبینم. اتفاقا خیلی بهتر و آسونتر از جدول هست.
PC2st
سه شنبه 01 آبان 1386, 22:45 عصر
متن داخل div در حین load شدن نمایش داده میشه اما در جداول، تا وقتی که کل جدول load نشه، متن داخلش هم نمایش داده نمیشه. از این جهت div بهتر کار میکنه.
oxygenws
چهارشنبه 02 آبان 1386, 02:01 صبح
متن داخل div در حین load شدن نمایش داده میشه اما در جداول، تا وقتی که کل جدول load نشه، متن داخلش هم نمایش داده نمیشه. از این جهت div بهتر کار میکنه.
البته در اینترنت اکسپلورر :)
* پاسخ برادر پیمان از مابقی پاسخ ها شدیدا صحیح تر می باشد :) *
Folaani
شنبه 05 آبان 1386, 16:38 عصر
توصیه این هست که فقط برای تولید layout مورد نظر از جدول استفاده نکنیم تاحد امکان. بطور مثال برای درست کردن ترکیب کلی صفحه که بخوایم فلان بخش لینکها کجا باشه و بدنهء اصلی صفحه کجا باشه و غیره، اینجا جدول فقط برای تولید layout مورد نظر بکار میره و ارتباط منطقی ساختاری ندارن این اطلاعات که بخوایم یکسری دادهء مربوط رو توسط جدول مرتب کنیم و نظم و ارتباط ساختاریشون رو نشون بدیم.
در گذشته جدول بطور گسترده برای کاربرد layout بکار میرفت چون جایگزینی براش نبود.
حداقل در استانداردهای جدید (البته در استانداردهای قدیم هم همین بوده بنظرم) کاربرد اصلی و مفهوم اول جدول رسوندن شکل ساختاری و ارتباط بین اطلاعات هست، تا نمایشی. درواقع دیتای مناسب برای مفهومی بنام جدول اول اون مفهوم ساختاری رو داره و بعد نمایش داده میشه به شکل زیبا و مناسب، و layout ایجاد شده هم مفهوم ساختار رو انتقال میده به کاربران.
اما اینکه بخوایم فقط برای layout، دیتاهایی رو که ربط مستقیمی به هم ندارن با جدول نمایش بدیم هم موجب غیراستاندارد شدن و ناصحیح بودن ساختاربندی منطقی اطلاعاتمون در فایل اچ تی ام ال میشه و هم معایب دیگه که مقداری حجم اضافه، پیچیدگی بیشتر، نیاز به پردازش بیشتر، و کمتر بودن انعطاف پذیری و گسترش پذیری و تغییر هست بطور مثال.
توصیه W3C WCA هم بخاطر ایجاد مشکل برای انواع دستگاههای خوانندهء صفحات (بطور مثال برای افراد نابینا) و دستگاههای با قابلیتهای نمایش محدود (مثل موبایل های با صفحهء متنی) در تفسیر و ارایهء صحیح این دیتاهای نامربوط میگه که تاحد امکان از چنین کاری پرهیز کنیم؛ مگر اینکه وقتی جدول ما به فرم خطی خونده بشه معنا داشته باشه (البته توضیح دقیقش نیاز چندانی نیست و میگذرم).
اما هنوز تمام استفاده های جدول در layout بطور کلی ممنوع هم نشده. یکی از عوامل مهم و کاملا موثر این هست که در حال حاضر هنوز پشتیبانی از CSS2 در تمام مرورگرهای معروف هم کامل و بی نقص نیست و پیاده سازیها هم دچار باگ و خطا و تفاوت های بعضا فاحش و مشکل سازی هست. پیاده سازی بعضی از layout های پیچیده با تمام خواص و کارکردن و نمایش بدون نقص در شرایط و پارامترهای مختلف، مشابه جدولها، اگر غیرممکن نباشه، بسیار سخت و همراه با نیاز به ترفند و گاهی چیزهایی مثل اسکریپت نویسی میشه که کار برنامه نویس رو سخت و نامطمئن میکنه و مزایای استفاده از CSS و لایه ها رو کاهش میده و گاهی خودش معایبی ایجاد میکنه.
درحال حاضر (و نه لزوما در آیندهء نه چندان دور) در اینطور جاها با رعایت توجه به حداقل استفادهء ممکن، مجاز به استفاده از جدول هستیم (گرچه شاید بعضی بگن بهتره سعی کنی اول layout دیگری رو انتخاب کنی که بدون جدول هم بشه پیاده کرد) یا بهتر بگیم کسی نمیتونه بگه قطعا اشتباه کردی و حق نداری از جدول برای اینکار استفاده کنی؛ چون راه واضح و بی نقص و عمومی ای برای ارایه دادن نیست!
گرچه برنامه نویسان و طراحان حرفه ای از حالا باید خودشون رو تطبیق بدن و سعی کنن چنین استفاده هایی از جدول رو تا حد ممکن جایگزین کنن با اشکال مناسب دیگری، و حداقل استفادهء از جدول رو برای ترکیب بندی نمایشی صفحه به حداقل ممکن کاهش بدن؛ و برای قسمتهای دیگه که میشه از روش فراگیر و استاندارد محبوب و موفق CSS استفاده کنن (حتی بسیاری از ویژگیهای خود جدولها رو هم بجای attribute های قدیمی، توصیه شده که با CSS پیاده کنیم - البته این درواقع بدیهی و منطقی هست؛ اما بخاطر اشاره به نکتهء جهتگیری و دید لازم در باب استاندارد و جلوگیری از سوءتعبیرهای ناخودآگاه احتمالی توسط افرادی که ممکنه کمتر با این مقولات آشنا باشن و این متن رو بخونن و ناقص برداشت کنن یا کمی دچار سوء «تعبیر/استنتاج» بشن، اشاره کردم).
پیش بینی میشه که در آیندهء نه چندان دور استاندارد فراگیر نمایشی، CSS خواهد بود (البته الانم استاندارد موفق و عمدهء نمایشی هست، اما منظورم بطور کامل و رفع تمام مشکلات و محدودیتهای حال حاضر هست).
درحال حاضر هنوز جداول بخش بزرگی از خیلی از سایتها و نرم افزارها رو تشکیل میدن (مثلا فرومها استفادهء زیادی از جدول دارن بنظرم (جایی هم خوندم))؛ یعنی بنظرم بخش نسبتا قابل توجهی از این استفاده ها از نوع غیراستاندارد و ناصحیح هست که در حال حاضر هم ممکنه نسبتا براحتی قابل جایگزینی باشه و در آینده و حتی خیلی از نرم افزارهایی که از امروز درحال طراحی هستن هدف باید جایگزینی این روشها با روشهای استاندارد جدید باشه/هست.
خود سایت W3C درحال حاضر با سی اس اس و لایه پیاده شده (صفحهء اول نمونهء خوبی هست)، اما در مرورگرهایی که بخوبی از سی اس اس پشتیبانی نکنن (مثل خیلی مرورگرهای قدیمی) سایت به شکل صحیحش نمایش داده نمیشه! با اینکه ترکیب صفحه خیلی ساده هست. جالب اینکه تا مدتی بعد از توصیهء استانداردهای جدید، W3 خودش از جدول استفاده میکرده. البته اینکار در اون زمان هم بعلت محدودیتهای موجود بوده ظاهرا و لزوما منافاتی با توصیهء یک استاندارد که ممکنه در اون زمان هنوز بخشیش تئوری بوده تا عمل، نداره؛ بهرحال W3 ترجیح داده خودش مرجع و سرمشق باشه، و محدودیت و مشکلات معدود، دربرابر مزایای استاندارد جدید چندان مهم نیست. اکثر مرورگرهای جدید معروف با چنین ترکیب بندی نمایشی ساده ای مشکل خاصی ندارن.
ضمنا بعنوان نمونهء عملی، طرز ساخت چنین layout ای در سایت W3C ارایه شده که میشه استفاده کرد.
گاهی به ایدهء طراحی صفحات به این روشهای جدید سی اس اس و لایه طراحی Tableless گفته میشه (به نقل از ویکیپدیا) و بعنوان متد جدیدی از برنامه نویسی وب شناخته میشه، اما خود ویکیپدیا هم تذکر میده که این اصطلاح و طرز فکر مقداری غلط انداز/گمراه کننده و غیرکلی هست. چراکه جدولها هنوز کاربردهای خاص خودشون رو دارن و طراحی با هدف عدم استفاده از جدول معنای خاصی نمیده! بلکه هدف حداقل استفادهء ممکن از جدول هست؛ بخصوص تنها به منظور ایجاد layout که تقریبا همه موافق هستن روش نامناسب و غیراستانداردی هست.
اصولا تاجایی که دیدم جدولها بخودی خود، عضو کاملا استاندارد و غیرقابل جایگزینی از آخرین نسخه های استاندارد اچ تی ام ال هستن و برنامه ای برای تغییر شکل یا حذفشون هم وجود نداره.
حتی در CSS امکانات لازم برای ایجاد جدول در جاهایی که ساختاری بنام جدول وجود نداره (عمدتا منظور و نمونهء عملی شناخته شده XML هست که اصولا عناصر با ویژگیهای از پیش تعریف شده نداره) پیش بینی شده. البته اینهم درواقع روشن و منطقی هست و فقط بخاطر جامع بودن و رسانندگی مفاهیم پایه ذکر کردم.
در پایان و نتیجه گیری کلی، بنظر من درحال حاضر خیلی جاها مجبور به استفاده از یک روش ترکیبی هستیم! نه بیش از حد میشه وسواس داشت و برای هرکاری با باگها و محدودیتهای مرورگرها مدام ور رفت و وقت و انرژی رو تلف کرد، و نه باید بدون توجه به استاندارد و روش درست کار کرد. قدم اول شناختن عمیق استانداردها و علت و کاربرد درست هرچیزی بجای خودش هست؛ قدم بعدی روش درست تصمیمگیری و انتخاب روشی که معقول و واقعیت گرا باشه و نه دچار افراط و تفریط و تعصب. البته علت اغلب طرز تفکر و تصمیمگیریهای غلط برشمرده شده همون عدم آگاهی و شناخت عمیق از ماهیت مسایل و در سطح بعدی معیارهای تصمیم گیری و روش و تفکر صحیح طراحی و برنامه نویسی حرفه ای هست.
m.hamidreza
شنبه 05 آبان 1386, 17:15 عصر
خسته نباشی عزیز برادر . . .
Folaani
یک شنبه 06 آبان 1386, 11:25 صبح
خواهش میکنم. از قضا بنده پیرامون این مطلب قبلا کنجکاو شده بودم طبق نظراتی که در این باب دیده بودم. بعد اقدام به یک تحقیق اصولی کردم (شامل خواندن رفرنسهای کنسرسیوم وب در این ارتباط، ویکی پدیا و چند منبع پراکندهء دیگر) بنا به تفاوت آراء و عدم ارایهء نظرات موثق و مستند و استدلالهای روشن و محکم، و نتایجی را که مجموعا بدست آوردم در قالب این پست خلاصه کردم. یعنی همین پست خلاصهء ده ها صفحه مطالعه و تحقیق و حتی تست عملی است.
پست را هم در همان فرومی که اینکار را انجام داده بودم در تاپیک مخصوصش درج کرده بودم که اینک برای شما عزیزان نیز کپی و پیست کردم!!
امیدوارم مفید واقع شده باشد/بشود.
Ali_ix
جمعه 11 آبان 1386, 19:33 عصر
البته استفاده از table برای هر کاری، قبل از اینکه سرعت لود رو کم کنه و حجم کد رو زیاد کنه و از خوانایی کد کم کنه، از نظر معنایی و مفهومی غلطه.
در کل اینکار از نظر معنایی (Semantic) غلط هست و به Syntax کد کاری نداره.
و دقیقا به همین شکلی که استفاده بی مورد از table اشتباه هست، استفاده بی مورد از div یا هر element دیگهای هم نادرسته، هر چیز به جای خودش! ;)
sweb
جمعه 11 آبان 1386, 23:10 عصر
حق با شماست table جای خود و div هم جای خود ولی برای لایه بندی صفحه ها استفاده از div به همراه کاربرد صحیح css جز جدیدترین و بهترین اصول طراحی لایه بندی صفحهات هستش. که طراحان حرفه ای دارن ازش استفاده می کنن.
کاربرد table به عنوان ابزار لایه بندی دیگه داره منسوخ میشه. :لبخندساده:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.