CSSآ یک زبان استایلآشیت آ(Stylesheet)آ است که برای توصیف شیوه نمایش فایلآهای متنی نوشته شده به زبانآهای مارکآپ آ(Markup)آ استفاده میآشود. زبانآهای استایلآشیت همانآطور که از نام آنها برآمیآآید، فرم نمایش فایلآها را مشخص میآکنند. مهمآترین کاربرد این زبان ایجاد استیل و فرم برای صفحات وب نوشته شده بهآزبان آHTMLآ و آXHTMLآ است. با این وجود آCSSآ را میآتوان در مورد هر نوع متن نوشته شده به زبان آXMLآ از جمله آSVGآ و آXULآ اعمال کرد. آ آ
آویژگیآها آ آ
از مهمآترین مزایای آCSSآ این است که کاربران میآتوانند رنگ، فونت، ساختار و دیگر وجوه نمایش متن را تغییر دهند. هدف اصلی از طراحی آCSSآ جدا کردن محتوای متنی فایلآها از شیوه نمایش آنها است. محتوای متنی فایلآها به زبان آHTMLآ و دیگر زبانآهای مارکآپ و شیوه نمایش متن با استفاده از زبان آCSSآ نوشته میآشود. این جداسازی میآتواند دسترسی به محتوای متنی را بهبود بخشد، انعطافآپذیری و کنترل روی مشخصات و ویژگیآهای نمایش را افزایش دهد و پیچیدگی و تکرارمحتوای ساختاری را از طریق ایجاد امکاناتی مانند طراحی وب بدون استفاده از جدول کاهش دهد. با استفاده از آCSSآ میآتوان یک صفحه مارکآپ را به شیوهآآهای آ(Style)آ گوناگون و با شیوهآهای رندرینگ متفاوت نمایش داد. روشآهای مختلف رندرینگ فایل را به اشکال مختلف مناسب برای کاربردهای مختلف آماده میآکند. آبهآعنوان مثال، نسخهآهای قابل چاپ، نسخهآهای قابل تبدیل به صوت که با مرورگرهای مبتنی بر صدا یا خواننده صفحه نمایش قابل خواندن هستند توسط آCSSآ آماده میآشوند. از مهمآترین ویژگیآهای آCSSآ میآتوان به امکان رندرینگ صفحه برای تبدیل به خط بریل اشاره کرد. آ آ
دستور زبان آCSSآ
دستور زبان آCSSآ ساده است و از تعداد اندکی کلمات کلیدی انگلیسی تشکیل میآشود که برای مشخص کردن اسامی مشخصات فرمآهای گوناگون استفاده میآشوند. یک استایلآشیت در حقیقت یک لیست از قوانین است. هر قانون یا مجموعه قوانین از یک یا چند انتخاب کننده و یک بلوک تعریفآکننده تشکیل میآشود. بلوک تعریفآکننده شامل یک لیست از تعریفآهای جدا شده توسط سمیآکالنآ(
آ است که درون دو کروشه قرار میآگیرند. هر تعریف خود شامل یک مشخصه، یک کولون، یک مقدار و در انتها یک سمی کولون است. آ آ
آCSSآ دارای یک الگوی تعیین تقدم برای مشخص کردن تقدم قوانین فرمآهای مختلف است. زمانی که چند قانون مرتبط با یک استیل قابل اعمال هستند، آCSSآ تقدم آنها را تعیین میآکند و سپس با محاسبه وزن یا تقدم هر قانون، این تقدم را به آنها اختصاص میآدهد. این عمل که به آCascadeآ به معنای «آبشار» معروف است نتایج اعمال قوانین را قابل پیشآبینی میآسازد. یکی از ویژگیآهای قابل توجه در آCSSآ این است که اجازه میآدهد فرم و استیل یک فایل تحت تاثیر چند استایلآشیت باشد. یک استایلآشیت میآتواند برخی از ویژگیآهای خود را از یک استایلآشیت دیگر به ارث ببرد. این ویژگی امکان ایجاد ترکیب منحصرآبهآفردی از انواع فرمآها را فراهم میآکند. آ آ
کاربرد آCSSآ
پیش از پیدایش آCSSآ تقریبا همه ویژگیآهای نمایشی اسناد آHTMLآ در کد آHTMLآ نوشته شده بهآزبان مارکآپ درج میآشد. رنگ فونت، فرم و استیل پس زمینه، مرزها و اندازهآها و نیز نحوه قرار گرفتن اجزای مختلف نسبت به هم باید بهآطور مستقیم و اغلب بهآطور تکرارشونده در کد آHTMLآ گنجانیده میآشدند. آCSSآ به برنامهآنویسان اجازه میآدهد که بخش بزرگی از این اطلاعات را به یک استایلآشیت مجزا منتقل کنند و با این کار کد آHTMLآ را سادهآتر کنند و کارایی آن را افزایش دهند در حالی که کدهای پیش از پیدایش آCSSآ علاوه بر پیچیدگی زیاد انعطافآپذیری اندکی داشتند و نگهداری کد نیز با دشواری و هزینه زیاد همراه بود. آ آ
تاریخچه
پیدایش استایلآشیتآها به دهه 1970 باز میآگردد. در آن زمان این نوع فایلآها آSGMLآ نامیده میآشدند. آبشاری کردن این صفحات بهآعنوان ابزاری برای ایجاد یک روش سازگار و مناسب برای فراهما~وری اطلاعات فرم و استیل برای صفحات وب بهآوجود آمد. با گذشت زمان، رشد زبان آHTMLآ آن را به یکی از مهمآترین ابزارهای کار توسعهآدهندگان وب تبدیل کرد. هرچند این روند تکاملی قدرت کنترل طراح بر ظاهر سایت را تا حد زیادی افزایش میآداد، این امر بهآقیمت پیچیدگی کد آHTMLآ و افزایش هزینهآهای نوشتن کد و نگهداری آن تمام میآشد. گوناگونی در پیادهآسازی مرورگرهای وب ایجاد یک وضعیت ثابت و پایدار در ظاهر سایت را ناممکن میآساخت و کاربران کنترل کمتری بر شیوه نمایش صفحات وب داشتند و نمیآتوانستند در صورت لزوم تغییری در آن بهآوجود آورند. آبرای بهبود قابلیتآهای نمایش صفحات وب، 9 زبان مختلف به آC3Wآ پیشنهاد شد. از میان این 9زبان، دو زبان انتخاب شدند که پایهآهای اصلی آCSSآ را تشکیل میآدهند. این دو زبان عبارت بودند از: آCHSSآ و آSSPآ. طراحی و توسعه آCSSآ در سال 1995 آغاز شد و پیش از پایان سال 1996 رسما با نام آCSSآ سطح یک منتشر شد. نسخه کنونی آCSSآ بهآنام آCSSآ سطح 3 که در سال 1998 پدید آمد، همچنان در حال توسعه است. آ
پشتیبانی مرورگرها
فیلتر آCSSآ یک فن کدگذاری است که هدف آن نمایش یا مخفی کردن بخشآهایی از آCSSآ در مرورگرهای مختلف است. با استفاده از فیلتر آCSSآ میآتوان کدهای آCSSآ را بهآنحوی تغییر داد که در مرورگرهای مختلف بهآدرستی نمایش داده شود.
محدودیت ها آ آ
مرورگرهای مختلف کدهای آCSSآ را بهآروشآهای مختلف رندر میآکنند. این امر نتیجه اشکالات موجود در طراحی مرورگرها یا عدم پشتیبانی برخی از مرورگرها از ویژگیآهای آCSSآ است. بهآعنوان مثال آIEآ که از نسخه 3 تاکنون نسخه آ2.0 CSSآ را پیادهآسازی کرده است، در اغلب نسخهآهای پیش از نسخه 8 بسیاری از خصوصیات بسیار مهم مانند طول و عرض را بهآدرستی تفسیر نمیآکرد. اکنون اکثر مرورگرها با موفقیت بر این مشکل غلبه کردهآاند اما آCSSآ هنوز نیازمند اعمال تغییرات زیادی است تا به ساختار قابل نمایش یکسانی روی همه مرورگرها دست یابد. آ آبهآنظر میآرسد که تا دستیابی به ساختاری که با دقتی در حد پیکسل روی همه مرورگرها یکسان نمایش داده شود، راه درازی در پیش است. عدم وجود عبارتآهای محاسباتی در آCSSآ انجام عملیات محاسباتی را امکانآناپذیر میآسازد. اگرچه آCSSآ برای انجام محاسبات طراحی نشده است، اما در مواردی مانند تعیین حاشیه صفحه بر حسب تعداد ستونآها یا پیکسلآها انجام محاسبات ساده لازم است. آ آ
عدم وجود متغیرها در آCSSآ نیز از مواردی است که باید در مورد آن چارهآاندیشی شود. در زبان آCSSآ تنها میآتوان از مقادیر ثابت استفاده کرد. به این ترتیب وقتی مقدار یکی از ثابتآهای موجود در کد تغییر میآکند تنها با استفاده از دستور آReplace-allآ میآتوان مقدار آن را در همه قسمتآهای کد تغییر داد. تغییر مقدار از طریق جابجایی چندان منطقی نیست واغلب مشکل ایجاد میآکند. مثلا اگر بخواهیم برخی از مقادیر ارتفاع را که 50 پیکسل هستند، تغییر دهیم و برخی دیگر را ثابت نگهداریم، استفاده از این شیوه عملی نیست. انجام این کار در آCSSآ تنها از طریق عبارات منظم بسیار پیچیده امکانآپذیر است. بسیاری از توسعهآدهندگان کد برای حل این مشکل از آPHPآ برای کنترل و تغییر خروجی آCSSآ استفاده میآکنند. امروزه بسیاری از توسعهآدهندگان کد معتقدند که آCSSآ نیازمند پیادهآسازی برخی از المانآها و ویژگیآهای زبانآهای برنامهآنویسی است.
آ آمزایا
با ترکیب آCSSآ با امکانات یک سیستم مدیریت محتوا، میآتوان سیستم را بهآنحوی برنامهآریزی کرد که انعطافآپذیری سیستم افزایش یافته و قابل تطبیق با محتوای صفحه باشد. این مساله به کاربران و برنامهآنویسانی که آشنایی زیادی با مفاهیم آCSSآ و با ویرایش کد آCSSآ و آHTMLآ ندارند، کمک میآکند بدون ایجاد تغییرات زیاد صفحات جدید را به فرمی یکسان با صفحات قبلی ایجاد کنند. برای نمونه، نویسنده یک مقاله میآتواند تعداد ستونآهای مقاله را تعیین کند یا تصمیم بگیرد که کدام صفحات مقاله دارای تصویر باشند. این اطلاعات به سیستم مدیریت محتوا منتقل میآشود و منطق برنامه اطلاعات دریافتی را ارزیابی میآکند و بر اساس تعداد مشخصی از پارامترها تعیین میآکند که چطور مجموعهآای از قوانین و کلاسآها را به المانآهای آHTMLآ اعمال کند. بنابراین مکان و فرم المانآها توسط سیستم مدیریت محتوا تعیین میآشود. آ آاهمیت این مزیت بزرگ زمانی مشخص میآشود که در مقیاسآهای خیلی بزرگ و با سایتآهای پیچیده سر و کار داشته باشیم. سایتآهای خبری نمونه بارزی از این نوع سایتآها هستند، تعداد افرادی که این نوع سایتآها را بهآروز میآکنند و یا بهآنوعی به آنها اطلاعات ارسال میآکنند، نسبتا زیاد باشد و این امتیاز بزرگ طراحی و نگهداری آنها را تا حد زیادی آسان میآکند. آ آ
وقتی آCSSآ از دیدگاه ارثآبری و آCascadingآ بهآطور کارآمد استفاده شود، یک استایلآشیت یکنواخت و یکآدست بهآدست میآآید که میآتوان فرم و استیل آن را بر همه المانآهای سایت اعمال کرد. در صورت نیاز به تغییر فرم و استیل برخی از المانآها، اعمال این تغییرات با استفاده از سیستم مدیریت محتوا بسیار ساده و با استفاده از ویرایش تعداد اندکی از قوانین امکانآپذیر است؛ در حالیآکه پیش از پیدایش آCSSآ، این نوع نگهداری از سیستم بسیار دشوار، پرهزینه و وقتآگیر بود. آ
منبع:
روزنامه جام جم مورخ 13/11/87
آویژگیآها آ آ
از مهمآترین مزایای آCSSآ این است که کاربران میآتوانند رنگ، فونت، ساختار و دیگر وجوه نمایش متن را تغییر دهند. هدف اصلی از طراحی آCSSآ جدا کردن محتوای متنی فایلآها از شیوه نمایش آنها است. محتوای متنی فایلآها به زبان آHTMLآ و دیگر زبانآهای مارکآپ و شیوه نمایش متن با استفاده از زبان آCSSآ نوشته میآشود. این جداسازی میآتواند دسترسی به محتوای متنی را بهبود بخشد، انعطافآپذیری و کنترل روی مشخصات و ویژگیآهای نمایش را افزایش دهد و پیچیدگی و تکرارمحتوای ساختاری را از طریق ایجاد امکاناتی مانند طراحی وب بدون استفاده از جدول کاهش دهد. با استفاده از آCSSآ میآتوان یک صفحه مارکآپ را به شیوهآآهای آ(Style)آ گوناگون و با شیوهآهای رندرینگ متفاوت نمایش داد. روشآهای مختلف رندرینگ فایل را به اشکال مختلف مناسب برای کاربردهای مختلف آماده میآکند. آبهآعنوان مثال، نسخهآهای قابل چاپ، نسخهآهای قابل تبدیل به صوت که با مرورگرهای مبتنی بر صدا یا خواننده صفحه نمایش قابل خواندن هستند توسط آCSSآ آماده میآشوند. از مهمآترین ویژگیآهای آCSSآ میآتوان به امکان رندرینگ صفحه برای تبدیل به خط بریل اشاره کرد. آ آ
دستور زبان آCSSآ
دستور زبان آCSSآ ساده است و از تعداد اندکی کلمات کلیدی انگلیسی تشکیل میآشود که برای مشخص کردن اسامی مشخصات فرمآهای گوناگون استفاده میآشوند. یک استایلآشیت در حقیقت یک لیست از قوانین است. هر قانون یا مجموعه قوانین از یک یا چند انتخاب کننده و یک بلوک تعریفآکننده تشکیل میآشود. بلوک تعریفآکننده شامل یک لیست از تعریفآهای جدا شده توسط سمیآکالنآ(

آCSSآ دارای یک الگوی تعیین تقدم برای مشخص کردن تقدم قوانین فرمآهای مختلف است. زمانی که چند قانون مرتبط با یک استیل قابل اعمال هستند، آCSSآ تقدم آنها را تعیین میآکند و سپس با محاسبه وزن یا تقدم هر قانون، این تقدم را به آنها اختصاص میآدهد. این عمل که به آCascadeآ به معنای «آبشار» معروف است نتایج اعمال قوانین را قابل پیشآبینی میآسازد. یکی از ویژگیآهای قابل توجه در آCSSآ این است که اجازه میآدهد فرم و استیل یک فایل تحت تاثیر چند استایلآشیت باشد. یک استایلآشیت میآتواند برخی از ویژگیآهای خود را از یک استایلآشیت دیگر به ارث ببرد. این ویژگی امکان ایجاد ترکیب منحصرآبهآفردی از انواع فرمآها را فراهم میآکند. آ آ
کاربرد آCSSآ
پیش از پیدایش آCSSآ تقریبا همه ویژگیآهای نمایشی اسناد آHTMLآ در کد آHTMLآ نوشته شده بهآزبان مارکآپ درج میآشد. رنگ فونت، فرم و استیل پس زمینه، مرزها و اندازهآها و نیز نحوه قرار گرفتن اجزای مختلف نسبت به هم باید بهآطور مستقیم و اغلب بهآطور تکرارشونده در کد آHTMLآ گنجانیده میآشدند. آCSSآ به برنامهآنویسان اجازه میآدهد که بخش بزرگی از این اطلاعات را به یک استایلآشیت مجزا منتقل کنند و با این کار کد آHTMLآ را سادهآتر کنند و کارایی آن را افزایش دهند در حالی که کدهای پیش از پیدایش آCSSآ علاوه بر پیچیدگی زیاد انعطافآپذیری اندکی داشتند و نگهداری کد نیز با دشواری و هزینه زیاد همراه بود. آ آ
تاریخچه
پیدایش استایلآشیتآها به دهه 1970 باز میآگردد. در آن زمان این نوع فایلآها آSGMLآ نامیده میآشدند. آبشاری کردن این صفحات بهآعنوان ابزاری برای ایجاد یک روش سازگار و مناسب برای فراهما~وری اطلاعات فرم و استیل برای صفحات وب بهآوجود آمد. با گذشت زمان، رشد زبان آHTMLآ آن را به یکی از مهمآترین ابزارهای کار توسعهآدهندگان وب تبدیل کرد. هرچند این روند تکاملی قدرت کنترل طراح بر ظاهر سایت را تا حد زیادی افزایش میآداد، این امر بهآقیمت پیچیدگی کد آHTMLآ و افزایش هزینهآهای نوشتن کد و نگهداری آن تمام میآشد. گوناگونی در پیادهآسازی مرورگرهای وب ایجاد یک وضعیت ثابت و پایدار در ظاهر سایت را ناممکن میآساخت و کاربران کنترل کمتری بر شیوه نمایش صفحات وب داشتند و نمیآتوانستند در صورت لزوم تغییری در آن بهآوجود آورند. آبرای بهبود قابلیتآهای نمایش صفحات وب، 9 زبان مختلف به آC3Wآ پیشنهاد شد. از میان این 9زبان، دو زبان انتخاب شدند که پایهآهای اصلی آCSSآ را تشکیل میآدهند. این دو زبان عبارت بودند از: آCHSSآ و آSSPآ. طراحی و توسعه آCSSآ در سال 1995 آغاز شد و پیش از پایان سال 1996 رسما با نام آCSSآ سطح یک منتشر شد. نسخه کنونی آCSSآ بهآنام آCSSآ سطح 3 که در سال 1998 پدید آمد، همچنان در حال توسعه است. آ
پشتیبانی مرورگرها
فیلتر آCSSآ یک فن کدگذاری است که هدف آن نمایش یا مخفی کردن بخشآهایی از آCSSآ در مرورگرهای مختلف است. با استفاده از فیلتر آCSSآ میآتوان کدهای آCSSآ را بهآنحوی تغییر داد که در مرورگرهای مختلف بهآدرستی نمایش داده شود.
محدودیت ها آ آ
مرورگرهای مختلف کدهای آCSSآ را بهآروشآهای مختلف رندر میآکنند. این امر نتیجه اشکالات موجود در طراحی مرورگرها یا عدم پشتیبانی برخی از مرورگرها از ویژگیآهای آCSSآ است. بهآعنوان مثال آIEآ که از نسخه 3 تاکنون نسخه آ2.0 CSSآ را پیادهآسازی کرده است، در اغلب نسخهآهای پیش از نسخه 8 بسیاری از خصوصیات بسیار مهم مانند طول و عرض را بهآدرستی تفسیر نمیآکرد. اکنون اکثر مرورگرها با موفقیت بر این مشکل غلبه کردهآاند اما آCSSآ هنوز نیازمند اعمال تغییرات زیادی است تا به ساختار قابل نمایش یکسانی روی همه مرورگرها دست یابد. آ آبهآنظر میآرسد که تا دستیابی به ساختاری که با دقتی در حد پیکسل روی همه مرورگرها یکسان نمایش داده شود، راه درازی در پیش است. عدم وجود عبارتآهای محاسباتی در آCSSآ انجام عملیات محاسباتی را امکانآناپذیر میآسازد. اگرچه آCSSآ برای انجام محاسبات طراحی نشده است، اما در مواردی مانند تعیین حاشیه صفحه بر حسب تعداد ستونآها یا پیکسلآها انجام محاسبات ساده لازم است. آ آ
عدم وجود متغیرها در آCSSآ نیز از مواردی است که باید در مورد آن چارهآاندیشی شود. در زبان آCSSآ تنها میآتوان از مقادیر ثابت استفاده کرد. به این ترتیب وقتی مقدار یکی از ثابتآهای موجود در کد تغییر میآکند تنها با استفاده از دستور آReplace-allآ میآتوان مقدار آن را در همه قسمتآهای کد تغییر داد. تغییر مقدار از طریق جابجایی چندان منطقی نیست واغلب مشکل ایجاد میآکند. مثلا اگر بخواهیم برخی از مقادیر ارتفاع را که 50 پیکسل هستند، تغییر دهیم و برخی دیگر را ثابت نگهداریم، استفاده از این شیوه عملی نیست. انجام این کار در آCSSآ تنها از طریق عبارات منظم بسیار پیچیده امکانآپذیر است. بسیاری از توسعهآدهندگان کد برای حل این مشکل از آPHPآ برای کنترل و تغییر خروجی آCSSآ استفاده میآکنند. امروزه بسیاری از توسعهآدهندگان کد معتقدند که آCSSآ نیازمند پیادهآسازی برخی از المانآها و ویژگیآهای زبانآهای برنامهآنویسی است.
آ آمزایا
با ترکیب آCSSآ با امکانات یک سیستم مدیریت محتوا، میآتوان سیستم را بهآنحوی برنامهآریزی کرد که انعطافآپذیری سیستم افزایش یافته و قابل تطبیق با محتوای صفحه باشد. این مساله به کاربران و برنامهآنویسانی که آشنایی زیادی با مفاهیم آCSSآ و با ویرایش کد آCSSآ و آHTMLآ ندارند، کمک میآکند بدون ایجاد تغییرات زیاد صفحات جدید را به فرمی یکسان با صفحات قبلی ایجاد کنند. برای نمونه، نویسنده یک مقاله میآتواند تعداد ستونآهای مقاله را تعیین کند یا تصمیم بگیرد که کدام صفحات مقاله دارای تصویر باشند. این اطلاعات به سیستم مدیریت محتوا منتقل میآشود و منطق برنامه اطلاعات دریافتی را ارزیابی میآکند و بر اساس تعداد مشخصی از پارامترها تعیین میآکند که چطور مجموعهآای از قوانین و کلاسآها را به المانآهای آHTMLآ اعمال کند. بنابراین مکان و فرم المانآها توسط سیستم مدیریت محتوا تعیین میآشود. آ آاهمیت این مزیت بزرگ زمانی مشخص میآشود که در مقیاسآهای خیلی بزرگ و با سایتآهای پیچیده سر و کار داشته باشیم. سایتآهای خبری نمونه بارزی از این نوع سایتآها هستند، تعداد افرادی که این نوع سایتآها را بهآروز میآکنند و یا بهآنوعی به آنها اطلاعات ارسال میآکنند، نسبتا زیاد باشد و این امتیاز بزرگ طراحی و نگهداری آنها را تا حد زیادی آسان میآکند. آ آ
وقتی آCSSآ از دیدگاه ارثآبری و آCascadingآ بهآطور کارآمد استفاده شود، یک استایلآشیت یکنواخت و یکآدست بهآدست میآآید که میآتوان فرم و استیل آن را بر همه المانآهای سایت اعمال کرد. در صورت نیاز به تغییر فرم و استیل برخی از المانآها، اعمال این تغییرات با استفاده از سیستم مدیریت محتوا بسیار ساده و با استفاده از ویرایش تعداد اندکی از قوانین امکانآپذیر است؛ در حالیآکه پیش از پیدایش آCSSآ، این نوع نگهداری از سیستم بسیار دشوار، پرهزینه و وقتآگیر بود. آ
منبع:
روزنامه جام جم مورخ 13/11/87