使用CSS在悬停时更改img标签的图像

时间:2012-09-28 11:22:48

标签: css image html-table

我有一个图像菜单。我想在激活链接时将image更改为TD表。

<table width="100%">
    <tr>
        <td align="left">
            <a href="http://pinkmodels.16mb.com/">
                <img src="http://i.imgur.com/jO3ni.jpg">
            </a>
        </td>
        <td align="center">
            <a href="http://pinkmodels.16mb.com/models/">
                <img src="http://i.imgur.com/utKcC.jpg">
            </a>
        </td>
        <td align="center">
            <a href="http://pinkmodels.16mb.com/blog/">
                <img src="http://i.imgur.com/h4JGE.jpg">
            </a>
        </td>
        <td align="center">
            <a href="http://pinkmodels.16mb.com/about/">
                <img src="http://i.imgur.com/M2GE8.jpg">
            </a>
        </td>
        <td align="right">
            <a href="http://pinkmodels.16mb.com/contact/">
                <img src="http://i.imgur.com/bWoe3.jpg">
            </a>
        </td>
    </tr>
</table>

3 个答案:

答案 0 :(得分:7)

而不是使用<img>标记,而是在CSS文件中使用background-image属性。

例如,

table td a{
    display: block;
    background-image:url('FirstImageURL');
    /* other background properties like "background-size", if needed */
}

table td a:active{
    background-image:url('SecondImageURL');
}

您可以使用content css属性更改图像:(在chrome中工作

.className { /* or "img" */
    content:url('ImagePathURL');
}

Working Fiddle

上面你可以通过为每个img标签分配唯一的类(或Id)来实现。或者将:first-child:last-child选择器与+ sibling )选择器结合使用。像这样:

table > img:first-child{ /* css properties */ }                     /* first  child */
table > img:first-child + img{ /* css properties */ }               /* second child */
table > img:first-child + img + img { /* css properties */ }        /* third  child */
table > img:first-child + img + img + img { /* css properties */ }  /* fourth child */
table > img:last-child { /* css properties */ }                     /* fifth  child */

有关详细信息,请查看此link

我希望你知道CSS,因为你没有在你的代码中使用过任何地方:)

答案 1 :(得分:2)

a:visited img ,a:active img
{
content:url('change img link as you want);
}

答案 2 :(得分:0)

两种选择:

JavaScript解决方案:

var links = document.getElementsByTagName("a");
var n = links.length;
for(var i = 0; i < n; i ++) {
    var cur = links[i];
    if(cur.getAttribute("href") == window.location) {
        cur.parentNode.childNodes[1].src = "http://i.imgur.com/newimagesrc.png";
    }
}

仅限CSS的解决方案:

使用带有img的{​​{1}}代替使用div代码,HTML看起来像:

background-image

CSS:

<table width="100%">
    <tr>
        <td align="left"><a href="http://pinkmodels.16mb.com/">
            <div class = "image first"></div>
        </a></td>