آبجی
21st April 2010, 03:59 AM
CSS یك زبان استایلشیت (Stylesheet) است كه برای توصیف شیوه نمایش فایلهای متنی نوشته شده به زبانهای ماركآپ (Markup) استفاده میشود. زبانهای استایلشیت همانطور كه از نام آنها برمیآید، فرم نمایش فایلها را مشخص میكنند. مهمترین كاربرد این زبان ایجاد استیل و فرم برای صفحات وب نوشته شده بهزبان HTML و XHTML است. با این وجود CSS را میتوان در مورد هر نوع متن نوشته شده به زبان XML از جمله SVG و XUL اعمال كرد.
ویژگیها
از مهمترین مزایای CSS این است كه كاربران میتوانند رنگ، فونت، ساختار و دیگر وجوه نمایش متن را تغییر دهند. هدف اصلی از طراحی CSS جدا كردن محتوای متنی فایلها از شیوه نمایش آنها است. محتوای متنی فایلها به زبان HTML و دیگر زبانهای ماركآپ و شیوه نمایش متن با استفاده از زبان CSS نوشته میشود. این جداسازی میتواند دسترسی به محتوای متنی را بهبود بخشد، انعطافپذیری و كنترل روی مشخصات و ویژگیهای نمایش را افزایش دهد و پیچیدگی و تكرارمحتوای ساختاری را از طریق ایجاد امكاناتی مانند طراحی وب بدون استفاده از جدول كاهش دهد. با استفاده از CSS میتوان یك صفحه ماركآپ را به شیوههای (Style) گوناگون و با شیوههای رندرینگ متفاوت نمایش داد. روشهای مختلف رندرینگ فایل را به اشكال مختلف مناسب برای كاربردهای مختلف آماده میكند. بهعنوان مثال، نسخههای قابل چاپ، نسخههای قابل تبدیل به صوت كه با مرورگرهای مبتنی بر صدا یا خواننده صفحه نمایش قابل خواندن هستند توسط CSS آماده میشوند. از مهمترین ویژگیهای CSS میتوان به امكان رندرینگ صفحه برای تبدیل به خط بریل اشاره كرد.
دستور زبان CSS
دستور زبان CSS ساده است و از تعداد اندكی كلمات كلیدی انگلیسی تشكیل میشود كه برای مشخص كردن اسامی مشخصات فرمهای گوناگون استفاده میشوند. یك استایلشیت در حقیقت یك لیست از قوانین است. هر قانون یا مجموعه قوانین از یك یا چند انتخاب كننده و یك بلوك تعریفكننده تشكیل میشود. بلوك تعریفكننده شامل یك لیست از تعریفهای جدا شده توسط سمیكالن(Wink است كه درون دو كروشه قرار میگیرند. هر تعریف خود شامل یك مشخصه، یك كولون، یك مقدار و در انتها یك سمی كولون است.
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، این نوع نگهداری از سیستم بسیار دشوار، پرهزینه و وقتگیر بود.
http://www.SamanSoftware.com
http://pc-mahdi.blogfa.com
ویژگیها
از مهمترین مزایای CSS این است كه كاربران میتوانند رنگ، فونت، ساختار و دیگر وجوه نمایش متن را تغییر دهند. هدف اصلی از طراحی CSS جدا كردن محتوای متنی فایلها از شیوه نمایش آنها است. محتوای متنی فایلها به زبان HTML و دیگر زبانهای ماركآپ و شیوه نمایش متن با استفاده از زبان CSS نوشته میشود. این جداسازی میتواند دسترسی به محتوای متنی را بهبود بخشد، انعطافپذیری و كنترل روی مشخصات و ویژگیهای نمایش را افزایش دهد و پیچیدگی و تكرارمحتوای ساختاری را از طریق ایجاد امكاناتی مانند طراحی وب بدون استفاده از جدول كاهش دهد. با استفاده از CSS میتوان یك صفحه ماركآپ را به شیوههای (Style) گوناگون و با شیوههای رندرینگ متفاوت نمایش داد. روشهای مختلف رندرینگ فایل را به اشكال مختلف مناسب برای كاربردهای مختلف آماده میكند. بهعنوان مثال، نسخههای قابل چاپ، نسخههای قابل تبدیل به صوت كه با مرورگرهای مبتنی بر صدا یا خواننده صفحه نمایش قابل خواندن هستند توسط CSS آماده میشوند. از مهمترین ویژگیهای CSS میتوان به امكان رندرینگ صفحه برای تبدیل به خط بریل اشاره كرد.
دستور زبان CSS
دستور زبان CSS ساده است و از تعداد اندكی كلمات كلیدی انگلیسی تشكیل میشود كه برای مشخص كردن اسامی مشخصات فرمهای گوناگون استفاده میشوند. یك استایلشیت در حقیقت یك لیست از قوانین است. هر قانون یا مجموعه قوانین از یك یا چند انتخاب كننده و یك بلوك تعریفكننده تشكیل میشود. بلوك تعریفكننده شامل یك لیست از تعریفهای جدا شده توسط سمیكالن(Wink است كه درون دو كروشه قرار میگیرند. هر تعریف خود شامل یك مشخصه، یك كولون، یك مقدار و در انتها یك سمی كولون است.
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، این نوع نگهداری از سیستم بسیار دشوار، پرهزینه و وقتگیر بود.
http://www.SamanSoftware.com
http://pc-mahdi.blogfa.com