我正在尝试创建一个带有图标like this的按钮:
HTML:
<div id='button'>
<div class='icon'></div>
<span>Send Email</span>
</div>
CSS:
#button {
width: 270px;
height: 50px;
font-size: 1.4em;
color: #333;
background-color: #555;
position: relative;
}
#button > .icon {
width: 61px;
height: 39px;
background-image: url('http://i55.tinypic.com/2agsutj.png');
background-repeat: no-repeat;
background-position: 0px 0px;
position: absolute;
left: 40px;
top: 5px;
}
#button > span {
position: absolute;
left: 130px;
top: 10px;
}
#button:hover {
color: #fff;
cursor: pointer;
}
JS:
$(function() {
$('#button').hover(function() {
$('#button > .icon').css('background-position', '0px -39px');
}, function() {
$('#button > .icon').css('background-position', '0px 0px');
});
});
我的问题是:Javascript是否真的需要这么简单的功能,或者只能使用CSS来完成?
答案 0 :(得分:7)
有一个:hover
伪类。
#button:hover > .icon {
background-position: 0px -39px;
}
http://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes
http://www.w3schools.com/css/pr_pseudo_hover.asp
答案 1 :(得分:1)
雅100%
在上面的示例中,您需要使用悬停和移位
背景位置
uisng css。你可以在没有javascript的情况下做到这一点。
这里是 工作解决方案 不需要任何javascript
<强> HTML 强>
<div id='button'>
<span class='icon'>Send Email</span>
</div>
<强> CSS 强>
#button span{
display:block;
padding-left:80px;
font-size: 1.4em;
color: #333;
background-color: #555;
line-height:1.4em;
}
#button span.icon{
background-image: url('http://i55.tinypic.com/2agsutj.png');
background-repeat: no-repeat;
background-position: 0px 0px;
width:120px;
height:39px;
}
#button:hover span{
color:#fff;
}n
#button:hover span.icon{
background-image: url('http://i55.tinypic.com/2agsutj.png');
background-repeat: no-repeat;
background-position: 0px -39px;
}
答案 2 :(得分:1)
我已经使用“a”标记制作了jsfiddle,因此悬停也可以在IE中使用。
<div id="button">
<a href="#text" name="text">Send Email</a>
</div>
CSS
#button {
width: 270px;
height: 45px;
font-size: 1.4em;
background-color: #555;
position: relative;
padding-left: 45px;
padding-top: 15px;
}
#button a {
text-decoration:none;
color:#333;
padding:5px;
padding-left: 65px;
background-image: url('http://i55.tinypic.com/2agsutj.png');
background-repeat: no-repeat;
background-position: 0px 0px;
}
#button a:hover {
background-position:0px -39px;
color: #fff;
}