更改背景颜色和悬停图像
我有一个广场,里面有一个标志。悬停在广场上时,我想要改变背景颜色以及徽标的颜色。更改背景颜色和悬停图像
我有以下代码:
<div class="pure-u-1 pure-u-md-1-3">
<div class="project", id="project1">
<a href="#" ><img class="pure-img" src="/media/logo.png" onmouseover="this.src='/media/logo2.png'" onmouseout="this.src='/media/logo.png'" width="80px" height="78px" alt="logo"></a>
</div>
</div>
.project {
background-color: #f5f4f4;
margin: 0 0.5em 2em;
padding: 4em 4em;
}
#project1:hover {
background-color: red;
}
我可以得到的标志改变悬停,我可以得到广场上的变化,但我不能在同一时间让他们到这两个变化,即当鼠标触及广场时。
我假设这需要javascript,我不知道。任何提示/帮助非常感谢。
不需要JavaScript,只需CSS。不需要<img>
。
<div class="logo">Brand Name</div>
.logo {
width: 80px;
height: 78px;
text-indent: -9999em;
background-image: url('http://s17.postimg.org/7hltqe5e3/sprite.png');
background-repeat: no-repeat;
background-position: 0 0;
background-color: blue;
}
.logo:hover {
background-color: red;
background-position: -80px 0;
}
创建一个具有标志并排侧的两个版本一个精灵。当您悬停时,您将更改背景颜色并移动精灵图像的位置(左,右,上,下 - 取决于您创建精灵的方式)。
这个答案的好处超过sailens是,你不使用无效的标记(<img>
没有src
属性)和你只是做了一个形象,而不是两个单个请求。哦,少一些标记 - 一个<div>
(这可能是一个<a>
,<span>
等)。
也可以使用background而不是单独的背景属性缩短.logo
。为了清楚起见,我首先列出了它们。
.logo {
width: 80px;
height: 78px;
text-indent: -9999em;
background: blue url('http://s17.postimg.org/7hltqe5e3/sprite.png') no-repeat 0 0;
}
这确实是一个更完整的答案,它远远超出了每个问题 – sailens
清洁HTML(因为IMG标记需要一个源,你可以换一个div):
<div class="pure-u-1 pure-u-md-1-3">
<div class="project", id="project1">
<div class="pure-img">
</div>
</div>
而CSS:
.project {
background-color: #f5f4f4;
margin: 0 0.5em 2em;
padding: 4em 4em;
}
#project1:hover {
background-color: red;
}
.pure-img{
background-image: url(http://dummyimage.com/600x400/000/fff);
width: 80px;
height: 78px;
}
#project1:hover .pure-img {
background-image: url(http://dummyimage.com/600x400/666/0011fc);
}
谢谢。尽管你的代码比较干净,但我的代码也得到了同样的结果。我想要的是当鼠标箭头接触到你的小提琴中的红色区域的同时,标志改变颜色。那有意义吗?现在,您需要将鼠标悬停在徽标上才能更改颜色。 – ECsAUtaVku
http://jsfiddle.net/6boeLdg7/1/ @mini – AtheistP3ace
回复编辑后,您明确提出您的问题 – sailens
你只能在CSS做到这一点,仅仅使用背景图像:网址();和伪元素:hover – nicolallias
你可以做一个jsfiddle吗? –