سوال در مورد Css Sprite

amirepsilon

Active Member
سلام
دوستان فکر کنید یک تصویر پر از آیکن کوچیک داریم
حالا چطور مختصات یکی از اون آیکن هایی که نیاز داریم رو به راحتی به دست بیاریم ؟
در ضمن
لطفا کمی هم در مورد این مختصات دادن توضیح بدید
ممنون
 

pouya saadeghi

Active Member
CSS Sprites
CSS sprite چیست؟
ترفندی برای کاهش حجم ، و زمان بارگذاری صفحه.
مرورگر برای بارگذاری هر کدام از اجزای صفحه (مانند تصاویر ، فایل های CSS و جاوا اسکریپت و…) یک درخواست (Request) به سرور ارسال می‌کند تا سرور ، فایل درخواستی را برای مرورگر بفرستد. ارسال هر Request و دریافت پاسخ آن ، بخشی از زمان بارگذاری صفحه است.

هرچه تعداد Request ها کمتر باشد ، زمان بارگذاری صفحه کمتر می شود. به جای چند فایل CSS بهتره از یک فایل استفاده کنیم. به جای چند فایل JS میتونیم از یک فایل استفاده کنیم ؛ میتونیم تصاویری که به عنوان بکگراند المنت ها در صفحه استفاده میکنیم را در یک تصویر قرار بدیم.

به این تصویر توجه کنید:
css-sprite-screenshot.png


در این صفحه از 6 آیکون ، یک گرادینت و 2 عکس برای دکمه استفاده شده (یک تصویر برای حالت عادی و یک تصویر برای زمانی که موس روی آن حرکت می‌کند.)

در حالت عادی ، با استفاده از تگ <img> یا در بکگراند المنت ها این تصاویر رو در صفحه قرار میدهیم.

مرورگر برای بارگذاری 10 فایل، 10 Request ارسال میکند. اگر این 10تصویر در یک تصویر قرار بگیرند، مرورگر برای بارگذاری صفحه، 9 درخواست کمتر ارسال می کند و تمام تصاویر با بارگذاری یک فایل در قسمت‌های مختلف صفحه قرار می گیرند.
sprite.png


با این کار هم حجم عکس ها کمتر میشه، و هم تعداد Request ها:
10vs1.png


برای استفاده از تصویر sprite ، آن را به عنوان بکگراند المنت مورد نظر قرار می دهیم:
کد:
.my_div{background:url(sprite.png) width:155px; height:40px;}

طول و عرض div مشخص شده، پس تصویر بکگراند فقط تا 155 پیکسل از سمت چپ و 40 پیکسل از بالا دیده میشه:
css-sprites-1.png


حالا اگه بخوایم برای المنت بعدی از این بکگراند استفاده کنیم ،
کد:
.title{background:url(sprite.png);
 
font-family:Constantia; font-weight:bold; font-style:italic; font-size:44px;text-shadow:1px 1px 0 #eee;
color:#FF9900; padding:0 0 9px 20px;}

باز هم همون تصویر بالایی دیده میشه:
css-sprites-2.png


حالا باید مکان بکگراند رو جابجا کنیم:
کد:
.title{background:url(sprite.png) 0px -105px;
 
font-family:Constantia; font-weight:bold; font-style:italic; font-size:44px;text-shadow:1px 1px 0 #eee;
color:#FF9900; padding:0 0 9px 20px;}

css-sprites-3.png


از نظر افقی ، با صفر پیکسل بکگراند ثابته ولی از نظر عمودی 105 پیکسل منفی (به سمت بالا) جابجا شده. 105 پیکسل به سمت بالا جابجا شده تا به گرادینت برسه:
css-sprites-4.png


با همین جابجایی ها به قسمت های مختلف تصویر میرسیم.

مثلا برای رسیدن به آیکون ضربدر:
کد:
.icon6{background:url(sprite.png) -92px -84px;
width:18px; height:20px;}
به همین سادگی میتونیم زمان بارگذاری صفحه رو کمتر کنیم icon smile CSS Sprites
امیدوارم این مقاله‌م به دردتون بخوره: آموزش استفاده از CSS Sprite در طراحی وب
 
آخرین ویرایش توسط مدیر:
  • Like
Reactions: L-B

جدیدترین ارسال ها

بالا