Как иметь несколько спрайтов css? - PullRequest
0 голосов
/ 09 января 2012

Я хочу получить ряд изображений, которые я собрал в один с помощью pnmcat -lr. Я не хочу карту изображения, потому что части обмениваются для выделения. У меня есть значимые изображения, поэтому я хочу <img>, а не фон.

Многообещающими примерами являются http://css -tricks.com / css-sprites-with-inline-images / и http://1plusdesign.com/articles/css-clip-property-inline-image-sprites/. В последнем даже показан некоторый html с тремя изображениями в ряд.

Но при загрузке демо он использует их отдельно. И когда я вставляю элемент div из демонстрации 1, я получаю тот же результат, что и все, что я пробую на своей странице: все они располагаются друг над другом, а не подряд. Я попытался обернуть их отдельно, поместив ширину на обертку, расположив ее относительно, ничего не работает ...

Btw. оба автора используют два класса одновременно. Есть ли для этого причины? Учитывая наличие оболочки, класс, который одинаков для всех изображений, может быть вложенным CSS, а затем другой класс может быть идентификатором (если он используется только один раз), верно?

.wrapper img {
    position:absolute;
    top:0;
    left:0;
}
#sad { clip: rect(0 128px 128px 0); }

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Мне было интересно, почему клиперы спрайтов настаивают на том, чтобы поставить соответствующий отрицательный знак влево или вверх.Я не должен был воспринимать это как загадку, потому что это именно ключ к пониманию: у Клипа странная геометрия, там вся картинка, но в неизменном (!!!) месте виден только прямоугольник.Тем не менее, тег img - это прямоугольник только вокруг прямоугольника.

Теперь с абсолютным положением и отрицательным левым краем я бы потянул все реты в одну и ту же позицию.Вместо этого я хочу сделать их еще немного правильнее, чтобы получить пробелы.При этом панель вкладок в http://makepp.sourceforge.net/ работает как чудо во всех браузерах.

0 голосов
/ 09 января 2012

Вы не показали достаточно своего кода, чтобы дать определенный ответ.

Если под "друг на друга" вы подразумеваете, что они все в одном месте, то я предполагаю, чтоу ваших обёрток нет свойства position: relative.Таким образом, все изображения расположены относительно контейнера упаковщиков, а не непосредственно относительно самих оболочек.Если они установлены на top: 0; left: 0, то правильное поведение - это находиться друг над другом.Используйте position: relative; в классе .wrapper, но также имейте в виду, что расположение изображения связано с отсечением изображения.

Если «один поверх другого» означает вертикальную укладку, тоЯ думаю, что обертки должны float: left сидеть в ряд.Это все еще не имеет ничего общего с отсечением.

...