ورود

View Full Version : حذف Padding جدول های داخلی



iekrang
شنبه 24 آذر 1386, 15:50 عصر
سلام.
من جدولی دارم که به شکل زیر برای اون استایل تعریف کردم و بهش Padding دادم.مشکلی که دارم اینه که جدول هایی که داخل این جدول قرار میگیرند هم Padding میخورند و نتونستم صفر کنم این خاصیت رو.چطور میتونم جدول های درون این جدول این خاصیت رو از جدول اصلی نگیرند؟


.tblForm td
{
border-width:0px;
Font-Size:8pt;
font-family:Tahoma;
padding: 5px;
}

Ali_ix
شنبه 24 آذر 1386, 16:30 عصر
سلام.
من جدولی دارم که به شکل زیر برای اون استایل تعریف کردم و بهش Padding دادم.مشکلی که دارم اینه که جدول هایی که داخل این جدول قرار میگیرند هم Padding میخورند و نتونستم صفر کنم این خاصیت رو.چطور میتونم جدول های درون این جدول این خاصیت رو از جدول اصلی نگیرند؟


.tblForm td
{
border-width:0px;
Font-Size:8pt;
font-family:Tahoma;
padding: 5px;
}
اصولا اگر داخل طراحیتون tableی با عمق بیش از یک داشتید (یعنی به هر شکل tableهای تو در تو داشتید) کمی به طراحیتون باید شک کنید. چون به احتمال زیاد راه بهتری هم برای ایجاد همون فرم بدون tableهای تودرتو خواهید داشت.

اما در این مورد. بهترین کار اینه که اگر میتونید به table داخلی هم کلاسی بدید و داخل css دوباره paddingشو صفر کنید.
اگر امکان این رو ندارید. میتونید با selectorها بازی کنید. که البته ممکنه کمی مشکل browser compatibility داشته باشید.

مثلا:



.tblForm td td
{
padding: 0;
}
یا


.tblForm table td
{
padding: 0;
}
نمیدونم کدومش کار میکنه یا بهتره. ولی به هر حال به این شکل میشه از css selectorها استفاده کرد.

برای مطالعه بیشتر:
http://www.w3.org/TR/CSS21/selector.html
http://css.maxdesign.com.au/selectutorial/

peyman1987
شنبه 24 آذر 1386, 21:22 عصر
فکر کنم این یکی برات کار کنه:

.tblForm td table
{
padding 0px;
}

m.hamidreza
شنبه 24 آذر 1386, 23:30 عصر
اصولا اگر داخل طراحیتون tableی با عمق بیش از یک داشتید (یعنی به هر شکل tableهای تو در تو داشتید) کمی به طراحیتون باید شک کنید.


