2012-08-24 135 views
2

我有脚本处理图像翻转与CSS。我想知道如果这是做CSS翻转的正确方法?我也想知道这是否好,你如何处理其他翻转图像,你必须为每个图像有一个单独的CSS?CSS图像翻转

下面是一个例子:http://jsfiddle.net/GFec3/40/

CSS代码:

a.rollover { 
    display: block; 
    width: 27px; 
    height: 25px; 
    text-decoration: none; 
    background: url("http://www.gdisinc.com/barker/images/menubar/bnt_facebook.jpg"); 
} 

a.rollover:hover { 
    background-position: -350px 0; 
} 

.displace { 
    position: absolute; 
    left: -5000px; 
} 

HTML

<a href="#" class="rollover" title="Webvamp" width="54" height="25"><span class="displace">TEST</span></a> 

这工作,但只是想知道有没有处理一种特殊的方式更多然后一个翻转图像?

+2

删除了CSS3标签,因为只有在问题特别是关于CSS3时才应使用该标签。 –

回答

4

您不必在css中使用背景图像。例如:

<STYLE type="text/css"> 
.roll .on { display: none; } 
.roll .off { display: block; } 
.roll:hover .on { display: block; } 
.roll:hover .off { display: none; } 
</STYLE> 
<DIV class="roll"> 
    <IMG class="on" src="..."> 
    <IMG class="off" src="..."> 
</DIV> 

有很多方法可以做到这一点。选择哪个取决于你。

+0

我正在寻找一种转身钥匙的方式。我发布的脚本似乎对每次翻滚都有很多工作。我宁愿有一个css脚本,然后能够创建一个图像,让css处理它们的交换。 –

+2

@FrankG。这几乎就是我的例子。在任何需要翻滚的地方使用这些课程。 – Ariel

+0

我现在要给你一个尝试,看看我得到了什么!我会让你知道... –

2

使用CSS sprite,有了这个,你只需要使用一张背景图片,你只需要改变背景的位置不同的图像悬停

CSS Sprites: Image Slicing’s Kiss of Death

+0

是的,我意识到这一点,但不喜欢这个想法,因为我不得不为每次翻滚创建一个单独的css条目。似乎更多。 –

1

您目前是最有效的方法。除此之外,它“预加载”了翻转图像,因为它与非翻转图像相同,只是它的不同部分。它还将HTTP请求的数量减少到最低限度(在data方案中),并且在某些情况下实际上改善了文件大小(最好的情况是使用类似调色板的两个图像,而不是两个需要一个色表)。

不要改变它,它是完美的。

您必须为每次翻转定义一个单独的CSS,但是如果图像尺寸相同,则可以通过重新使用:hover定义来减少损坏。

+0

我看不到它,因为图像只是加倍,并不能真正保存文件大小。然而,你知道XYZ加倍你的CSS文件,因为如果你有5或10,这是5或10入你的CSS你不必做!谢谢(你的)信息!! –