PDA

View Full Version : آموزش: 10 HTML Tag ای که تازه کارها استفاده نمی کنند



mehdi.mousavi
چهارشنبه 02 تیر 1389, 00:32 صبح
سلام.
این عنوان مقاله ای هستش که در این آدرس (http://net.tutsplus.com/tutorials/html-css-techniques/the-10-html-tags-beginners-arent-using/) منتشر شده.
حداقل یکبار بخونیدش.

موفق باشید.

alireza_s_84
چهارشنبه 02 تیر 1389, 01:10 صبح
سلام.
این عنوان مقاله ای هستش که در این آدرس (http://net.tutsplus.com/tutorials/html-css-techniques/the-10-html-tags-beginners-arent-using/) منتشر شده.
حداقل یکبار بخونیدش.
موفق باشید.
من زیاد با این مقاله موافق نیستم:
تازه که HTML یاد گرفته بودم خیلی از موارد 2 + 4 + 5 + 6 + 7 + 10 استفاده میکردم.
ولی الان که تسلط کامل روی HTML دارم اصلا از جدول استفاده نمیکنم که بخوام از thead و tbody و tfoot استفاده بکنم.
پانل ASP.Net هم در صورتیکه خصوصیت Caption رو مقدار دهی کنیم بصورت fieldset و <legend> رندر میشه.
H1 الی H6 هم که تاثیر بسیار زیادی توی SEO دارند و از روز اول آشنایی با HTML خودآموزها داد میزدند که باید از اینها استفاده کنیم. پس بالطبع ما هم تو مخمون رفت که اینجوری عمل بکنیم.
optgroup برای دسته بندی کامبو باکسهایی مناسبه که قراره آیتمهایی با گروههای مختلف رو در خودش جای بده مثلا کامبوباکس انتخاب مشاغل که خب به ندرت واسه کسی پیش میاد استفاده بکنه ولی قبول دارم که مبتدی ها که نه حتی برخی افراد خیلی مدعی روحشون هم از اون خبر نداره.
<!– –> من علاقه خاصی به این تگ ها دارم بخصوص موقع طراحی قالب سایت
label هم که هرجا Input ها بخصوص نوع Textbox باشه بکار برده میشه مگر اینکه طراح بخواد تایتل باکس رو توی یک TD نشون بده.
بقیه موارد هم عدم استفاده زیادشون به دلیل وابستگی به موقعیت اون هست. مثلا بیشتر سیستمهای مدریت محتوا نیازمند تگ blockquote هستند ولی چون خیلی از TextEditor های تحت وب اون رو ندارند واسه همین موقع ارسال مطلب یا پست زدن ازش استفاده نمیشه.
در کل با این قسمت Beginners Aren’t Using چندان موافق نیستم.

mehdi.mousavi
چهارشنبه 02 تیر 1389, 11:46 صبح
ولی الان که تسلط کامل روی HTML دارم اصلا از جدول استفاده نمیکنم که بخوام از thead و tbody و tfoot استفاده بکنم.

سلام.
من این جمله رو زیاد می شنوم، میشه بفرمایید فرضا برای نمایش جدولی از اطلاعات (فرضا) مشتریها، چرا نباید از table استفاده کرد؟ وقتی میگید اصلا، یعنی 100% دارید استفاده از جداول رو نفی میکنید. منظورتون این بود، یا من خیلی با وسواس جمله شما رو پردازش کردم؟

به بیان دیگه، میخوام بگم استفاده از کلمه اصلا، اصلا مناسب چنین جمله ای نیست. اگر قراره جدولی از اطلاعات نشون بدیم، شایسته هستش که از table استفاده کنیم، چون این tag برای همین کار دقیقا بوجود اومده.

البته در بخش Layout صفحه، حق با شماست و من بحثی در این مورد ندارم.

موفق باشید.

alireza_s_84
چهارشنبه 02 تیر 1389, 23:21 عصر
سلام.
سلام مهندس خسته نباشی:

من این جمله رو زیاد می شنوم،
خب بستگی داره از کی شنیده باشید! آیا از یک فرد کارکرده و یا یک فرد تازه کار؟
اگر فرد تازه کار باشد که من فکر نمیکنم از این حرفها بزند و اگر کار کرده و مجرب باشد خب حتما دلایلی برای خود دارد.

میشه بفرمایید فرضا برای نمایش جدولی از اطلاعات (فرضا) مشتریها، چرا نباید از table استفاده کرد؟
چرا نباید استفاده کرد اتفاقا اگر فن آوری ASP.NET باشه که گریدها مشکل رو حل میکنند. من مخالفتی ندارم با استفاده از Table و به نظرم برای برخی افراد راحتترین و بهترین راه حله و ضمنا از نظر استانداردسازی هم مشکلی نداره.

وقتی میگید اصلا، یعنی 100% دارید استفاده از جداول رو نفی میکنید. منظورتون این بود، یا من خیلی با وسواس جمله شما رو پردازش کردم؟
واقیعت همینه که من اصلا از جداول استفاده نمیکنم. چون علاقه خاصی به div ها دارم و ضمنا ساختار جدول رو با div پیاده سازی کردم توی تمامی فایلهای CSS من شما سه کلاس ثابت زیر رو میبینید:
table + row + cell
من با این سه کلاس براحتی ساختار جدول رو پیاده سازی میکنم ولی با استفاده از جدول مخالف نیستم.
حالا چرا از جدول استفاده نمیکنم:
اولین چیزی که قبل از روشن و خاموش کردن کامپیوتر یاد گرفتم HTML بود و بعد جاوا اسکریپت. به دلیل جذابیتی که در زمان مبتدی بودن برام داشت خیلی با وسواس همه چیز رو کنترل میکردم.
بارها این مطلب رو خونده و یا شنیدیم که : تا تگ انتهایی table یعنی <table/> رندر نشه هیچ محتوایی از جدول نشون داده نمیشه.
من این رو امتحان کردم و یک جدول با 100 سطر ایجاد کردم و همون جدول رو با div و با 200 سطر پیاده سازی کردم و نتیجه این شد که با وجود تعداد بیشتر سطر در حالت دوم مدت زمان نمایش اون کمتر بود.
در سوی دیگه تنها دلیلی که باعث میشه خیلی افراد از جدول استفاده بکنند عدم توانایی بکارگیری مطلوب div ها در فرمت بندی مطالب هست حتی اگر این مطالب نمایش لیستی از مشتریان باشد.
با وجود فن آوری های سمت سروری وقتی شما برای نمایش یک لیست میتونی تنها با یک خط کد هر تعداد سطر لازمه رو نشون بدی من دلیلی برای استفاده از جدول نمیبنم چون قدرت پیاده سازی با div رو دارم و کد کمتری هم در نتیجه تولید میشه. ضمنا نیازی هم بکارگیری تگ های مختلف tr , td , table , th , tf رو هم نداریم و تنها فقط با یک تگ div و خصوصیت class سر و کار داریم.
تنها جایی که من در فرمها و طراحی های خود از جدول استفاده میکنم صفحه Signup است که خیلی به ندرت استفاده میکنم و بیشتر سعی میکنم با همان div ها کار رو پیش ببرم.
توضیحاتی که دادم نظر شخصی بنده بر اساس استدلالی است که پیشتر گفتم و در نتیجه تناقضی با ماهیت جدول ها و بکارگیری آنها ندارد.
برای مثال: ما خاصیتی بنام position در css داریم که یکی از مقادیر آن static است. که باعث میشود المان مورد نظر حتی با اسکرول شدن صفحه همیشه جای ثابتی داشته باشد و معادل آن AlwaysShowPanel میباشد.
پیاده سازی این روش به دو صورت است:
الف) با بکارگیری جاوا اسکریپت
ب) تعریف یک doctype معتبر و استفاده از خاصیت position :static
به نظر شما کدام مورد را انتخاب کنیم؟؟؟
بی شک گزینه ب بهترین و منطقی ترین روش برای اینکار است هرچند روش الف هم کاملا عملی و استاندارد است.

