2012-04-16 34 views
1

我有一个图像超链接。我想在链接访问状态时更改图片。你能告诉我该怎么做吗?最好不使用JavaScript。CSS。 Сhanging图片访问链接

我试图做到以下几点:我在一个共同的图像加入我的两个图像,并在这里是我的代码:

<a href="#" class="mylink"> 
    <img src="common_image.jpg" width="240px" height="240px"/> 
</a> 

而我的风格:

.mylink { 
     width: 120px; 
     height: 240px; 
     display: block; 
     overflow: hidden; 
    } 

    .mylink:visited img { 
     margin-left: -120px; 
    } 
+0

你是说“你想改变图像”?你想改变图像源吗? – 2012-04-16 09:26:31

+0

我会研究使用背景图像和CSS的精灵。这应该至少指向正确的方向。您可以使用一个图像,并将背景位置切换到:visited。 – 2012-04-16 09:28:37

+0

是的,我想看到另一个图像 – Michael 2012-04-16 09:36:28

回答

2

你不能改变src - 通过CSS的图像属性。如果它出于某种原因必须是img-element,那么您将被JavaScript用于更改。

另一种方法是摆脱img -element,而只使用带背景的锚点。 background -property可以通过CSS控制。

这里是如何做到这一点的:hover一个simple example,但在你的情况下:hover可能只是简单的改变为:visited代替。

如果您将在下面一个名为sprite.png默认图像的“访问” - 图像,代码为:

a.mylink { 
    width: 120px; 
    height: 240px; 
    display: block; 
    overflow: hidden; 
    background: url(sprite.png) no-repeat; 
} 

a:visited.mylink { 
    background-position: 0 -240px; 
} 

看到它住在这里:http://jsfiddle.net/5ZzkY/(使用的背景颜色,而不是为简单起见图)

+0

不幸的是您的代码无法正常工作。此解决方案适用于状态悬停但不能访问。如果替换通过悬停在我的变体访问,所以它也可以工作得很好 – Michael 2012-04-16 11:03:53

+0

@Andrei请参阅我更新的CSS和示例。看来写入选择器的正确方法是'a:visited.myLink'。 – 2012-04-16 11:19:03

+0

结果类似... – Michael 2012-04-16 11:25:28

0

您可以删除图像和通过css控制背景

.mylink { 
    background:url('myimagepath-01.jpg') top left no-repeat; 
    width: 120px; 
    height: 240px; 
    display: block; 
    overflow: hidden; 
} 

.mylink:visited { 
    background:url('myimagepath-02.jpg') top left no-repeat; 
} 
+0

然后它不会再是一个图像文件。这就是OP所追求的。 – 2012-04-16 09:43:08

+0

我认为这意味着要为每个链接创建2个图像,并为每个链接分配id,但如果在页面上使用这种效果的多个链接,那么CSS最终会变得非常实用。 – 2012-04-16 09:44:03

+1

此方法不适用于状态“visited” – Michael 2012-04-16 11:09:16

0

你可以试试这个:

HTML:

<a href="http://google.com" class="image">Link</a>​ 

CSS:

.image { 
    background: transparent url('http://javascript.info/files/tutorial/browser/events/rollover-sprite/button.png') no-repeat top left; 
    width: 186px; 
    height: 52px; 
    display: block; 
    text-indent: -9999px; 
} 
.image:hover { 
    background-position: 0 -52px; 
} 
.image:visited { 
    background-position: 0 -104px; 
} 

如果你想使用精灵,那么你应该设置图片为CSS背景,并使用background-position财产移动其位置。您可以在this fiddle中看到一个示例。