如何仅使用CSS在悬停状态下切换无闪烁图像?

如何仅使用CSS在悬停状态下切换无闪烁图像?,css,Css,代码如下: <div id="compv-navbar"> <a href="#"><img src="image1.png" id="icon1"></a> | <a href="#"><img src="image2.png" id="icon2"></a> | <a href="#"><img src="image3.png" id="i

代码如下:

<div id="compv-navbar">
        <a href="#"><img src="image1.png" id="icon1"></a> | 
        <a href="#"><img src="image2.png" id="icon2"></a> | 
        <a href="#"><img src="image3.png" id="icon3"></a> | 
        <span id="view_name"> Random Text</span>
 </div>

| 
| 
| 
随机文本

假设每个图像都有另一个后缀为“-hover”的图像,该图像将在hover上被替换。

CSS不打算这样做,它控制显示,而不是 文件的位置。如果你真的需要这个,这里有一个小的工作,他们应该工作(我还没有实际测试这一点)

HTML


(请确保为每个图像添加此选项。)

CSS并不是要这样做的,它控制显示,而不是 文件的位置。如果你真的需要这个,这里有一个小的工作,他们应该工作(我还没有实际测试这一点)

HTML


(确保为每个图像添加此选项。)

以下是我要做的:

<div id="compv-navbar">
        <a href="#" id="icon1"></a> | 
        <a href="#" id="icon2"></a> | 
        <a href="#" id="icon3"></a> | 
        <span id="view_name"> Random Text</span>
</div>

a#icon1{
background:url("image1.png") no-repeat;
}
a:hover#icon1{
background:url("image1-hover.png") no-repeat;
}
a#icon2{
background:url("image2.png") no-repeat;
}
a:hover#icon2{
background:url("image2-hover.png") no-repeat;
}
a#icon3{
background:url("image3.png") no-repeat;
}
a:hover#icon3{
background:url("image3-hover.png") no-repeat;
}

| 
| 
| 
随机文本
a#icon1{
背景:url(“image1.png”)不重复;
}
答:悬停图标1{
背景:url(“image1 hover.png”)不重复;
}
a#icon2{
背景:url(“image2.png”)不重复;
}
a:悬停#图标2{
背景:url(“image2 hover.png”)不重复;
}
a#图标3{
背景:url(“image3.png”)不重复;
}
a:悬停图标3{
背景:url(“image3 hover.png”)不重复;
}

以下是我要做的:

<div id="compv-navbar">
        <a href="#" id="icon1"></a> | 
        <a href="#" id="icon2"></a> | 
        <a href="#" id="icon3"></a> | 
        <span id="view_name"> Random Text</span>
</div>

a#icon1{
background:url("image1.png") no-repeat;
}
a:hover#icon1{
background:url("image1-hover.png") no-repeat;
}
a#icon2{
background:url("image2.png") no-repeat;
}
a:hover#icon2{
background:url("image2-hover.png") no-repeat;
}
a#icon3{
background:url("image3.png") no-repeat;
}
a:hover#icon3{
background:url("image3-hover.png") no-repeat;
}

| 
| 
| 
随机文本
a#icon1{
背景:url(“image1.png”)不重复;
}
答:悬停图标1{
背景:url(“image1 hover.png”)不重复;
}
a#icon2{
背景:url(“image2.png”)不重复;
}
a:悬停#图标2{
背景:url(“image2 hover.png”)不重复;
}
a#图标3{
背景:url(“image3.png”)不重复;
}
a:悬停图标3{
背景:url(“image3 hover.png”)不重复;
}

好吧,完全不闪烁的图像切换只能通过图像预加载来实现。在任何其他情况下,浏览器将仅在悬停时加载图像。我写了关于图像切换的文章


另一个解决方案是使用
背景位置

在悬停状态下使用并切换图像。好的,完全无闪烁的图像切换只能通过图像预加载来完成。在任何其他情况下,浏览器将仅在悬停时加载图像。我写了关于图像切换的文章


另一个解决方案是使用
背景位置

在悬停状态下使用并切换图像这看起来应该可以工作…但根据我的情况…它不工作。它扰乱了路线。我将不得不使用jQuery来完成它。不过,这看起来应该行得通……但根据我的情况……它行不通。它扰乱了路线。我将不得不使用jQuery来完成它。Thnx不过。
<div id="compv-navbar">
        <a href="#" id="icon1"></a> | 
        <a href="#" id="icon2"></a> | 
        <a href="#" id="icon3"></a> | 
        <span id="view_name"> Random Text</span>
</div>

a#icon1{
background:url("image1.png") no-repeat;
}
a:hover#icon1{
background:url("image1-hover.png") no-repeat;
}
a#icon2{
background:url("image2.png") no-repeat;
}
a:hover#icon2{
background:url("image2-hover.png") no-repeat;
}
a#icon3{
background:url("image3.png") no-repeat;
}
a:hover#icon3{
background:url("image3-hover.png") no-repeat;
}