CSS Sprite - 有可能是短路吗?

时间:2013-09-27 09:42:38

标签: html css

E.g。我有一个3个不同的图像作为带有悬停的精灵。

e.g. for sprite

<div class="sprite normal"></div>

我不想要这种类型!

/* small */
    .small{ width:20px; height:20px; }
    .small .sprite{ background:url(sprite.png) 0 0 no-repeat; }
    .small .sprite:hover { background:url(sprite.png) 20px 0 no-repeat; }
/* normal*/
    .normal{ width:50px; height:50px; }
    .normal .sprite{ background:url(sprite.png) 0 0 no-repeat; }
    .normal .sprite:hover { background:url(sprite.png) 50px 0 no-repeat; }
/* big */
    .big{ width:100px; height:100px; }
    .big .sprite{ background:url(sprite.png) 0 0 no-repeat; }
    .big .sprite:hover { background:url(sprite.png) 100px 0 no-repeat; }

有一个简短的方法吗?谢谢..

2 个答案:

答案 0 :(得分:1)

.sprite{ background:url(sprite.png) 0 0 no-repeat; }

/* small */
    .small{ width:20px; height:20px; }
    .small .sprite:hover { background:url(sprite.png) 20px 0 no-repeat; }

/* normal*/
    .normal{ width:50px; height:50px; }
    .normal .sprite:hover { background:url(sprite.png) 50px 0 no-repeat; }

/* big */
    .big{ width:100px; height:100px; }
    .big .sprite:hover { background:url(sprite.png) 100px 0 no-repeat; }

答案 1 :(得分:0)

.sprite { background: url('sprite.png') 0 0 no-repeat; }

.small { width: 20px; height: 20px; }
.small:hover { background-position: 20px 0; }

.normal { width: 50px; height: 50px; }
.normal:hover { backgorund-position: 50px 0; }

.big { width: 100px; height: 100px; }
.big:hover { background-position: 100px 0 }

这些绝对是所有必需的风格,你不会用更少的规则来实现你的目标。