به بیان دیگه، میخوام بگم استفاده از کلمه اصلا، اصلا مناسب چنین جمله ای نیست. اگر قراره جدولی از اطلاعات نشون بدیم، شایسته هستش که از table استفاده کنیم، چون این tag برای همین کار دقیقا بوجود اومده.
تایید میکنم ولی در مورد کارهای خودم واقعا اصلا استفاده نمیکنم البته 99 درصد و اگر حوصله داشته باشم و کار شخصی باشه حتما به 100 درصد میرسه. و این روش کار منه شاید شما بر اساس دلایل خودتون نپسندی ولی من با دلایلی که عرض کردم از روش خودم استفاده میکنم.
هرکسی برای خود روش کاری داره و من این روش کار رو انتخاب کردم و تا حالا بخوبی هم نتیجه گرفتم برای همین سعی میکنم تجربه کاری رو مطرح کنم البته به استناد دلایل و نه بر اساس میل و سلیقه شخصی.

mehdi.mousavi
پنج شنبه 03 تیر 1389, 12:31 عصر
سلام.
خوشحالم که نظرتون رو صریح مطرح کردید.

همونطور که مطلع هستید، مفهوم HTML در طول زمان، از "هر چیزی که زیبا به نظر بیاد" به "داربستی برای CSS" تغییر کرده اما این دلیل نمیشه که ما اصل اول در مورد HTML رو فراموش کنیم: HTML سندی است ساخت یافته.

وقتی شما میفرمایید که در هر CSS من سبکهایی تحت عناوین table، row و cell رو خواهید دید، این به من نشون میده که شما به جنبه نمایشی کار بیشتر بها داده اید، تا ساختار خود سند. ساختار سند، اولین چیزی هستش که ما بعنوان یک Web Developer باید نگرانش باشیم. اجازه بدید یه پاراگرف از کتاب CSS The missing manual رو اینجا براتون بنویسم:

Using Tables the Right Way
HTML tables have seen a lot of use in the short history of the Web. Originally created to display data in a spreadsheet-like format, tables became a popular layout tool. Faced with HTML's limitations, designers got creative and used table rows and columns to position page elements like banner headlines and sidebars. As you'll see in Part III of this book, CSS does a much better job of laying out Web pages. You can concentrate on using (and formatting) tables for their original purposedisplaying data.

همینطور بر اساس HTML Specifications:

Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media. Additionally, when used with graphics, these tables may force users to scroll horizontally to view a table designed on a system with a larger display. To minimize these problems, authors should use style sheets to control layout rather than tables.

بطور خلاصه:


استفاده از table برای Layout هرگز
استفاده از table برای نمایش Tabular Data، قطعا

به اعتقاد من، باید به جنبه های مختلف این مساله بطور یکسان پرداخته بشه تا بهترین های هر دو دنیا رو (منظورم CSS و HTML هستش) داشته باشیم...

موفق باشید.

alireza_s_84
پنج شنبه 03 تیر 1389, 14:03 عصر
سلام.
خوشحالم که نظرتون رو صریح مطرح کردید.
سلام مهندس :

همونطور که مطلع هستید، مفهوم HTML در طول زمان، از "هر چیزی که زیبا به نظر بیاد" به "داربستی برای CSS" تغییر کرده اما این دلیل نمیشه که ما اصل اول در مورد HTML رو فراموش کنیم: HTML سندی است ساخت یافته.
موافقم و بحثی بر سر این موضوع ندارم.

وقتی شما میفرمایید که در هر CSS من سبکهایی تحت عناوین table، row و cell رو خواهید دید، این به من نشون میده که شما به جنبه نمایشی کار بیشتر بها داده اید، تا ساختار خود سند. ساختار سند، اولین چیزی هستش که ما بعنوان یک Web Developer باید نگرانش باشیم.
با این قسمت چندان موافقم نیستم . ساختار سند من با div پیاده سازی شده که یک تگ HTML استاندارد است.
ضمنا برای این از تگ Div استفاده کردم تا ساختار سند من کم حجم و سبک باشد. به نظر من بکارگیری جدول برای نمایش اطلاعات پرسنلی چندین کارمند در زمان پیاده سازی با div حجم کمتری رو نسبت به table تولید میکنه و لذا برای اینکار از div ها استفاده میکنم. من صحبتی در مورد style ها نمیکنم بلکه به نوع فرمت بندی سند اشاره میکنم. ترکیب سند من با div هم سرعت رندر بالایی داره و هم حجم کمتری در سمت کلاینت ایجاد میکنه و این دو امتیاز سبب میشه که من div رو بر table ترجیح بدم.

<table><tr><td></td></tr></table>
معادل تنها یک <div></div> است و اگر حجم اطلاعات زیاد باشد این یعنی افزایش حجم سند.

از لحاظ ترکیب سند هم آیا میتوان گفت کد فوف نسبت به کد پایین خوش ترکیبتر است؟
یا اینکه ساختار سند فوق بهتر از ساختار سند پایین است؟

ساختار سند در هردو رعایت شده و نمیتوان ادعا کرد که در حالت دوم توجهی به ساختار سند نشده است.
این استدلال من دلیلی بر رد استفاده از جدوال نیست ولی فکر میکنم توجیه خوبی برای ادعای من باشه.

طور خلاصه:
استفاده از table برای Layout هرگز
استفاده از table برای نمایش Tabular Data، قطعا
با این هم موافقم ولی به نظر شما روشی که من در پیش گرفته ام اشتباه است؟
اگر پاسخ شما به سوال فوق مثبت است لطفا با دلیل بیان کنید.

به اعتقاد من، باید به جنبه های مختلف این مساله بطور یکسان پرداخته بشه تا بهترین های هر دو دنیا رو (منظورم CSS و HTML هستش) داشته باشیم...
من هم با شما موافقم ولی به نظر من دنیای HTML از CSS جدا نیست و توجه به یکی خواه ناخواه توجه به دیگریست.

