CSS-ÑпÑÐ°Ð¹Ñ â ÑпоÑоб обÑединиÑÑ Ð¼Ð½Ð¾Ð³Ð¾ изобÑажений в одно, ÑÑобÑ:
- СокÑаÑиÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво обÑаÑений к ÑеÑвеÑÑ.
- ÐагÑÑзиÑÑ Ð½ÐµÑколÑко изобÑажений ÑÑазÑ, вклÑÑÐ°Ñ Ñе, коÑоÑÑе понадобÑÑÑÑ Ð² бÑдÑÑем.
- ÐÑли Ñ Ð¸Ð·Ð¾Ð±Ñажений ÑÑ Ð¾Ð´Ð½Ð°Ñ Ð¿Ð°Ð»Ð¸ÑÑа, Ñо обÑединÑнное изобÑажение бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑе по ÑазмеÑÑ, Ñем ÑовокÑпноÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½ÑÑ ÐºÐ°ÑÑинок.
РаÑÑмоÑÑим, как ÑÑо ÑабоÑаеÑ, на пÑимеÑе деÑева:
<ul>
<li class="open">
<div class="icon"></div>
<div class="text">Раздел 1
<br>Рдве ÑÑÑоки</div>
<ul>
<li class="closed">
<div class="icon"></div>
<div class="text">Раздел 1.1 в Ð¾Ð´Ð½Ñ ÑÑÑокÑ</div>
</li>
<li class="leaf">
<div class="icon"></div>
<div class="text">СÑÑаниÑа 1.2
<br> в две ÑÑÑоки</div>
</li>
</ul>
</li>
<li class="closed">
<div class="icon"></div>
<div class="text">Раздел 2
<br>Рдве ÑÑÑоки</div>
</li>
</ul>
СейÑÐ°Ñ Â«Ð¿Ð»ÑÑ», «минÑÑ» и «ÑÑаÑÑÑ» â ÑÑи оÑделÑнÑÑ Ð¸Ð·Ð¾Ð±ÑажениÑ. ÐбÑединим Ð¸Ñ Ð² ÑпÑайÑ.
Шаг 1. ÐÑполÑзоваÑÑ background
ÐеÑвÑй Ñаг к обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñажений в «ÑпÑайÑ» â показÑваÑÑ Ð¸Ñ
ÑеÑез background., а не ÑеÑез Ñег IMG.
Рданном ÑлÑÑае он Ñже Ñделан. СÑÐ¸Ð»Ñ Ð´Ð»Ñ Ð´ÐµÑева:
.icon {
width: 16px;
height: 16px;
float: left;
}
.open .icon {
cursor: pointer;
background: url(minus.gif);
}
.closed .icon {
cursor: pointer;
background: url(plus.gif);
}
.leaf .icon {
cursor: text;
background: url(article.gif);
}
Шаг 2. ÐбÑединиÑÑ Ð¸Ð·Ð¾Ð±ÑажениÑ
СоÑÑавим из неÑколÑкиÑ
изобÑажений одно icons.gif, ÑаÑположив иÑ
, напÑимеÑ, по веÑÑикали.
Ðз
,
и
полÑÑиÑÑÑ Ð¾Ð´Ð½Ð° каÑÑинка: ![]()
Шаг 3. ÐоказаÑÑ ÑаÑÑÑ ÑпÑайÑа в «окоÑке»
Ð ÑепеÑÑ Ñамое забавное. Ð Ð°Ð·Ð¼ÐµÑ DIV Ð´Ð»Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸ â жÑÑÑко ÑикÑиÑован:
/*+ no-beautify */
.icon {
width: 16px;
height: 16px;
float: left;
}
ÐÑо знаÑиÑ, ÑÑо еÑли поÑÑавиÑÑ Ð² каÑеÑÑве background обÑединÑннÑÑ ÐºÐ°ÑÑинкÑ, Ñо вÑÑ Ð¾Ð½Ð° не помеÑÑиÑÑÑ, бÑÐ´ÐµÑ Ð²Ð¸Ð´Ð½Ð° ÑолÑко веÑÑ
нÑÑ ÑаÑÑÑ:
ÐÑли Ð±Ñ Ð²ÑÑоÑа иконки бÑла болÑÑе, напÑимеÑ, 16x48, как в пÑимеÑе ниже, Ñо бÑло Ð±Ñ Ð²Ð¸Ð´Ð½Ð¾ и оÑÑалÑное:
â¦Ð½Ð¾ Ñак как Ñам вÑего 16px, Ñо помеÑаеÑÑÑ ÑолÑко одно изобÑажение.
Шаг 4. СдвинÑÑÑ ÑпÑайÑ
Сдвиг Ñона background-position позволÑÐµÑ Ð²ÑбиÑаÑÑ, какÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑаÑÑÑ ÑпÑайÑа видно.
Ð ÑпÑайÑе icons.gif изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ñак, ÑÑо Ñдвиг на 16px Ð¿Ð¾ÐºÐ°Ð¶ÐµÑ ÑледÑÑÑÑÑ Ð¸ÐºÐ¾Ð½ÐºÑ:
/*+ no-beautify */
.icon {
width: 16px;
height: 16px;
float: left;
background: url(icons.gif) no-repeat;
}
.open .icon {
background-position: 0 -16px; /* ввеÑÑ
на 16px */
cursor: pointer;
}
.closed .icon {
background-position: 0 0px; /* по ÑмолÑÐ°Ð½Ð¸Ñ */
cursor: pointer;
}
.leaf .icon {
background-position: 0 -32px; /* ввеÑÑ
на 32px */
cursor: text;
}
РезÑлÑÑаÑ:
- Ð ÑпÑÐ°Ð¹Ñ Ð¼Ð¾Ð³ÑÑ Ð¾Ð±ÑединÑÑÑÑÑ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑазнÑÑ ÑазмеÑов, Ñ.е. Ñдвиг Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм.
- СдвигаÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ и по гоÑизонÑали и по веÑÑикали.
ÐÑÑÑÑпÑ
ÐбÑÑно оÑÑÑÑÐ¿Ñ Ð´ÐµÐ»Ð°ÑÑÑÑ margin/padding, но иногда иÑ
бÑÐ²Ð°ÐµÑ Ñдобно пÑедÑÑмоÑÑеÑÑ Ð² ÑпÑайÑе.
Тогда еÑли ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ болÑÑе, Ñем ÑÐ°Ð·Ð¼ÐµÑ Ð¸Ð·Ð¾Ð±ÑажениÑ, Ñо в «окоÑке» не поÑвиÑÑÑ Ð»Ð¸Ñнего.
ÐÑÐ¸Ð¼ÐµÑ ÑпÑайÑа Ñ Ð¾ÑÑÑÑпами:
Ðконка RSS наÑ
одиÑÑÑ Ð² нÑм на кооÑдинаÑаÑ
(90px, 40px):
ÐÑо знаÑиÑ, Ð´Ð»Ñ Ñого ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑ ÑÑÑ Ð¸ÐºÐ¾Ð½ÐºÑ, нÑжно ÑмеÑÑиÑÑ Ñон:
background-position: -90px -40px;
ÐÑи ÑÑом в левом-веÑÑ Ð½ÐµÐ¼ ÑÐ³Ð»Ñ Ñона как Ñаз и бÑÐ´ÐµÑ ÑÑа иконка:
ÐлеменÑ, в коÑоÑом Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¸ÐºÐ¾Ð½ÐºÐ° (в Ñамке), болÑÑе по ÑазмеÑÑ, Ñем каÑÑинка.
Ðго ÑÑилÑ:
/*+ no-beautify */
.rss {
width: 35px; /* ÑиÑина/вÑÑоÑа болÑÑе Ñем ÑÐ°Ð·Ð¼ÐµÑ Ð¸ÐºÐ¾Ð½ÐºÐ¸ */
height: 35px;
border: 1px solid black;
float: left;
background-image: url(sprite.png);
background-position: -90px -40px;
}
ÐÑли Ð±Ñ Ð² ÑпÑайÑе не бÑло оÑÑÑÑпов, Ñо в Ñакое болÑÑое «окоÑко» навеÑнÑка влезли Ð±Ñ Ð´ÑÑгие иконки.
ÐÑого
IMG, а когда â CSS background?РеÑение лÑÑÑе вÑего пÑинимаÑÑ, иÑÑ Ð¾Ð´Ñ Ð¸Ð· пÑинÑипов ÑеманÑиÑеÑкой вÑÑÑÑки.
ÐадайÑе вопÑÐ¾Ñ â ÑÑо здеÑÑ Ð´ÐµÐ»Ð°ÐµÑ Ð¸Ð·Ð¾Ð±Ñажение? ЯвлÑеÑÑÑ Ð»Ð¸ оно ÑамоÑÑоÑÑелÑнÑм ÑлеменÑом ÑÑÑаниÑÑ (ÑоÑогÑаÑиÑ, аваÑÐ°Ñ Ð¿Ð¾ÑеÑиÑелÑ), или же оÑоÑмлÑÐµÑ ÑÑо-либо (иконка Ñзла деÑева)?
ÐÐ»ÐµÐ¼ÐµÐ½Ñ IMG ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð² пеÑвом ÑлÑÑае, а Ð´Ð»Ñ Ð¾ÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ñ Ð½Ð°Ñ ÐµÑÑÑ CSS.
СпÑайÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ:
- СокÑаÑиÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво обÑаÑений к ÑеÑвеÑÑ.
- ÐагÑÑзиÑÑ Ð½ÐµÑколÑко изобÑажений ÑÑазÑ, вклÑÑÐ°Ñ Ñе, коÑоÑÑе понадобÑÑÑÑ Ð² бÑдÑÑем.
- ÐÑли Ñ Ð¸Ð·Ð¾Ð±Ñажений ÑÑ Ð¾Ð´Ð½Ð°Ñ Ð¿Ð°Ð»Ð¸ÑÑа, Ñо обÑединÑнное изобÑажение бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑе по ÑазмеÑÑ, Ñем ÑовокÑпноÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½ÑÑ ÐºÐ°ÑÑинок.
ÐÑли Ñоновое изобÑажение нÑжно повÑоÑÑÑÑ Ð¿Ð¾ гоÑизонÑали или веÑÑикали, Ñо ÑпÑайÑÑ Ñоже подойдÑÑ â изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² Ð½Ð¸Ñ Ð½Ñжно ÑаÑполагаÑÑ Ð² ÑÑом ÑлÑÑае Ñак, ÑÑÐ¾Ð±Ñ Ð¿Ñи повÑоÑении не бÑли Ð²Ð¸Ð´Ð½Ñ ÑоÑеди, Ñ.е., ÑооÑвеÑÑÑвенно, веÑÑикалÑно или гоÑизонÑалÑно, но не «ÑеÑÑÑкой».
Ðалее Ð¼Ñ Ð²ÑÑÑеÑимÑÑ Ñо ÑпÑайÑами пÑи Ñоздании инÑеÑÑейÑов, ÑÑÐ¾Ð±Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° пÑи наведении менÑла ÑÐ²Ð¾Ñ Ð¸Ð·Ð¾Ð±Ñажение. Ðдин ÑпÑÐ°Ð¹Ñ Ð±ÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð²Ñе ÑоÑÑоÑÐ½Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸, а пеÑеклÑÑение внеÑнего вида â оÑÑÑеÑÑвлÑÑÑÑÑ Ð¿Ñи помоÑи Ñдвига background-position.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)