Размер фона css со спрайтами - PullRequest
4 голосов
/ 01 февраля 2012

У меня есть список, и у каждого <li> есть значок и текст.

Изображение значков является спрайтовым изображением, поэтому мне нужно установить background-size каждого li, чтобы иметь размер значка.

Как я могу сделать это с помощью CSS?

Ответы [ 4 ]

4 голосов
/ 13 июня 2013

Для изображений, которые поддерживают текст, таких как списки с иконками, было бы лучше использовать псевдоэлементы CSS: before или: after. Это сохраняет ваш HTML в чистоте.

<ul>
   <li>List Item</li>
   <li>List Item</li>
</ul>

li:before
{
   content: "";
   width: 1em;
   height: 1em;
   background: url("image.png") -12px -12px no-repeat transparent;
   display: inline-block;
}

Для получения более подробной информации об этой технике, проверьте http://css -tricks.com / .

2 голосов
/ 01 февраля 2012

Вы можете установить размер фонового изображения в CSS3, например, background-size: 32px 32px;, но это не совсем совместимо с браузерами, и я думаю, это то, что вас беспокоит.

Если спрайт не является хорошо разнесенным и вертикальным, я бы рекомендовал использовать немного дополнительной разметки. Например, используйте разметку как

<li><span class="ico"></span>This is an li element.</li>

и стиль элемента span с соответствующей высотой и фоновым изображением спрайта. Используя этот метод, ваши li элементы могут иметь любую высоту, и будет отображаться только соответствующий значок, несмотря на то, насколько плотно упакован ваш спрайт.

0 голосов
/ 07 июня 2012

Вот пример. Поменяйте местами спрайт на светло-серую область: http://jsfiddle.net/Pf7Xs/

Это то, что вы спрашивали? Наличие области спрайта и текста в пределах <li> того же размера?

В основном вы будете использовать line-height и height, чтобы выстроить то, что вы хотите. надеюсь, что это поможет.

0 голосов
/ 01 февраля 2012

Вам нужно установить высоту. повторение фона LI, а также отступы.

Вот удобное руководство: preview.moveable.com / JM / ilovelists

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...