mehdi.mousavi
پنج شنبه 03 تیر 1389, 15:18 عصر
سلام.
گمان میکنم نتوستم منظورم از واژه "ساخت یافته" رو خوب بیان کنم. بله. حرف شما کاملا متینه. HTML ساختاری داره که div هم، یکی از Element های اون هستش. من منظورم Semantic HTML بودش. ببینید. ما برای اینکه آدرس رو در صفحات نشون بدیم، باید از Address Tag توی HTML استفاده کنیم. وقتی قراره چیزی رو نقل کنیم، از blockquote یا q استفاده میکنیم. وقتی قراره header صفحه رو نشون بدیم، از header (در HTML 5) استفاده میکنیم و برای Footer نیز همینطور. برای نمایش جداول (منظورم دقیقا Tabular Data هستش) نیز باید از table استفاده کنیم.

استفاده صحیح از Semantic Web، نقش بسیار مهمی در ابزارهای جانبی ای داره که قراره روی این سند HTML پردازشی انجام بدن. فرض کنید فرد کم بینا (یا نابینایی) رو که Accessible بودن صفحه براش بسیار مهمه. وقتی narrator شروع به خوندن سند براش میکنه، میتونه وقتی table tag شما رو در document دید، بگه "جدول مکملهای غذایی"، یا "جدول مشتریان شرکت" و ... اما وقتی به یک Div میرسه چیکار باید کنه؟

متوجه منظورم شدید؟ این البته فقط یکی از کاربردهای Semantic Web هستش. برای همین عرض کردم که "ساختار سند اولین چیزی هستش که ما باید نگرانش باشیم".

گذشته از این، شما تگهای Table و ... رو مثال زدید که براحتی با یک div قابل جایگزینی هستش. اما آیا درون این div، نباید Row ایجاد کنید و هر ردیف رو به سلولهای کوچکتر (برای نمایش هر Cell) تقسیم کنید؟ البته که این کارو میکنید، چون فرمودید Style هایی به اسم table، row و cell دارید. در واقع میخوام بگم شما اون تگهای table، tr و td رو با div و span جایگزین کردید. پس چطور حجم صفحات پایین میاد؟ درسته، th، tbody و ... رو استفاده نخواهید کرد، اما اگر قرار باشه برای چنین جدولی header داشته باشید، چی؟ نیاز به یک Style دارید، برای Footer همینطور، برای Caption همینطور و ... به بیان دیگه میخوام بگم این انتخاب اونقدرها هم که شما میفرمایید ساده نیست.

در هر حال، Semantic Web رو همیشه مد نظر داشته باشید. استفاده از Div برای Layout صفحه درسته کار شایسته ای هستش، اما استفاده از همین Tag برای نمایش داده های Tabular کار چندان پسندیده ای نیست.

موفق باشید.

Behrouz_Rad
پنج شنبه 03 تیر 1389, 15:27 عصر
استفاده صحیح از Semantic Web، نقش بسیار مهمی در ابزارهای جانبی ای داره که قراره روی این سند HTML پردازشی انجام بدن. فرض کنید فرد کم بینا (یا نابینایی) رو که Accessible بودن صفحه براش بسیار مهمه. وقتی narrator شروع به خوندن سند براش میکنه، میتونه وقتی table tag شما رو در document دید، بگه "جدول مکملهای غذایی"، یا "جدول مشتریان شرکت" و ... اما وقتی به یک Div میرسه چیکار باید کنه؟

این قسمت صحبت های برادر موسوی، طلایی هست... دقیقاً به همون چیزی اشاره کردید که در HTML 5 به اون توجه ویژه ای شده.

موفق باشید.

alireza_s_84
پنج شنبه 03 تیر 1389, 19:43 عصر
استفاده صحیح از Semantic Web، نقش بسیار مهمی در ابزارهای جانبی ای داره که قراره روی این سند HTML پردازشی انجام بدن. فرض کنید فرد کم بینا (یا نابینایی) رو که Accessible بودن صفحه براش بسیار مهمه. وقتی narrator شروع به خوندن سند براش میکنه، میتونه وقتی table tag شما رو در document دید، بگه "جدول مکملهای غذایی"، یا "جدول مشتریان شرکت" و ... اما وقتی به یک Div میرسه چیکار باید کنه؟
خب من با این موضوع موافقم ولی در هنگامیکه خاصیت display یک div بر روی table قرار بگیره و شما یک div و یا span با خاصیت display: table-caption درون اون داشته باشید دقیقا برخورد دستگاههای narrator با اون همانند یک table خواهد بود علاوه بر آن میتوان با یک تگ Caption این مورد را مرتفع کرد. من به اینمورد بارها فکر کردم و تا حدودی تحقیقاتم به من ثابت کرده که روش بکارگیری من هیچ تفاوتی با یک جدول نداره.
توجه شما رو به یک نکته جلب میکنم به نظر شما چرا در CSS 2.0 مقادیر خصوصیت display به این وسعت افزوده شد تا شما تمامی موارد زیر رو داشته باشید:
table , table-caption , table-cell , table-column , table-row , table-footer-group
با بکارگیری خصوصیت های فوق ساختار سند ما دقیقا همون چیزی میشه که ما از یک table انتظار داریم.

گذشته از این، شما تگهای Table و ... رو مثال زدید که براحتی با یک div قابل جایگزینی هستش. اما آیا درون این div، نباید Row ایجاد کنید و هر ردیف رو به سلولهای کوچکتر (برای نمایش هر Cell) تقسیم کنید؟ البته که این کارو میکنید، چون فرمودید Style هایی به اسم table، row و cell دارید. در واقع میخوام بگم شما اون تگهای table، tr و td رو با div و span جایگزین کردید. پس چطور حجم صفحات پایین میاد؟ درسته، th، tbody و ... رو استفاده نخواهید کرد، اما اگر قرار باشه برای چنین جدولی header داشته باشید، چی؟ نیاز به یک Style دارید، برای Footer همینطور، برای Caption همینطور و ... به بیان دیگه میخوام بگم این انتخاب اونقدرها هم که شما میفرمایید ساده نیست.
در اینمورد یه کم سختگیرانه قضاوت کردین من در گفته های پیشین گفتم هرگاه تعداد رکوردهای نمایشی من زیاد باشه این تفاوت به چشم میاد ولی در مورد اینکه پیاده سازی table با div نیازمند تگهای تو در تو است رو من با یک نمونه مثال که سر فرصت آپلود میکنم نشون میدم. در واقع نکات ریزی وجود داره تا بهش اشاره بکنم.
اگر شما در دو سطر متوالی ستونی داشته باشید که یکی از آنها بزرگتر از دیگری باشد به ناچار باید از خصوصیت colspan استفاده کنیم تا ستون پایین به مثال معادل دو ستون فوق باشد ولی در هنگام پیاده سازی با div نیازی به اینکار نیست. یا اینکه حداقل <tr></tr> در این روش حذف میشه. اما شما حالتی رو در نظر بگیرید که قراره تنها چند سطر پشت سر هم نشون بدید اونوقت تنها با چند <div></div> این کار صورت میگیره و این یعنی کاهش <td></td> به اندازه سطرهای موجود ما.
وسعت div ها در پیاده سازی و انعطاف پذیری با خصوصیت display فراتر از اینهاست. و من فکر نمیکنم این روش من منافاتی با گفته های شما در این زمینه داشته باشه.

