نکاتی برای بهتر نوشتن کدهای CSS

• حدودا 7 دقیقه • 1310 کلمه

1. از بازنشانی های سراسری استفاده نکنید

بازنشانی کردن حاشیه های (padding و margin) عناصر HTML به صورت سراسری، اصلا کار خوبی نیست. علت اینه که هم خیلی کنده و هم باعث می شه مجبور بشید برای عناصری که به این حاشیه ها نیاز دارند، مجددا اونها رو تعریف کنید. بجاش می تونید از بازنشانی های زیر مجموعه و مشخص استفاده کنید. مثل کاری که Eric Meyer انجام داده.

این روش خوب نیست :

<pre class="brush: css; fontsize: 100; first-line: 1; ">*{ margin:0; padding:0; }این بهتره :

<pre class="brush: css; fontsize: 100; first-line: 1; ">html, body, div, dl, dt, dd, ul,  h1, h2, h3,  pre, form, label, fieldset, input, p, blockquote, th, td { margin:0; padding:0 }
table { border-collapse:collapse; border-spacing:0 }
fieldset, img { border:0 }
ul { list-style:none }

2. از هک های اینترنت اکسپلورر استفاده نکنید

<pre class="brush: applescript; fontsize: 100; first-line: 1; html-script: true; "><pre class="brush: css; fontsize: 100; first-line: 1; ">هرچند که هک های CSS می تونن برای مدیریت نحوه نمایش وب سایت روی مرورگر های قدیمی (مثل IE6) کارآمد باشن، اما باعث بروز مشکلاتی هم در نسخه های جدید تر می شن. مثلا به بدلیل اینکه IE8 استاندارد های CSS رو در سطح مطلوبی پشتیبانی نمی کنه، استفاده از این هک ها باعث اختلال در طراحی شما می شه.

بجاش می تونید از دستور های شرطی برای هدف قرار دادن مرورگر های مختلف استفاده کنید. به عنوان مثال استفاده از دستور زیر باعث بارگذاری فایل ie-styles.css در اینترنت اکسپلورر 6 و یا نسخه های قدیمی تر می شه.

<pre class="brush: css; fontsize: 100; first-line: 1; ">برای کسب اطلاعات بیشتر در خصوص این دستورات شرطی به سایت quirksmode مراجعه کنید.

3. از شناسه و کلاس های معنادار استفاده کنید

فرض کنید برای پنل کناری وب سایت کلاس .rightboxرو انتخاب کردید. حالا به هر دلیل لازم شده این پنل رو به سمت چپ شناور کنید. در این صورت استفاده از کلاس <span class="gxui-ltr-text" style="background-color: #eeeeee; font-family: andale mono,times;">.rightbox</span>  کمی گیج کننده است. بهتره قبل از انتخاب شناسه و کلاس ها کمی در مورد نام اونها فکر کنید و نامی رو انتخاب کنید که در آینده به خوانایی بیشتر برنامه کمک کنه.<br></br>

4. وارثت رو در CSS به کار بگیرید

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

این روش خوب نیست:

<pre class="brush: css; fontsize: 100; first-line: 1; ">#container li{ font-family: IranianSans, serif; }
#container p{ font-family: IranianSans, serif; }
#container h1{ font-family: IranianSans, serif; }

این بهتره:

<pre class="brush: css; fontsize: 100; first-line: 1; ">#container{ font-family: IranianSans, serif; }## 5. گزینشگر های چندگانه رو ادغام کنید

گاها پیش میاد که یه گروه خاص از گزینش گر ها (Selectors) از یه استایل مشابه استفاده می کنن. اینجا هم ادغام کردن اونها صرفه جویی در زمان و فضا رو به همراه داره.

این روش خوب نیست:

<pre class="brush: css; fontsize: 100; first-line: 1; ">h1{ font-family: Tahoma, Helvetica, sans-serif; font-weight:normal; }
h2{ font-family: Tahoma, Helvetica, sans-serif; font-weight:normal; }
h3{ font-family: Tahoma, Helvetica, sans-serif; font-weight:normal; }

این بهتره :

<pre class="brush: css; fontsize: 100; first-line: 1; ">h1, h2, h3{ font-family: Tahoma, Helvetica, sans-serif; font-weight:normal; }## 6. تا حد امکان خلاصه نویسی کنید

خیلی از خصیصه های CSS مثل <span style="font-family: andale mono,times;">margin, padding, border, font, background </span>و همینطور رنگ ها رو می شه به صورت خلاصه نوشت.<br></br>

این روش خوب نیست :

