Html 使用一个背景图像位置切换图像
因此,我有一个带有背景图像的列表项。当用户将鼠标悬停在列表项上时,我希望更改背景项。我用这个:Html 使用一个背景图像位置切换图像,html,css,Html,Css,因此,我有一个带有背景图像的列表项。当用户将鼠标悬停在列表项上时,我希望更改背景项。我用这个: li { width: 400px; height: 80px; background-repeat: no-repeat; background-position: 10px 10px; background-image: url('myimg.png'); } li:hover { background-image: url('myimg-h
li { width: 400px; height: 80px;
background-repeat: no-repeat; background-position: 10px 10px;
background-image: url('myimg.png'); }
li:hover { background-image: url('myimg-hover.png'); }
不幸的是,当您第一次查看页面并将鼠标悬停在某个项目上时,这会导致一些闪烁
我宁愿将这些图像合并成一个图像,当您将鼠标悬停在列表项上时,只需更改背景图像的位置
合并成一幅的图像宽25px,高50px,显示的图像仅为25px x 25px
我试过这个:
li { background: url('mynewimg.png') 0 0; }
li:hover { background: url('mynewimg.png') 0 -25px; }
但这只是显示了整个图像,因为我的列表项太大了,而且位置不对
有人知道我是如何做到这一点的吗?没有JSFIDLE,我无法想象这个例子,但我想你说的是图像精灵。查看更多关于它们的信息 如果没有jsFiddle,我无法想象这个示例,但我认为您谈论的是图像精灵。查看更多关于它们的信息 我能做的是:
<li class="icon"><i></i></li>
.icon {
width:25px;
height:50px;
display:table-cell;
vertical-alignment:middle;
}
.icon>i
{
background:url();
background-position:<value>px,<value>px
}
.icon:hover>i{
background-position: <value>px,<value>px
}
.图标{
宽度:25px;
高度:50px;
显示:表格单元格;
垂直排列:中间;
}
.icon>i
{
背景:url();
背景位置:px,px
}
.图标:悬停>i{
背景位置:px,px
}
希望此解决方案能解决您的问题。我能做什么:
<li class="icon"><i></i></li>
.icon {
width:25px;
height:50px;
display:table-cell;
vertical-alignment:middle;
}
.icon>i
{
background:url();
background-position:<value>px,<value>px
}
.icon:hover>i{
background-position: <value>px,<value>px
}
.图标{
宽度:25px;
高度:50px;
显示:表格单元格;
垂直排列:中间;
}
.icon>i
{
背景:url();
背景位置:px,px
}
.图标:悬停>i{
背景位置:px,px
}
希望此解决方案能解决您的问题。您的CSS应该是:
li {
width: 400px; height: 80px;
background-repeat: no-repeat;
background-size: 50px 50px;
background-position: 10px 10px;
background-image: url('mynewim.png');
background-origin: 0px 0px;
}
li:hover {
background-origin: 50px 0px;
}
您必须明确地设置大小,然后使用origin您的CSS应该是:
li {
width: 400px; height: 80px;
background-repeat: no-repeat;
background-size: 50px 50px;
background-position: 10px 10px;
background-image: url('mynewim.png');
background-origin: 0px 0px;
}
li:hover {
background-origin: 50px 0px;
}
你必须明确地设置大小,然后使用origin一个JSFIDLE怎么样,这样我们就可以看到标记和脚本?一个JSFIDLE怎么样,这样我们就可以看到标记和脚本?他使用sprite idea作为第二个选项,他需要使用JSFIDLE,这样我们就可以给他一个更好的解决方案。他使用sprite idea作为第二个选项,他需要做些事,这样我们才能给他一个更好的解决方案。