ین قسمت صحبت های برادر موسوی، طلایی هست... دقیقاً به همون چیزی اشاره کردید که در HTML 5 به اون توجه ویژه ای شده.
جناب مهندس موسوی درست میفرمایند ولی در زمینه جایگزینی div و table که من مطرح کردم کمی سختگیرانه قضاوت میکنه چو اینکه روش من ناقض هیچکدوم از گفته های ایشون نیست و من کاملا با ایشون موافق هستم.

PC2st
پنج شنبه 03 تیر 1389, 20:35 عصر
بارها این مطلب رو خونده و یا شنیدیم که : تا تگ انتهایی table یعنی <table/> رندر نشه هیچ محتوایی از جدول نشون داده نمیشه.
من این رو امتحان کردم و یک جدول با 100 سطر ایجاد کردم و همون جدول رو با div و با 200 سطر پیاده سازی کردم و نتیجه این شد که با وجود تعداد بیشتر سطر در حالت دوم مدت زمان نمایش اون کمتر بود.من هم قبلا اینطور فکر می‌کردم ولی پس از مدتی فهمیدم که این مورد فقط در مرورگر IE صحیح است ولی در سایر مرورگرها (از جمله firefox) اینطور نیست و برای نمایش محتویات درون table نیازی نیست تا داده‌ها تا انتها خوانده شود. به خاطر رفتار یک مرورگر خاص، نباید ساختار کدهای HTML را در هم شکست. همانطور که از تگ p برای ایجاد پاراگراف استفاده می‌کنید (با وجود اینکه به جای آن می‌توان از div هم استفاده کرد) همانطور که از تگهای h1 و h2 و ... برای ایجاد تیتر استفاده می‌کنید (با وجود اینکه به جای آن با span هم می‌شه) همانطور که از تگ em و strong و ... برای تغییر ظاهر متن استفاده می‌کنید (هرچند به جای آن با تگ span هم می‌شه)... بنابراین، با وجود اینکه می‌توان از div برای ظاهرسازی جداول استفاده کرد اما جدول واقعی در زبان HTML، آن چیزی است که در داخل تگ‌های table و td و tr و ... قرار دارد. همانطور که جناب موسوی گفت.

alireza_s_84
پنج شنبه 03 تیر 1389, 22:29 عصر
من هم قبلا اینطور فکر می‌کردم ولی پس از مدتی فهمیدم که این مورد فقط در مرورگر IE صحیح است ولی در سایر مرورگرها (از جمله firefox) اینطور نیست و برای نمایش محتویات درون table نیازی نیست تا داده‌ها تا انتها خوانده شود.
این حالت در تمامی مرورگرها صادقه و این به دلیل ماهیت جدول هاست. حال اگر بعضی مرورگرها برخی از محتویات جدول رو رندر میکنند دلیل بر نقض این ادعا نیست بلکه به سبب هوشمندی مرورگر است.

به خاطر رفتار یک مرورگر خاص، نباید ساختار کدهای HTML را در هم شکست.
درهم شکستن رو میشه تعریف کنید؟؟؟
ضمنا مگر ما تابع رفتار مرورگرها نیستیم؟ چرا خیلی افراد از طراحی Layout با div هراس دارند؟؟؟ آیا این به سبب رفتار متفاوت و متناقض مرورگرها نیست؟؟؟
ضمنا شما به قول خودتون میشه درهم شکستن رو در روش من مشخص کنید؟؟؟
و شما میتونید پاسخ من رو بدید که چرا مقادیر خاصیت display در CSS 2.0 به بعد همانطور که ذکر شد این موارد رو شامل شد؟؟؟

همانطور که از تگ p برای ایجاد پاراگراف استفاده می‌کنید (با وجود اینکه به جای آن می‌توان از div هم استفاده کرد) همانطور که از تگهای h1 و h2 و ... برای ایجاد تیتر استفاده می‌کنید
من با این حرف شما موافق نیستم.
بکارگیری تگ ها برای مرورگرها و موتورهای جستجو و حتی دستگاههای narrator معنای خاصی دارند و فراتر از نمایش یک متن و یا استایل خاص هستند.

همانطور که از تگ em و strong و ... برای تغییر ظاهر متن استفاده می‌کنید (هرچند به جای آن با تگ span هم می‌شه)...
ولی برای یک موتور جستجو بخشی که درون یک strong قرار داره به مراتب پرمعناتر از یک متن bold شده با span یا بزرگ شده با em هست و این گفته شما اصلا منطقی نیست.
این چیزی که شما میفرمایید بحثی کاملا جدا از بحث من و جناب موسوی داره و اختلاف من و جناب موسوی بر سر این موارد نیست بلکه بر سر پیاده سازی روشی ابداعی ست که اگر ایشون با دلایلی به من اثبات بکنند که این روش رفتاری متفاوت از رفتار یک جدول داره من با کمال میل می پذریم چنانچه خود جناب موسوی تا کنون روش من رو کاملا رد نکرده بلکه اصرار دارند که بکارگیری table منطقی تر است.

بنابراین، با وجود اینکه می‌توان از div برای ظاهرسازی جداول استفاده کرد اما جدول واقعی در زبان HTML، آن چیزی است که در داخل تگ‌های table و td و tr و ... قرار دارد. همانطور که جناب موسوی گفت.
میتونم بپرسم منظور شما از جداول واقعی چیست؟؟؟ یا اینکه شما اصلا خبر ندارید که در پشت صحنه رندر شدن یک جدول مرورگرها از پانل ها استفاده میکنند.
اگر به دقت به کنترلهای موجود در ویندوز دقت کنید میبینید ما چیزی بنام table نداریم و مجموعه ای پانلهای منظم در کنار هم قرار گرفته است.
ایا رندر شدن و تفسیر کدهای یک سند HTML چیزی به جز نمایش آنها با کنترلهای معمول ویندوز است؟
شما وقتی یک </ 'input type='text> در HTML میبنید ایا ما در سیستم عامل ویندوز چیزی بنام input داریم یا معادل آن TextBox است؟
بنابراین قاطی کردن این مسائل و مسائل مربوط به SEO اصلا در این بحث جایی ندارند.
در آخر اینکه اضافه شدن تگ های جدید چون header و footer در HTML5 دلایلی فراتر از فرمت بندی سند دارند و از مهترین دلایل آن بهینه سازی سند برای کار موتورهای جستجو ، تمایز قائل شدن بین ماهیت و ظاهر اشیا و در نهایت Semantic ای است که جناب موسوی به اون اشاره کردند.

