CSS - Измените изображение при наведении, вот так! - PullRequest
0 голосов
/ 17 апреля 2011

Плз, посмотрите по этой ссылке: образец сайта

внизу вы видите значки WordPress и Joomla, когда вы наводите курсор мыши, кажется, что серые значки окрашиваются. Это всего лишь одна картинка (серия изображений - спасибо моей любви, Firebug!), И, если я прав, это метод позиционирования фона. Где я могу найти хороший ресурс, чтобы узнать это? Я уже могу сделать это путем кодирования в CSS (но с двумя изображениями, одно для тегов "a" и одно для тегов "a: hover"). Спасибо

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

Это называется спрайтом:

enter image description here

Google тоже использует его, так как уменьшает размер обслуживаемого контента:

enter image description here

Чтобы заставить его работать должным образом, вы обрезаете фоновое изображение таким образом, чтобы отображалась только небольшая часть:

#foo
{
  background-image: url('bar.png');
  background-position: 0px 0px;
}

И на :hover вы сдвигаете его немного:

#foo:hover
{
  background-position: 70px 0px;
}
1 голос
/ 17 апреля 2011

Как упоминает Писквор, эту технику часто называют "CSS-спрайтами":

div {
    background-image:<url-to-image>;
    background-position:0px 0px;
}

div:hover {
    background-image:<url-to-image>;
    background-position:0px 50px;
}

Хитрость заключается в том, чтобы иметь изображение с обоими состояниями. Затем сделайте div достаточно большим только для одного из состояний. На :hover вы изменяете, какая часть изображения видима, изменяя значение background-position.

...