چرا باید شک کنیم ؟!
در اکثر موارد این حالت پیش میاد ! :متفکر: الان برای این سایت (http://www.parsdata.com/default.aspx?page=Document&app=Documents&docId=11635&docParId=0)بدون جدول تو در تو میشه Design رو پیاده سازی کرد ؟

Ali_ix
یک شنبه 25 آذر 1386, 08:06 صبح
چرا باید شک کنیم ؟!
در اکثر موارد این حالت پیش میاد ! :متفکر: الان برای این سایت (http://www.parsdata.com/default.aspx?page=Document&app=Documents&docId=11635&docParId=0)بدون جدول تو در تو میشه Design رو پیاده سازی کرد ؟
برای اینکه در یک طراحی درست از table *فقط* برای نمایش اطلاعات و داده‌های جدولی (tabular) استفاده میشه.
مگر موارد خیلی خیلی خاص که استفاده از table برای یک قسمت کوچیک از ساختار سایت میتونه بهینه تر باشه! البته این موارد خیلی خیلی کم پیش میاد.

با وجود css نیازی نیست شما ساختار (structure) صفحتون رو با table بسازید. و وقتی هم که table رو درست و به جای خود (برای همون داده‌های جدولی) استفاده کنید بعیده لازم بشه دوتا table تودرتو داشته باشید.
در نتیجه در اکثر موارد داشتن دو یا تعداد بیشتری table تودرتو نشانه ساختار و روش غلط و غیر حرفه‌ای طراحیه.

این سایتی هم که دادید. حداقل توی صفه اولش هیچ نیازی به استفاده از table نداره!

در طراحی استاندارد و حرفه‌ای گفته میشه هر عنصر به جای خودش باید استفاده بشه یعنی کد باید semantic باشه.

iekrang
یک شنبه 25 آذر 1386, 11:14 صبح
برای اینکه در یک طراحی درست از table *فقط* برای نمایش اطلاعات و داده‌های جدولی (tabular) استفاده میشه.
مگر موارد خیلی خیلی خاص که استفاده از table برای یک قسمت کوچیک از ساختار سایت میتونه بهینه تر باشه! البته این موارد خیلی خیلی کم پیش میاد.

با وجود css نیازی نیست شما ساختار (structure) صفحتون رو با table بسازید. و وقتی هم که table رو درست و به جای خود (برای همون داده‌های جدولی) استفاده کنید بعیده لازم بشه دوتا table تودرتو داشته باشید.
در نتیجه در اکثر موارد داشتن دو یا تعداد بیشتری table تودرتو نشانه ساختار و روش غلط و غیر حرفه‌ای طراحیه.


من با طراح های مختلفی کار کردم اکثراً روش کارشون همین هست.جالبه اینکه میفرمایید بعیده استفاده از جدولهای تو در تو.
ممنون میشم اگر در این مورد راهنمایی بیشتری بفرمایید و یا اگر منبعی در اختیارمون قرار بدید که کاربردی تر با این روش آشنا بشیم.
با تشکر

m.hamidreza
یک شنبه 25 آذر 1386, 14:32 عصر
در نتیجه در اکثر موارد داشتن دو یا تعداد بیشتری table تودرتو نشانه ساختار و روش غلط و غیر حرفه‌ای طراحیه.

ممنون . من اکثر سایت های مخصوصا ایرانی رو که Source هاشونو میبینم همه table های تو در تو هستن مثه همون سایت . حالا معایبش چیه ؟ البته بغیر از بالارفتن حجم صفحه ...


من با طراح های مختلفی کار کردم اکثراً روش کارشون همین هست
آره منم خیلی هارو میشناسم که چند ساله همین جوری دارن کار میکنن !

Folaani
یک شنبه 25 آذر 1386, 15:24 عصر
هنوز نمیشه بطور کلی از کاربرد جداول برای layout چشم پوشی کرد.
اما بسیاری layout ها رو میشه با css پیاده کرد.
ولی دقیقا همه رو نمیشه، یکی به این دلیل که ظاهرا ساپورت و سازگاری کامل در براوزرها وجود نداره و باگهایی هم هست.
اما باید تلاش کرد و استاندارد آینده هم این هست.
یعنی بلافاصله فقط به فکر جدول نباشید و ابتدا ببینید با لایه میشه به نحو قابل قبولی پیاده کرد یا نه.
بنده خودم در یک بخشی از پروژم یک جدول رو براحتی با لایه جایگزین کردم. بدون نقص! تازه نوشتن و فهمش هم راحتتره و ساختار ساده تری داره. اما یک بخش دیگه رو که دقیقتر و پیچیده تر بود نتونستم دربیارم و گذاشتم با جدول بمونه.

راستی یک چیز دیگه هم که هست و تازگی در رفرنس رسمی css 2.1 بهش برخوردم اینه:


Table layout can be used to represent tabular relationships between data. Authors
specify these relationships in the document language [p. 38] and can specify their
presentation using CSS 2.1.
In a visual medium, CSS tables can also be used to achieve specific layouts. In
this case, authors should not use table-related elements in the document language,
but should apply the CSS to the relevant structural elements to achieve the desired
layout.

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

Folaani
یک شنبه 25 آذر 1386, 15:36 عصر
ممنون . من اکثر سایت های مخصوصا ایرانی رو که Source هاشونو میبینم همه table های تو در تو هستن مثه همون سایت . حالا معایبش چیه ؟ البته بغیر از بالارفتن حجم صفحه ...


آره منم خیلی هارو میشناسم که چند ساله همین جوری دارن کار میکنن !

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

Ali_ix
یک شنبه 25 آذر 1386, 20:42 عصر
من با طراح های مختلفی کار کردم اکثراً روش کارشون همین هست.جالبه اینکه میفرمایید بعیده استفاده از جدولهای تو در تو.
ممنون میشم اگر در این مورد راهنمایی بیشتری بفرمایید و یا اگر منبعی در اختیارمون قرار بدید که کاربردی تر با این روش آشنا بشیم.
با تشکر


ممنون . من اکثر سایت های مخصوصا ایرانی رو که Source هاشونو میبینم همه table های تو در تو هستن مثه همون سایت . حالا معایبش چیه ؟ البته بغیر از بالارفتن حجم صفحه ...


آره منم خیلی هارو میشناسم که چند ساله همین جوری دارن کار میکنن !

معایب زیادی داره! در واقع همش عیبه! :}

هر زمان اراده کنید که از سیستم قدیمی و اشتباه طراحی دست بکشید و به سمت کار تمیز و حرفه‌ای تری برید، به منابع زیادی روی اینترنت دسترسی دارید.
مثلا نتیجه یک سرچ ساده با کلمات "web standards nested tables":

http://www.molly.com/2005/11/14/web-standards-and-the-new-professionalism/
http://www.hotdesign.com/seybold/everything.html
http://www.alistapart.com/stories/journey/

نقل قولهایی از لینک اول:


“Those people still delivering nested table layout, spacer gifs or ignoring accessibility can no longer call themselves web professionals.”




“There are now so many web sites, blogs or publications devoted to helping people learn standards and accessible techniques that there are now no excuses not to work with semantic code or CSS.”

اگر خواستید میتونیم در یک تاپیک جدا مفصل بحث کنیم.