PC2st
پنج شنبه 03 تیر 1389, 23:35 عصر
این حالت در تمامی مرورگرها صادقه و این به دلیل ماهیت جدول هاست. حال اگر بعضی مرورگرها برخی از محتویات جدول رو رندر میکنند دلیل بر نقض این ادعا نیست بلکه به سبب هوشمندی مرورگر است.
...
ضمنا مگر ما تابع رفتار مرورگرها نیستیم؟ چرا خیلی افراد از طراحی Layout با div هراس دارند؟؟؟ آیا این به سبب رفتار متفاوت و متناقض مرورگرها نیست؟؟؟
...
میتونم بپرسم منظور شما از جداول واقعی چیست؟؟؟ یا اینکه شما اصلا خبر ندارید که در پشت صحنه رندر شدن یک جدول مرورگرها از پانل ها استفاده میکنند.
اگر به دقت به کنترلهای موجود در ویندوز دقت کنید میبینید ما چیزی بنام table نداریم و مجموعه ای پانلهای منظم در کنار هم قرار گرفته است.
ایا رندر شدن و تفسیر کدهای یک سند HTML چیزی به جز نمایش آنها با کنترلهای معمول ویندوز است؟
شما وقتی یک </ 'input type='text> در HTML میبنید ایا ما در سیستم عامل ویندوز چیزی بنام input داریم یا معادل آن TextBox است؟دوست عزیز در مقابل این جملات شما، یک پرسش به ذهن من رسیده است... مگر شما برای مرورگرها طراحی می‌کنید!!!!!؟!! HTML و CSS دارای استاندارد هستند. خوشبختانه بسیاری از مرورگرها (به تازگی تقریبا همه آنها) سعی در پشتیبانی و رعایت استانداردها دارند.


این حالت در تمامی مرورگرها صادقه و این به دلیل ماهیت جدول هاست. حال اگر بعضی مرورگرها برخی از محتویات جدول رو رندر میکنند دلیل بر نقض این ادعا نیست بلکه به سبب هوشمندی مرورگر است.خوشحال می‌شوم این ادعای خود را اثبات کنید و بگویید که در کدام قسمت از « استاندارد XHTML یا HTML » آمده و قید شده که تگ table باید تا انتها خوانده شود و سپس نمایش داده شود؟ قبل از ادامه بحث، امیدوارم ابتدا رفع شبهه کنید و ادعایی که کرده‌اید را اثبات کنید. ممنون.


من با این حرف شما موافق نیستم.
بکارگیری تگ ها برای مرورگرها و موتورهای جستجو و حتی دستگاههای narrator معنای خاصی دارند و فراتر از نمایش یک متن و یا استایل خاص هستند.
...
ولی برای یک موتور جستجو بخشی که درون یک strong قرار داره به مراتب پرمعناتر از یک متن bold شده با span یا بزرگ شده با em هست و این گفته شما اصلا منطقی نیست.خب برادر من، مگر چیزهایی که گفته بودم خلاف این بود که هم‌اکنون با آنها مخالفت می‌کنید!!؟ جوابی که من نوشته بودم یک مثال نقض بود و منظورم این بود که اگر تگ table با تگ div در ساختار HTML هیچ تفاوتی با هم ندارند، پس تگ‌های h1 و em و ... هم نباید در ساختار با تگ span تفاوتی داشته باشند (در حالی که اینطور نیست و این مثال نقضی بود که برای شما زده بودم).

ببینید اگر شما قبول دارید که رفتار تگ‌های em و strong و ... با رفتار تگ span متفاوت است و نباید از تگ span به جای آنها استفاده شود، پس چطور است که این همه بر گفتهٔ خود پافشاری می‌کنید که می‌توان به جای table از div استفاده کرد و تغییری در ساختار HTML هم بوجود نمی‌آید!؟ در حالیکه خلاصهٔ گفتگوی من در جواب قبل این بود: با استفاده کردن از div به جای table، ساختاری که از HTML انتظار می‌رود (و استاندارد HTML آن را به طراحان پیشنهاد داده) از بین خواهد رفت (یا همان شکسته خواهد شد).


درهم شکستن رو میشه تعریف کنید؟؟؟منظورم را در چند خط بالاتر نوشتم. استفاده از هر تگ HTML در هر جا و مکانی صحیح نیست. یعنی نمی‌توان از تگ div به جای table استفاده کرد چون div برای «تقسیم‌بندی موضوعات» است و table برای «جدول‌بندی اطلاعات»...

در آخر اینکه، منظورم از «جداول واقعی» همان جداولی است که در استاندارد زبان HTML به عنوان جدول معرفی شده‌اند نه ترکیب آن تگ‌های div که حتی مرورگر هم نمی‌داند در واقع یک جدول را تشکیل می‌دهند!

سوال دیگر اینکه می‌شود بگویید وظیفهٔ زبان HTML چیست و وظیفهٔ CSS چیست؟ چرا این دو مکمل یکدیگر هستند؟ و چه چیزی باعث شده که شما فکر کنید زبان CSS می‌تواند وظیفهٔ تعریف یک جدول را در فایل html. داشته باشد؟ (همانطور که می‌دانید HTML برای تعریف اجزای صفحه و CSS برای تعریف ظاهر آنها به کار می‌رود، یعنی اگر شما ظاهر چندین div را شبیه به یک جدول کنید، اما در باطن چیزی به نام جدول ندارید اگرچه در ظاهر شبیه به جدول است)


و شما میتونید پاسخ من رو بدید که چرا مقادیر خاصیت display در CSS 2.0 به بعد همانطور که ذکر شد این موارد رو شامل شد؟؟؟:) شما بگویید که چرا در استاندارد جدید HTML تگ‌های table و td و tr هنوز deprecate نشدند؟!؟
اما در جواب به این سوال شما، قبل از هر چیز چند خط قبل را بخوانید که در آن نوشتم اهداف زبان HTML و CSS در چیست... در ادامه باید بگویم که CSS با داشتن پروپرتی display فقط می‌خواهد نحوهٔ نمایش اجزای « صفحات وب » را مشخص کند ولی وظیفهٔ مشخص کردن نوع اجزای «صفحه وب» بر عهده HTML است. یعنی هر چه شما در CSS سعی کنید که بگویید فلان چیز جدول است، اما در صفحه وب آن چیز جدول نخواهد بود، زیرا فقط در ظاهر جدول است اما در باطن جدول نیست.


در آخر اینکه اضافه شدن تگ های جدید چون header و footer در HTML5 دلایلی فراتر از فرمت بندی سند دارند و از مهترین دلایل آن بهینه سازی سند برای کار موتورهای جستجو ، تمایز قائل شدن بین ماهیت و ظاهر اشیا و در نهایت Semantic ای است که جناب موسوی به اون اشاره کردند. متاسفانه این حرف شما با حرف‌های گذشته‌تان در تناقض است، اگر این ها حرف شماست، پس چطور است که تگ table یک استثناست؟ خوشحال می‌شوم این ادعای خود را نیز اثبات کنید که چرا تگ table استثنا است.