<pre class="brush: css; fontsize: 100; first-line: 1; ">li{ 
	font-family: Tahoma, sans-serif;
	font-size: 1.2em;
	line-height: 1.4em;
	padding-top: 5px;
	padding-bottom: 10px;
	padding-left: 5px;
}

این بهتره :

<pre class="brush: css; fontsize: 100; first-line: 1; ">li{ 
	font: 1.2em/1.4em Tahoma, sans-serif; 
	padding: 5px 0 10px 5px;
}

می تونید یه راهنمای خوب رو هم درباره خصیصه های کوتاه و مختصر CSS بخونید.

7. کدهای CSS رو سازماندهی کنید

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

<pre class="brush: css; fontsize: 100; first-line: 1; ">/*-------------------------
	بازنشانی ها
-------------------------*/

/*-------------------------
	کلاس های عمومی
-------------------------*/

/*-------------------------
	استایل های قالب
-------------------------*/

/*-------------------------
	بعضی کلاس های خاص
-------------------------*/

8. خوانا بنویسید

سعی کنید دندانه دار بودن کد ها رعایت بشه. برای خوانایی بیشتر می تونید هر خصیصه و مقدارش رو در یک سطر و یا همه خصیصه ها رو در یه سطر قرار بدید. البته استفاده ترکیبی هم می تونه کارآمد باشه.

<pre class="brush: css; fontsize: 100; first-line: 1; ">/*------------------------
هر خصیصه در یک سطر
---------------------*/
div{ 
	background-color: #3399cc;	
	color: #666;
	font: 1.2em/1.4em Arial, Helvetica, sans-serif; 
	height: 300px;
	margin: 10px 5px;
	padding: 5px 0 10px 5px;
	width: 30%;
	z-index: 10;
}

/*------------------------
ترکیبی
---------------------*/
div{ 
         background-color: #3399cc; color: #666; font: 1.2em/1.4em Arial, Helvetica, sans-serif;  
         height: 300px; margin: 10px 5px; padding: 5px 0 10px 5px; width: 30%; z-index: 10; 
}

9. خصیصه ها رو بر اساس الفبا مرتب نگه دارید

البته این مورد کمی دشواره ولی می تونه در پیدا کردن خصیصه ها کمک زیادی بکنه.

<pre class="brush: css; fontsize: 100; first-line: 1; ">div{ 
	background-color: #3399cc;	
	color: #666;
	font: 1.2em/1.4em Arial, Helvetica, sans-serif; 
	height: 300px;
	margin: 10px 5px;
	padding: 5px 0 10px 5px;
	width: 30%;
	z-index: 10;
}

10. فایل های CSS رو تا حد امکان تقسیم کنید

اگر روی یه پروژه بزرگ با ماژول های مختلف کار می کنید و هر ماژول استایل های متفاوتی داره، بهتره فایل های CSS رو تا جایی که می تونید به فایل های بیشتری تقسیم کنید. معمولا بر اساس کاربرد استایل ها می تونیم اونها رو توی فایل مجزایی قرار بدیم. مثلا یه فایل برای بازنشانی، یکی برای چهارچوب قالب و یکی هم برای نوشتار.

البته در پروژه های بزرگ تعداد در خواست های HTTP اهمیت زیادی داره و طبعا زیاد شدن تعداد فایل ها یعنی زیادتر شدن درخواست ها. برای همین می تونیم از یه فایل برای Import کردن بقیه فایل ها استفاده کنیم. به عنوان مثال من اینجا یه فایل import.css ایجاد کردم که محتواش به این شکله :

<pre class="brush: css; fontsize: 100; first-line: 1; ">@import "css/reset.css";
@import "css/typography.css";
@import "css/layout.css";

11. فایل ها رو فشرده کنید

ابزار های زیادی وجود داره که فایل های CSS شما رو فشرده می کنن. این کار باعث کوچک تر شدن فایل و در نتیجه افزایش سرعت وب سایت می شه. بخصوص توی پروژه های بزرگ سعی کنید از ابزاری مثل CSS Compressor برای فشرده سازی استفاده کنید.

12. در سبک کاری ثابت قدم باشید

وقتی روی چند تا پروژه وب کار می کنید، بهتره سعی کنید در نحوه چیدن و فرمت دهی کدها از یه روال مشخص استفاده کنید. البته به موازات بالا رفتن تجربه این موضوع خودش حل می شه.

اگر مایل هستید که نکات مورد نظر خودتون رو هم با ما و سایر خوانندگان این مطلب به اشتراک بگذارید، در بیان دیدگاهتون توی کادر پایین تردید نکنید.

در این مورد نظری دارید؟
شبکه‌های اجتماعی جای بهتری هستن.