ویژگیها
از مهمترین مزایای 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، این نوع نگهداری از سیستم بسیار دشوار، پرهزینه و وقتگیر بود.
آوید افضل
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم