با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش CSS را دنبال می کنند. ممکن است شما بخواهید برای بخش های مختلف وب سایت خود یک تصویر مرتبط قرار دهید تا از این طریق درک کاربران از قسمت های مختلف وب سایت خود را راحت تر کنید. همچنین از این طریق قالب وب شما نمای بهتری می یابد، اما استفاده از تصاویر مختلف باعث افزایش حجم تبادل داده ها با سرور و کاهش سرعت وب سایت شما می شود، برای این منظور شما می توانید به جای استفاده از تصاویر مختلف از یک تصویر اسپریت استفاده کنید، قابلیت Image Sprite در CSS تعریف می شود، و به شما اجازه می دهد از تصاویر گنجانده شده در یک تصویر بهره بگیرید، در ادامه ما به ساختار کلی ایجاد تصاویر اسپریت در CSS پرداخته ایم.
در ادامه این آموزش ما به شما ساختار اصلی پیاده سازی تصاویر اسپریت در CSS را ارائه کرده ایم.
تصاویر اسپریت در CSS در واقع مجموعه ای از تصاویر ساده و کم حجم در قالب یک تصویر واحد است.
یک وب سایت با تعداد زیادی از تصاویر مجزا، وقت زیادی از سرور را برای پردازش تصاویر اشغال می کند.
با استفاده از قابلیت Image Sprite در CSS شما از یک تصویر استفاده کرده و زمان پردازش و بارگذاری را کاهش می دهید.
ما به جای استفاده از تصاویر مجزا از یک تصویر واحد (“img_navsprites.gif”) استفاده می کنیم.
با استفاده از CSS ما فقط قسمت مورد نیاز از این تصویر را دریافت می کنیم.
مثال زیر اولین بخش از تصویر (“img_navsprites.gif”) را در عنصر مربوطه نمایش می دهد.
1 2 3 4 5 | #home { width: 46px; height: 44px; background: url(img_navsprites.gif) 0 0; } |
تشریح مثال فوق:
<img id="home" src="img_trans.gif">
فقط ظرفی را برای نمایش تصویر اصلی فراهم می کند چراکه ویژگی src نمی تواند خالی باشد.برای نمایش تصویر مورد نظر ما از کدهای CSS استفاده می کنیم.
width: 46px; height: 44px;
نیز عرض و ارتفاع تصاویر را برای نمایش مشخص می کند.background: url(img_navsprites.gif) 0 0;
قسمتی از تصویر اصلی که می خواهیم نمایش دهیم را تعریف می کند.این ساده ترین ساختار استفاده از تصاویر اسپریت در CSS است، در ادامه با لینک و style دهی آن را کامل تر می کنیم.
ما در این قسمت با استفاده از تصویر اسپریت (“img_navsprites.gif”) یک لیست navigation ایجاد می کنیم.
ما از لیست HTML استفاده می کنیم چراکه هم می تواند لینک داشته باشد و هم از تصاویر پس زمینه پشتیبانی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #navlist { position: relative; } #navlist li { margin: 0; padding: 0; list-style: none; position: absolute; top: 0; } #navlist li, #navlist a { height: 44px; display: block; } #home { left: 0px; width: 46px; background: url('img_navsprites.gif') 0 0; } #prev { left: 63px; width: 43px; background: url('img_navsprites.gif') -47px 0; } #next { left: 129px; width: 43px; background: url('img_navsprites.gif') -91px 0; } |
#navlist {position:relative;}
موقعیت عنصر ظرف را relative تنظیم می کند تا عناصر absolute داخل آن قرار بگیرند.#navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;}
ویژگی های margin و padding را ۰ قرار می دهیم و list-style را حذف می کنیم.و position تمام آیتم ها را absolute تنظیم می کنیم.
#navlist li, #navlist a {height:44px;display:block;}
ارتفاع تصاویر را ۴۴px تنظیم کرده ایم.سپس شروع به تنظیم موقعیت و style هر بخش می کنیم:
#home {left:0px;width:46px;}
: ترازبندی را از چپ تنظیم کرده و عرض تصویر را ۴۶px تعیین کرده ایم.#home {background:url(img_navsprites.gif) 0 0;}
: تصویر پس زمینه و موقعیت هر یک را از تصویر اصلی انتخاب کرده ایم.#prev {left:63px;width:43px;}
: فاصله از سمت چپ را ۶۳px و width را ۴۳px تنظیم کرده ایم.#prev {background:url('img_navsprites.gif') -47px 0;}
: موقعیت تصویر بعدی را از تصویر اصلی با مختصات ۴۷px- 0 انتخاب کرده ایم.#next {left:129px;width:43px;}
: موقعیت این تصویر را ۱۲۹px از سمت چپ فاصله داده و width:43px را تنظیم کرده ایم.#next {background:url('img_navsprites.gif') -91px 0;}
: موقعیت این تصویر را از مختصات ۹۱px- 0 از تصویر اصلی انتخاب کرده ایم.حالا ما یک افکت Hover را به لیست navigation خود اضافه می کنیم.
نکته : انتخابگر :hover
نه فقط در لینک ها بلکه می تواند در تمامی عناصر استفاده شود.
تصویر جدید ما (“img_navsprites_hover.gif”) شامل سه تصویر navigation و سه تصویر با افکت Hover خواهد بود.
از آنجا که ما از یک تصویر واحد استفاده می کنیم زمانیکه کاربر اشاره را روی هر تصویر ببرد بارگذاری را با زمان کمتری خواهیم داشت.
ما فقط سه خط زیر را برای افزودن افکت Hover به تصاویر اعمال می کنیم:
1 2 3 4 5 6 7 8 9 10 11 | #home a:hover { background: url('img_navsprites_hover.gif') 0 -45px; } #prev a:hover { background: url('img_navsprites_hover.gif') -47px -45px; } #next a:hover { background: url('img_navsprites_hover.gif') -91px -45px; } |
تشریح مثال فوق:
#home a:hover {background: transparent url('img_navsprites_hover.gif') 0 -45px;}
: برای هر سه تصویر hover ما موقعیت پس زمینه مشابه آن را مشخص می کنیم، فقط ۴۵px پایین تر است.تصاویر اسپریت در CSS به شما کمک می کند تا به جای استفاده از تصاویر مختلف در وب قالب خود و بالا بردن زمان بارگذاری سایت و افزایش حجم پردازش سرور، از قسمت های مختلف یک تصویر واحد استفاده کرده و زمان بارگذاری سایت خود را تا حد زیادی کاهش دهید.