请问用CSS设置背景透明之后还能让鼠标经过时改变背景色吗?(经过时背景无所谓透不透明)
<scriptsrc="js/jquery-1.7.2.min.js"type="text/javascript"></script><scripttype="text/...
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#p1").hover(function() {
$(this).addClass("check");
}, function() {
$(this).removeClass("check");
});
});
</script>
<style>
.check{
background-color:red;
}
#p1{ height:18px;float:left; padding:2px 4px 2px 4px; margin-left:5px;cursor:pointer;
background:rgba(170, 150, 174, 0.5) none repeat scroll 0 0 !important;/*实现FF背景透明,文字不透明*/
filter:Alpha(opacity=80); background:#fff;/*实现IE背景透明*/
}
</style>
<p id="p1">123123</p>
这段代码如果我把.check里面的 background-color 换成color的话,字体颜色就可以更改。但是如果使用background-color, 就没任何效果了。求大神帮帮帮我。 展开
<script type="text/javascript">
$(document).ready(function() {
$("#p1").hover(function() {
$(this).addClass("check");
}, function() {
$(this).removeClass("check");
});
});
</script>
<style>
.check{
background-color:red;
}
#p1{ height:18px;float:left; padding:2px 4px 2px 4px; margin-left:5px;cursor:pointer;
background:rgba(170, 150, 174, 0.5) none repeat scroll 0 0 !important;/*实现FF背景透明,文字不透明*/
filter:Alpha(opacity=80); background:#fff;/*实现IE背景透明*/
}
</style>
<p id="p1">123123</p>
这段代码如果我把.check里面的 background-color 换成color的话,字体颜色就可以更改。但是如果使用background-color, 就没任何效果了。求大神帮帮帮我。 展开
2个回答
展开全部
不是js的问题,是css优先级问题,ID的优先级比class的优先级高,而且你用了important,再而且css是后面的覆盖前面的!
所以你后面的check样式被覆盖了,解决办法可以是这样声明你的check
#p1.check{
background-color:red !important;/*因为之前声明的背景色有这个important标识所以这里要加上,保证优先级高于#p1*/
}
或者,重新声明你的p1 给他加上个class .p1 把给#p1的样式加给.p1
.p1{
height:18px;
float:left;
padding:2px 4px 2px 4px;
margin-left:5px;
cursor:pointer;
background:rgba(170, 150, 174, 0.5) none repeat scroll 0 0 !important;
filter:Alpha(opacity=80); background:#fff;
}
.check{
background-color:red !important;
}
这是你上面描述的,我觉得1L说的也对啊,你直接用#p1:hover{background:red;}不就达到你的效果了吗,写这么多行要起到的作用不就和这一行一样吗...你还有别的想法我就不知道了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询