alireza_s_84
جمعه 04 تیر 1389, 01:21 صبح
دوست عزیز در مقابل این جملات شما، یک پرسش به ذهن من رسیده است... مگر شما برای مرورگرها طراحی می‌کنید!!!!!؟!! HTML و CSS دارای استاندارد هستند. خوشبختانه بسیاری از مرورگرها (به تازگی تقریبا همه آنها) سعی در پشتیبانی و رعایت استانداردها دارند.
بله زیرا این مرورگرها هستند که HTML را تفسیر میکنند مگر به نظر شما ما برای مرورگرها HTML نمی نویسیم پس برای چه می نویسیم؟
مثل اینکه شما یادت رفته این مرورگره که HTML رو تفسیر میکنه و چیزی که شما میبینی کار همون مرورگریه که شما میگی مگه برای مرورگرها طراحی می‌کنید؟؟؟
این حرف شما بسیار عجیبه یا شاید باید دوباره بازگشتی به کتب آموزشی بکنید و یک مرور یادآور این مطالب باشه.

خوشحال می‌شوم این ادعای خود را اثبات کنید و بگویید که در کدام قسمت از « استاندارد XHTML یا HTML » آمده و قید شده که تگ table باید تا انتها خوانده شود و سپس نمایش داده شود؟ قبل از ادامه بحث، امیدوارم ابتدا رفع شبهه کنید و ادعایی که کرده‌اید را اثبات کنید. ممنون.
این ادعای من نیست بلکه به همین سبب است که طراحی TableLayout جای خود را به DivLayout داد و جز این نبود که جداول به سبب ماهیت خود جای خود رو به div ها دادند.
واقعا عجیبه که شما بدون اطلاع دقیق اظهارنظر میکنید شما در این بخش میتونید به کهن ادعای من برسید :
http://www.w3.org/TR/WD-tables-960123.html#rationale
لطفا با دقت مطالعه کنید و اگر حوصله داشتید کل مطالب رو بخونید چون نگرش شما رو نسبت به Table عوض میکنه و ضمنا شناخت لازم رو بهتون میده.
شما در این تاپیک (http://barnamenevis.org/forum/showpost.php?p=411559&postcount=6) در همین مورد اظهار نظر کرده بودید حال به چه سبب شما از نظر خودتون برگشتید شما رو به پاسخ قبلی خودم ارجاع میدم که حتما مرور دوباره ای بر مطالب گذشته خود بکنید.
در این تاپیک (http://barnamenevis.org/forum/showthread.php?t=221842) استاد کرامتی به زیبایی هرچه تمام ماهیت جدول را شرح داده و برای اثبات اظهارات خود نیز رفرنس هایی رو مشخص کرده اند میتونید مطالعه کنید.

منظورم را در چند خط بالاتر نوشتم. استفاده از هر تگ HTML در هر جا و مکانی صحیح نیست. یعنی نمی‌توان از تگ div به جای table استفاده کرد چون div برای «تقسیم‌بندی موضوعات» است و table برای «جدول‌بندی اطلاعات»...
دوست عزیز من تابحال در هیچ کتاب و مقاله ای چیزی در مورد درهم شکستن کدهای HTML نخونده و نشنیدم خوشحال میشم بیشتر من رو راهنمایی بکنید.
ضمنا میشه برای من این جمله رو دقیقا موشکافی کنید که منظورتون چیه:
چون div برای «تقسیم‌بندی موضوعات» است و table برای «جدول‌بندی اطلاعات»
فرق موضوعات با اطلاعات در چیه؟ و این چیزی که شما گفتید چه باید تفسیر کرد؟

در آخر اینکه، منظورم از «جداول واقعی» همان جداولی است که در استاندارد زبان HTML به عنوان جدول معرفی شده‌اند نه ترکیب آن تگ‌های div که حتی مرورگر هم نمی‌داند در واقع یک جدول را تشکیل می‌دهند!
دوست عزیز با اظهارات شما تاکنون من به این نتیجه رسیدم که شمایید که نمیدانید آن ترکیب جدول است یا خیر تا اینکه مرورگرها در آن سردرگم شوند.

سوال دیگر اینکه می‌شود بگویید وظیفهٔ زبان HTML چیست و وظیفهٔ CSS چیست؟ چرا این دو مکمل یکدیگر هستند؟ و چه چیزی باعث شده که شما فکر کنید زبان CSS می‌تواند وظیفهٔ تعریف یک جدول را در فایل html. داشته باشد؟ (همانطور که می‌دانید HTML برای تعریف اجزای صفحه و CSS برای تعریف ظاهر آنها به کار می‌رود، یعنی اگر شما ظاهر چندین div را شبیه به یک جدول کنید، اما در باطن چیزی به نام جدول ندارید اگرچه در ظاهر شبیه به جدول است)
دوست عزیز بکارگیری یک div بجای table هیچ ایرادی ندارد و من یک مورد ایراد جناب موسوی رو با راه حلی پاسخ دادم. اما مطمئنا بکارگیری table بجای div اینگونه نیست. بخصوص در مورد مسائل SEO.
آیا اضافه شدن آن مقادیر به خاصیت display تنها هدفش برای نمایش و فرمت بندی بوده است؟
میتوان بپرسم لزوم اینکار چه بوده است؟؟؟
ولی به نظر من در پس این اتفاق دلایل زیادی وجود دارد.

:) شما بگویید که چرا در استاندارد جدید HTML تگ‌های table و td و tr هنوز deprecate نشدند؟!؟
بنده نباید به این سوال جواب بدهم چون این موارد رو رد نکرده ، تاکیدی بر عدم استفاده از آنها نداشته و از ابتدای امر مخالف نبوده ام. پس چرا باید به شما پاسخ بدهم در حالیکه هیچ ادعایی بر منسوخ بودن آنها نکرده ام؟؟؟

متاسفانه این حرف شما با حرف‌های گذشته‌تان در تناقض است، اگر این ها حرف شماست، پس چطور است که تگ table یک استثناست؟ خوشحال می‌شوم این ادعای خود را نیز اثبات کنید که چرا تگ table استثنا است.
دوست عزیز شما چه تناقضی بین گفته های من مبینید؟؟؟
من میگویم شبیه سازی رفتار table با روشی که من پیش گرفته ام امکانپذیر است یعنی با این روش تفاوتی بین div و table نیست حال اینکه شما میگویید در مورد table استثنا هست. بله در مورد این تگ استثنا وجود دارد.
استثنا در همه جا وجود دارد حتی در زبان HTML و این چیز عجیبی نیست. ضمنا بحث ما فرمت بندی یک سند نیست بلکه ساختار یک سند است و من در مورد ساختار روش خود صحبت میکنم نه در مورد ظاهر و فرمت بندی و استایل آن.

PC2st
جمعه 04 تیر 1389, 13:14 عصر
شما در این تاپیک (http://barnamenevis.org/forum/showpost.php?p=411559&postcount=6) در همین مورد اظهار نظر کرده بودید حال به چه سبب شما از نظر خودتون برگشتید شما رو به پاسخ قبلی خودم ارجاع میدم که حتما مرور دوباره ای بر مطالب گذشته خود بکنید.دوست عزیز، شما مثل اینکه اصلا نوشته‌های من را نمی‌خوانید :شیطان:، من در چند پست بالاتر قبلا به این موضوع اشاره کرده بودم: « من هم قبلا اینطور فکر می‌کردم ولی پس از مدتی فهمیدم که این مورد فقط در مرورگر IE صحیح است ولی در سایر مرورگرها (از جمله firefox) اینطور نیست » خوشحالم که برای این حرفی که زده بودم، مدرک هم آوردید :چشمک:


در مورد سایر مطالبی که نوشتید، من هر چه سعی می‌کنم که منظور خود را به شما برسانم، متاسفانه موفق نمی‌شوم یا متاسفانه شما به خوبی جواب من را مطالعه نمی‌کنید.


این ادعای من نیست بلکه به همین سبب است که طراحی TableLayout جای خود را به DivLayout داد و جز این نبود که جداول به سبب ماهیت خود جای خود رو به div ها دادند.۱) امروزه کمتر کسی برای صفحه‌آرایی (layouting) از جدول استفاده می‌کند، بحث من بر سر این موضوع نیست.
۲) اما برای اطلاعات یا نوشته‌هایی که جزئی از یک جدول هستند، باید از تگ table استفاده کرد، نه از تگ div.
*) مورد ۱ و ۲ بسیار از هم جدا هستند و نباید آنها را با هم یکی دانست. پس هر جا که لازم بود از تگ div و هر جا که لازم بود از تگ table استفاده می‌شود. کل حرف من همین است و بس.


