繁体   English   中英

如何使用<a>而不是 Javascript 创建可点击的 CSS 精灵?</a>

[英]How to create click-able CSS sprite with <a> rather than Javascript?

以下是使用 Javascript 实现的可点击 CSS 精灵的示例:

现场演示在这里。

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>元素,给它一个hrefdisplay: inline-block ,以及您设置的所有其他 CSS 属性。

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/

您以一种复杂的方式提出了您的问题,但答案很简单:

  • div更改为a
  • display: block应用于a

见: 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;
}

@misha,检查类似http://jsfiddle.net/sandeep/t629m/7/

最主要的是你必须在<a>标签中display:block

因为<a>是一个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 href="http://google.com"><div></div></a>

似乎工作正常。 现场演示: http://jsfiddle.net/vuZz4/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM