请问用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, 就没任何效果了。求大神帮帮帮我。
展开
 我来答
白脸老道
2013-10-12 · TA获得超过190个赞
知道答主
回答量:47
采纳率:66%
帮助的人:21.7万
展开全部

不是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;}不就达到你的效果了吗,写这么多行要起到的作用不就和这一行一样吗...你还有别的想法我就不知道了。

追问

太谢谢了,照你说的改完OK。

繁花终有落
2013-10-12 · 超过13用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:28.5万
展开全部
可以 直接
.test:hover{backgound:#ccc;}
就可以在鼠标经过的时候test样式的块背景色发生改变
无视我吧 我只是赚积分的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式