در این تاپیک (http://barnamenevis.org/forum/showthread.php?t=221842) استاد کرامتی به زیبایی هرچه تمام ماهیت جدول را شرح داده و برای اثبات اظهارات خود نیز رفرنس هایی رو مشخص کرده اند میتونید مطالعه کنید.شما که این لینک را آورده‌اید، حداقل ادامهٔ آن را هم می‌خواندید، زیرا گفتگوهای صورت گرفته در این لینک در تایید سخنان بنده است! در ادامه پاسخ‌های داده شده در آن لینک، خواهید خواند که چند بار بطور صریح گفته شده که استفاده از div به جای table در همه حالت صحیح نیست...

در پایان امید است که این یکی را حداقل قبول کنید:

HTML مخفف HyperText Markup Language است یعنی زبان نشانه‌گذاری مافوق متن؛ همانطور که از اسمش مشخص است وظیفهٔ آن تعریف ساختار اطلاعات است.
به ویکی‌پدیا رجوع کنید که در خط اولی اینطور نوشته (به کلمه structured دقت کنید):
HTML, which stands for HyperText (http://en.wikipedia.org/wiki/HyperText) Markup Language, is the predominant markup language (http://en.wikipedia.org/wiki/Markup_language) for web pages (http://en.wikipedia.org/wiki/Web_page). It provides a means to create structured documents (http://en.wikipedia.org/wiki/Structured_document) by denoting structural semantics (http://en.wikipedia.org/wiki/Semantic) for text such as headings, paragraphs, lists, links, quotes and other items
CSS مخفف Cascading Style Sheets است یعنی برگه‌های ظاهر کاسکادینگ؛ همانطور که از اسمش مشخص است وظیفهٔ آن تعریف چگونگی نمایش اطلاعات است.
به ویکی‌پدیا رجوع کنید که اینطور نوشته (به کلمه presentation دقت کنید):
Cascading Style Sheets (CSS) is a style sheet language (http://en.wikipedia.org/wiki/Style_sheet_language) used to describe the presentation semantics (http://en.wikipedia.org/wiki/Presentation_semantics) (that is, the look and formatting) of a document written in a markup language (http://en.wikipedia.org/wiki/Markup_language).

موفق باشید.

emad_67
جمعه 04 تیر 1389, 15:11 عصر
ببینید جناب alireza_s_84، در مورد کم حجم تر بودن div و سرعت لود اون نسبت به table حق با شماست، اما در واقع موقع اصلی بر سر استفاده از table در نمایش داده های جدولی، همون Semantic اون هست.
به طور مثال فرض کنید من جدولی که به این شکل هست:


<table>
<tr>
<td>test1</td>
<td>test2</td>
</tr>
</table>
رو به این صورت با div پیاده کنم:

<div class="tbl">
<div class="col">
test1
</div>
<div class="col">
test2
</div>
</div>
خوب من با این کار اومدم و ساختاری مثل جدول رو پیاده سازی کردم، اما ساختار table قبلی رو هم در هم شکستم چون چیزی به اسم row در div ها تعریف نکردم (هرچند که میشد تعریف کنم). در واقع ساختار table در html این اجازه رو به شما نمیده که قبل از تعریف row بیاید و cell رو تعریف کنید، اما توی این حالت شما آزادی و هر جوری خواستی میتونی رفتار کنی. همونطور که جناب PC2st گفتن ما فقط داریم ظاهری رو مشابه تیبل ایجاد می کنیم و عملا جدولی در کار نیست.

ضمنا میشه برای من این جمله رو دقیقا موشکافی کنید که منظورتون چیه:
چون div برای «تقسیم‌بندی موضوعات» است و table برای «جدول‌بندی اطلاعات»توی طراحی table less مهمترین دلیل استفاده از div ها انعطاف پذیری بالایی هست که دارن، توی این مدل طراحی شما با استفاده از div میاید و صفحه ی وب رو به قسمت های مختلف تقسیم بندی می کنی (این موارد رو خود شما هم میدونی و تکرار بدیهیات هست) اما از جداول همیشه توصیه میشه که برای جدول بندی اطلاعات استفاده کنید. شما وقتی که میای و یک جدول رو با div پیاده می کنی، عملا ساختار منطقی بین جدول رو حذف کردی و فقط داری داده ها رو به شکل جدول نشون میدی.

آیا اضافه شدن آن مقادیر به خاصیت display تنها هدفش برای نمایش و فرمت بندی بوده است؟
میتوان بپرسم لزوم اینکار چه بوده است؟؟؟در این مورد به نظرم خاصیت display تنها در مواقعی کاربرد داره (در html) که ما بخوایم در طراحی table less صفحات، فقط از نمایش ظاهری تیبل استفاده کنیم. مثلا در مورد ایجاد div با ارتفاع یکسان که چند وقت پیش مطراح شد:
http://barnamenevis.org/forum/showthread.php?t=224062
و موارد از این قبیل.
اما دلیلی که w3 برای display اورده:

in HTML 4, the semantics of the various table elements (TABLE, CAPTION, THEAD, TBODY, TFOOT, COL, COLGROUP, TH, and TD) are well-defined. In other document languages (such as XML applications), there may not be pre-defined table elements. Therefore, CSS 2.1 allows authors to "map" document language elements to table elements via the 'display' property. For example, the following rule makes the FOO element act like an HTML TABLE element and the BAR element act like a CAPTION element:

FOO { display : table }
BAR { display : table-caption }

http://www.w3.org/TR/CSS2/tables.html

eshpilen
جمعه 04 تیر 1389, 18:16 عصر
اوه اوه اینجا عجب بحثی سر جدول و Div شده!!
درمورد جدول تاجایی که منم میدونم و دوستان گفتن، هروقت بخوایم اطلاعاتی مثل اطلاعات اشخاص ثبت نام شده در سایت رو نشون بدیم، از Table استفاده میکنیم. هروقت بخوایم فقط Layout ایجاد کنیم و اطلاعات از نظر مفهومی جدولی نیستن از تگهای مربوطه و CSS. البته من خودم هنوزم که هنوزه از جدول زیاد استفاده میکنم برای Layout، چون از قدیمتر که هنوز روشهای جدید باب نشده بود و روی خیلی مرورگرها هم جواب نمیدادن این روش تنها روش اصلی شناخته شده بود (حتی در کتابهای آموزش HTML معروف، برای همه کاری معرفی شده بود).
هنوزم که هنوزه بنظرم جدولها برای layout عالی عمل میکنن و روی تمام مرورگرها جواب میدن، درحالیکه لایه ها و CSS ممکنه اینطور نباشه. مثلا من سایت ویکیپدیا رو بزرگ که میکنم (همیشه فوت ها رو کلی بزرگ میکنم برای مطالعه) نوشته ها و بخشهای مختلف صفحه توی هم میره، و فکر میکنم این بخاطر استفاده از روش layout بدون جدول باشه. بنظرم با جدول رفتار فرق میکنه.
حالا نمیدونم شایدم چون من روی روش طراحی بدون جدول زیاد کار نکردم روش جدولی رو هنوزم استفاده میکنم.
بهرحال همونطور که Table مزایایی داره، روش بدون جدول هم میتونه خواص و مزایایی داشته باشه که جدول نداره. در کل من زیاد روی این امر حساس نیستم و شخصا فکر میکنم نمیشه کسی رو بخاطر استفاده از جدول برای Layout سرزنش کرد (خوشبختانه validator های W3 هم فکر نمیکنم متوجه بشن و گیر بدن :لبخند:).
البته تاجایی که میدونم فقط در شرایط خاصی هست که تا کل جدول و محتویاتش لود نشه نمایش داده نمیشه. این موارد گذشته از کامل بودن و قوی بودن پیاده سازی مرورگرها به محدودیت های فنی هم بستگی دارن که در رفرنس W3 آمده که چه اطلاعاتی باید پیشاپیش در دسترس مرورگر باشن تا بتونه ابعاد و شکل جدول رو پیشاپیش محاسبه کنه و نمایش بده.
البته آدم باید سعی کنه بروز باشه و روشهای استاندارد رو یاد بگیره و استفاده کنه. تنبلی در یادگیری و تغییر دلیل خوبی برای اصرار بر استفاده از یک روش خاص نیست.
بعضی استدلالهایی که دوستمون در ارتباط با مزایای استفاده از روش بدون جدول برای داده های جدولی آوردن هم قابل تعمق هست و ممکنه کم و بیش درست باشن. گرچه مقداری افراطی و مبهم بنظر میان.
بهرحال من این دوست عزیز رو بخاطر این کار سرزنش نمیکنم. بنظر من چیزهای مهمتری وجود دارن که اگر هرکسی رعایت کنه وظایف اصلی خودش رو انجام داده. مهمترینش اینه که صفحات تا حد ممکن به مرورگر خاصی وابسته نباشن (خوشبختانه در بیشتر موارد میشه این وابستگی رو به صفر رسوند)؛ برای این امر طراح باید صفحه رو با چند مرورگر تست کنه. هرچه مرورگرهای متداول بیشتری و نسخه ها متداول بیشتری البته بهتر! اما این امر کار راحتی نیست و اغلب ممکن هم نیست روی تمام مرورگرهای متداول با تمام نسخه متداول اونها تست کرد. ولی حتما سعی کنید حداقل IE و FF باشن. ضمنا و یادتون باشه همیشه آخرین نسخه ها تنها نسخه های متداول محسوب نمیشن. FF مرورگر خیلی مهمی هست، چون هم بازمتن هست و هم روی لینوکس ما IE نداریم و گزینهء اصلی اونجا FF هست.
مثلا من خودم بعضی پروژه هام رو در FF و IE و حتی Konqueror (مرورگر و مدیرفایل پیشفرض در محیط دسکتاپ KDE در گنو/لینوکس که البته احتمالا در نسخه های جدید لینوکس دیگه بعنوان مرورگر چندان مورد توجه نباشه و با برنامه های دیگه جایگزین شده باشه) و گاهی Opera تست کردم.
یه زمانی خودم خیلی سعی در تبلیغ و جا انداختن لزوم توجه به استانداردهای W3C کردم دقیقا به این علت که رعایت اونها باعث میشد عادت غلط و رفتار ناشایست طراحی سایتها فقط سازگار برای IE از بین بره. اون موقع نمیشد به سازگاری با فایرفاکس یا مرورگرهای لینوکس و غیرمایکروسافتی اشاره کرد، چون هنوز کسی اینها رو اصلا بحساب نمیاورد و همه فکر میکردن مایکروسافت منشاء و مرجع اصلی و کافی برای همه چیزه و بقیه باید برن غاز بچرونن!! ولی با کوبیدن چماق عدم استاندارد و حرفه ای بودن از طرف یک عنوان مشخص و دهان پرکنی مثل کنسرسیوم وب توی سر طراحان وب میشد محکومشون کرد :قهقهه:
البته دروغ هم که نمیگفتیم خب واقعیتی بود واسه خودش :لبخند:
اصلا یک هدف و مزیت اصلی استانداردها همین هست.

بطور کلی استانداردها خیلی خوب و مفید هستن (و استانداردهای باز که اصولا مقدس هستن) اما بخاطر محدودیت های عملی ای که وجود داره، نمیشه همیشه صددرصد از اونها تبعیت کرد. مهمترین دلیلش اینه که مرورگرهای اصلی مختلفی وجود دارن و نسخه های مختلفی از اونها متداول هست، که تفاوت های کم و بیش فاحشی در پیاده سازی و سازگاری اونها با استانداردها و شباهت ظاهری بینشون وجود داره. خیلی وقتا باگهای آزار دهنده ای هم وجود دارن.