نمایش پیش فرض یکسان وب سایت در مرورگرهای متفاوت با استفاده از تکنیک CSS Reset
cross browser compatibility
سازگاری یک صفحه وب و کدهای آن با مرورگرهای گوناگون و متعددی که وجود دارند ( IE , FireFox , Opera , Chrome ) ، یکی از مشکلات و چالش های جدی برای طراحان وب سایت بوده است. یک طراح وب سایت گاهی مجبور به افزودن کدهای بسیار پیچیده در لابلای فایلهای CSS – سی اس اس خود است تا این ناسازگاری و تفاوت در نمایش صفحات در مرورگرهای متفاوت را به این نحو سازگار جلوه دهد.
این چالش تا به ابنجا پیش رفته است که ، توانایی در طراحی وب سایت ، به طوری که در تمامی مرورگرها به طور یکسان نمایش داده شود ( Cross Browser ) ، یک امتیاز بسیار خوب برای یک طراح وب است. بسیاری از گروه ها و طراحان وب سایت برای راحتی در استفاده از کدهای CSS – سی اس اس به این منظور راه حل ها و تکنیکهای گوناگونی را بررسی کرده اند ، و به نظر میرسد استفاده از تکنیک CSS Reset به این منظور از محبوبیت بیشتری برای طراحان وب سایت بر خوردار است .
CSS Reset چیست ؟
CSS Reset مجموعه ای از استایل سی اس اس ( CSS Style ) است که تمامی Style پیش فرض عناصر و تگ های HTML ( که در مرور گرهای گوناگون ، متفاوت است ) را در حالت پیش فرض قرار میدهد . با استفاده از این روش تمامی مرورگرها به طور پیش فرض دارای نمایش یکسانی خواهند بود و طراح وب سایت می تواند با استفاده از این روش استایل ها (CSS Style ) را با توجه به نیازهای خود تعیین کند.
بهتراست در استفاده از این تکنیک نکات زیر را در نظر داشته باشید
بسیاری از مقادیر در هنگام استفاده از این تکنیک معادل ( صفر ) تعیین می شوند و تعیین اندازه برای این عناصر ممکن است حجم فایل CSS شما را افزایش دهد.
توجه داشته باشید که ممکن است فراموش کنید مقادیری را که به صورت اولیه در آورده اید ، باز سازی کنید .
از تکنیک های استاندارد برای پیش فرض کردن ( CSS Reset ) استفاده کنید . استفاده از تکنیک های غیر استاندارد می تواند باعث بروز مشکلاتی برای کاربران و مخاطبان وب سایت شما شود. ( به طور مثال ، عدم توانایی در تعیین اندازه فونت توسط مرورگر و یا استفاده از کلید های میانبر (Shortcut Key ) )
برای استفاده از این تکنیک ، کافی است کدهای CSS که نمونه هایی از آن را در زیر ملاحظه خواهید نمود در ابتدای سند و فایل CSS وب سایت خود قرار دهید.
در لیست زیر تعدادی از محبوب ترین CSS Reset ها و همچنین Css Reset مورد استفاده در این وبلاگ را ملاحظه می فرمائید
Eric Meyer’s reset
/* v1.0 | 20080212 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } /* remember to define focus styles! */ :focus { outline: 0; } /* remember to highlight inserts somehow! */ ins { text-decoration: none; } del { text-decoration: line-through; } /* tables still need 'cellspacing="0"' in the markup */ table { border-collapse: collapse; border-spacing: 0; }
CSS Mini Reset
/* CSS Mini Reset */ html, body, div, form, fieldset, legend, label { margin: 0; padding: 0; } table { border-collapse: collapse; border-spacing: 0; } th, td { text-align: left; vertical-align: top; } h1, h2, h3, h4, h5, h6, th, td, caption { font-weight:normal; } img { border: 0; }
The Yahoo! User Interface CSS Reset
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin:0; padding:0; } table { border-collapse:collapse; border-spacing:0; } fieldset,img { border:0; } address,caption,cite,code,dfn,em,strong,th,var { font-style:normal; font-weight:normal; } ol,ul { list-style:none; } caption,th { text-align:left; } h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:normal; } q:before,q:after { content:''; } abbr,acronym { border:0; }
Webtarget.ir CSS Reset
/*-------------------------*/ /* Styled By */ /* Amir Sorouri */ /* [email protected] */ /*-------------------------*/ /*-------------- reset ------------------ */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; background: transparent; } ol, ul { list-style: none; } table { border-collapse:collapse; border-spacing:0; } h1,h2,h3,h4,h5,h6 { font-size:100%; } body { font:62.5%/1.7em Tahoma, Arial, sans-serif;/* font-size 1em = 10px */} input,textarea,select{font:1.2em Tahoma, Geneva, sans-serif; color:#000;}
Ali Aghdam
10 January 2011
مطالب مفیدی مینویسی ،لطفا به کارت ادامه بده
امیر سروری
16 January 2011
ممنون علی جان ، حتما .
smy
14 January 2011
سلام ، ممنون مطالبتون خیلی مفیده . اتفاقا پروژه من هم در مورد cross browser و تکنیکهای اونه .اگر در این زمینه می تونید کمکم کنید ممنون می شم . البته الان در مورد ajax و cross browser کار می کنم …
امیر سروری
16 January 2011
smy @ سلام و ممنون ، خوشحال می شم کمک کنم .
مهدی
9 April 2011
ممنون از اینکه تجربه خودت رو در خدمت دیگران می زاری
سمیه
2 June 2011
از مطالبت بسیار ممنونم. لطفا به کارت ادامه بده :)
محسن
7 June 2011
سلام و سپاس…
حسن
31 August 2011
خیلی عالیه
ادامه بده عزیز دل
امیر سروری
1 September 2011
حسن @ ممنون از شما و چشم حتما ادامه میدم ;-)
امیر سروری
1 September 2011
حسن @ ممنون از شما و چشم با داشتن دوستانی مثل شما حتما ادامه میدم ;-)
jimmyheller
6 September 2011
این مطلب رو معمولا کتاب ها زیاد پوشش نمیدن فوق العاده بود!
مجید ابراهیمی
16 September 2011
با خود سی اس اس که تازه آشنا شدم !!!
ولی مثل اینکه شاهکار هایی هم داره برای خودش!!!
آرمان
28 September 2011
استاد یه مطلبی هم درباره ی css3 بنویسید خواهشا ممنون ولی این مطلبتون عالی بود من همیشه از ریست شما استفاده می کنم با اجازه چون خیلی به کارم بیشتر کمک می کنه تا بقیه ریست ها :D
امیر سروری
29 September 2011
آرمان @ چشم آرمان جان تو دیگه الان خودت یه پا استادی ;-)
آرمان
4 October 2011
نه اختیار دارید آقای سروری شما کجا من کجا :D من حالا حالا ها کار دارم :D
امیر
10 November 2011
سپاس
لطفا ادامه بدین:-)
علیرضا
6 December 2011
نسخه 2 اولین css reset هم از اینجا بگیرید. http://meyerweb.com/eric/tools/css/reset/
رضا کیانوش
2 February 2012
سلام
ممنون بابت معرفی این قابلی بسیار کاربردی.
یه مسئله ای که باهاش مواجه شدم اینه که اگه نخواهیم یکی از قسمت ها در css reset تغییر کنه باید نام اون قسمت رو حذف کنیم ولی ویرگول هاش باشه
یعنی اگه بخاییم قسمت body از css reset پیروی نکنه باید کد
html, body, div, span, applet, object, iframe,
را این صورت تغییر بدیم:
html , , div, span, applet, object, iframe,
ورگرنه همه چیز بهم میخوره و مثلا اگه ما باید رو وسط تعریف کرده باشیم میاد میچسبه به راست.
در ضمن من از کد css reset شما استفاده کردم.
موفق باشید
امیر سروری
2 February 2012
رضا کیانوش @ سلام رضا جان ، خوشحالم مورد استفاده قرار گرفت . نکته ای که اشاره کردی رو من تکمیل و تصحیح میکنم . اگر خواستین تگی رو از این سیستم خارج کنید باید خودش و کامای جدا کننده رو با هم حذف کنید . در ضمن شما نیازی به خارج کردن تگ خاص ( مخصوصا Body ) از این سیستم ندارید بلکه میتونید موارد مورد نیازتون رو بعد از این قسمت به تگ مورد نظرتون اضافه کنید . موفق و پیروز باشید .
رضا کیانوش
3 February 2012
الان شما دارید میگید که ((اگر خواستین تگی رو از این سیستم خارج کنید باید خودش و کامای جدا کننده رو با هم حذف کنید ))
ولی وقتی من body و کاما رو با هم حذف میکنم قالب میاد میچسبه به سمت راست اما وقتی از این کد استفاده میکنم
html,,div, span, applet, object, iframe,
قالب به درستی و در وسط نشون داده میشه.
الان مشگل کار من کجاست؟؟؟
امیر سروری
3 February 2012
رضا کیانوش @ رضا جان در این سیستم تمامی تگ ها padding و margin شون صفر میشه و خیلی از موارد دیگه .. . نمیشه گفت مشکل کارت از حذف کردن یا نکردن body از reset هست . شاید دلیل دیگه ای داشته باشه . باید کدهای وب سایت شما رو به صورت live دید و مشکل رو متوجه شد . اگر لینک آنلاین رو اینجا بذاری شاید بتونم کمکی به شما بکنم . موفق باشید .
zeytoon
27 February 2012
سلام
میشه بگی در فایل ریسیت خودت چرا فونتها را این اندازه میگری؟
Zakya
17 May 2012
یه آموزش از لیندا دیده بودم که نشون داد که یشه برای یه صفحه دو طراحی انجام داد و گفت که اگر کاربر با HE بازش کرد با این طرح بالا بیاد و اگر با بقیه بروسرها با یه طراحی دیگه بالا بیاد. ولی آموزش نداد که چطور میشه اینکار رو کرد.
مرسی که یاد دادی
راستی نظر من هم درباره IE اینکه بخاطر همه وقتهایی که ازم گرفته نمیبخشمش D:
علی
14 June 2012
آقا اگر من از css reset که استفاده می کنم باعث تداخل میشه یعنی دستوراتی که می نویسم با دستورات css reset مخلوط میشه و نتیجه مورد نظرم رو نمیگیرم.
لطفاً بفرمایید به چه شکلی باید از این دستورات استفاده کنم تا با این مشکلات مواجه نشم؟؟!
امیر سروری
16 June 2012
علی @ سلام علی جان . اتفاقا من نظرم اینه که شما تازه بعد از استفاده از سی اس اس ریست داری کد نوشتن استاندارد رو انجام میدین .
خوب عادت کردن به اینکه دیگه توی همه کلاسهایی که مینویسی پدینگ و مارجین رو صفر کردن لازم نیست سخته اما با کمی تمرین حل میشه!!
فقط باید مقداری تمرین کنید . این به هم ریختگی برای شروع طبیعیه ;-)
علی
16 June 2012
مرسی داداش از جوابت امیدوارم این دوره زودتر تموم بشه و من هر چه سریعتر با این مورد کنار بیام و مشکلم حل بشه البته این رو هم بگم که مشکل چندانی ندارم فقط زمانی که میخوام css ای که واسه یک دکمه نوشتم استفاده کنم تغییر استایل این دکمه اعمال نمی شه بقیه همه سالمن و درست کارشون رو انجام میدن؟!
علتش چیه به نظرت؟!
محمد حسینی
8 August 2012
با عرض سلام و خسته نباشید …
میخواستم ببینم آیا برای اینکه یه وبسایت داشته باشیم که تو همه مرورگرها خوب نشون بده ، میشه از روش درصد استفاده کرذ ؟ یعنی تمام فاصله هایی که از چپ و راست و بالا و پایین رو میخوایم تعیین کنیم ، درصدی تعیین کنیم . این کارآمد هست به نظر شما یا نه ؟
منتظرم …
یا علی …
امیر سروری
16 August 2012
محمد عزیز . سیستمی که شما بهش اشاره کردین در واقع سیستم لایه های شناور هست که بسیار هم میتونه کاربردی باشه ولی خوب طبیعتا استفاده از اون نیاز به تجربه بیشتری داره و باید بتونید در مرورگرهای متفاوت و رزولوشن ها و دستگاههای مختلف وب سایتتون رو تست کنید تا مطمئن باشید هم چیز درسته .
علی حدادکار
29 October 2012
سلام ممنون از آموزش های خوب و مفیدتون :X
مهدی
4 March 2013
ممنون از این مطلب مفید
اکثر پترن هایی که برای Css استفاده میشن در ابتداشون از این Reset ها دارن، مثل twitter Bootstrap. ولی بعضا با Css های ما Conflict پیدا میکنن.
یکی از مواردی که خیلی اذیت میکنه LineHeight هست که آدمو وادار میکنه در بیشتر موارد اونو برگردونه به حالت پیش فرض، یعنی Normal یا Inherit.
ولی در کل به گفته خودتون مارو به نوشتن یک css استاندارد راهنمایی میکنه.
آرمان
27 July 2013
با سلام خدمت همه شما دوستان . منم یک مشکلی که دارم اینه که چرا وقتی صفحه مرورگر فایر فاکس رو بزرگ یا کوچک میکنم تمامی div ها و بسایت به هم میریزه و البته در حال عادی درست نمایش میده وب سایت رو . کسی میتونه به من در این زمینه کمک کنه یا مشکل کار از کجاست ؟
milad
26 August 2013
عالی بود ممنون
Amir
6 February 2014
سپاس
میلاد
14 March 2014
سلام
مفید بود، تشکر.
B-T
26 April 2014
بلاخره پس از کدوم فایل ریست استفاده کنم؟
من قبلا از اولی که گداشتین استفاده میکردم ولی تو مرورگرهای مختلف شبیه هم نمیشه
نمیدونم باید چیکار کنم؟
:(
B-T
26 April 2014
اگه براتون مقدوره جواب رو به میلم بفرستین
خیلی ممنون میشم
نیلوفر
9 February 2015
درود فروان مطلب بسیار مفیدی بود
الناز
13 January 2018
سلام وقتتون بخیر
من سایتی رو طراحی کردم مشکلی که واسم پیش اومده اینکه زمانی که در مرورگر فایرفاکس سایت رو تست میکنم درست نشون میده ولی در مرورگرهای کروم و IE به درستی نشون نمیده و استایل دهی رو قبول نمیکنه
میشه راهنمایی کنید واسه رفع این مشکل باید چکار کنم