我想制作一个由 php 生成的画廊,其中每个图像都是灰度的,并且只有当鼠标经过它时才会变成彩色。由于各种原因,我不想使用 CSS 图像背景,所以我使用了绝对定位图像。当光标悬停在表格的 td 元素上时,绝对定位的图像会弹出灰色图像。由于没有定义坐标长度或宽度,因此 rgb 图像应位于灰色图像的正上方。在 Firefox 中,这正是发生的情况,但在 Chrome 中,每行中的第一张和第二张图像都向左移动。最后第三张图片效果很好。
#main #album {
width:100%; /* 600px */
}
#main #album td{
padding-bottom:20px;
text-align:center;
}
#main #album td img:first-child{
position:absolute;
display:none;
}
#main #album td:hover img:first-child{
display:inline;
}
<table id="album">
<tr>
<td><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />A
<td><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />B
<td><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />C
</table>
更新
diggersworld 建议的 CSS 重置解决了这个问题,但我也尝试过使用列表,这也很有效。这是代码:
#main #albumlist {
width:100%;
list-style-type:none;
}
#main #albumlist a {
float:left;
display:block;
width:180px;
height:auto;
padding-left:20px;
padding-bottom:20px;
text-align:center;
}
#main #albumlist li a:first-child{
padding-left:0;
}
#main #albumlist a img:first-child {
position:absolute;
display:none;
}
#main #albumlist a:hover img:first-child {
display:inline;
}
<ul id="albumlist"><li>
<a href="/img/big/dezsma01.jpg"><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />A</a>
<a href="/img/big/dezsma01.jpg"><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />B</a>
<a href="/img/big/dezsma01.jpg"><img src="/img/mini/dezsma01.jpg" /><img src="/img/mini/gray/dezsma01.jpg" /><br />C</a>
</li></ul>