Вот пример кликабельного CSS-спрайта, реализованного с помощью Javascript:
Демонстрация в реальном времени здесь.
HTML:
<div></div>
CSS:
div { width: 100px; height: 100px; background-image: url(http://perfectwebtutorials.com/wp-content/uploads/2011/03/spritecss.png); background-position: -300px -100px; } div:hover { background-position: -100px -100px; }
JS:
$(function() { $('div').click(function() { window.location = "http://google.com"; }); });
Возможно ли достичь того же без Javascript ?
(Единственный способ, которым я могу придумать, - это использовать <a href="...">, но как?)
<a href="...">
Вы задали свой вопрос в запутанном виде, но ответ прост:
div
a
display: block
См .: http://jsfiddle.net/65HdK/
<a href="http://google.com/"></a> a{ width: 100px; height: 100px; background-image: url(http://perfectwebtutorials.com/wp-content/uploads/2011/03/spritecss.png); background-position: -300px -100px; display: block } a:hover { background-position: -100px -100px; }
Используя элемент <a>, присвойте ему href и display: inline-block вместе со всеми другими установленными вами свойствами CSS.
<a>
href
display: inline-block
a { display: inline-block; width: 100px; height: 100px; background-image: url(http://perfectwebtutorials.com/wp-content/uploads/2011/03/spritecss.png); background-position: -300px -100px; } a:hover { background-position: -100px -100px; }
Рабочая демонстрация: http://jsfiddle.net/t629m/13/
@ миша, отметьте галочкой http://jsfiddle.net/sandeep/t629m/7/
главное, что вам нужно display:block в <a> теге
display:block
потому что <a> является inline element Пример:
inline element
a { width: 100px; height: 100px; background-image: url(http://perfectwebtutorials.com/wp-content/uploads/2011/03/spritecss.png); background-position: -300px -100px; display:block; }
Просто измените его на <a> и добавьте отображение: блок или аналогичный вашему CSS.
Пример здесь.
http://jsfiddle.net/blowsie/t629m/11/
<a href="http://google.com"><div></div></a>
Кажется, работает нормально.Живая демоверсия: http://jsfiddle.net/vuZz4/