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