由 a标签的hover无效 引起的反思

问题发现

在写界面的时候发现这个小问题,HTML结构如下:

<div class="tab_r f-18">
		<ul>
				<li><a href="">首页</a></li>
				<li><a href="">产品特色</a></li>
				<li><a href="">软件下载</a></li>
				<li><a href="">关于我们</a></li>
		</ul>
 </div>

改变a标签原有的蓝色后,想要实现鼠标在标签上悬停时,菜单字体颜色改变。css如下:

//选中a标签,设置颜色,颜色改变
.tab_r ul li a{
	color: #000;
}
//设置悬停时字体颜色
a:hover {color: #fe0100; text-decoration:none;}
//悬停时,无变化

hover失效。

分析原因

我感到很疑惑,为什么还会失效呢?
然后我就去掉按标签前面的三个标签,直接写成:

 a{
	color: #000;
}

hover竟然可以用了
但是我还是不知道原因,就进行百度,得到了一个答案。

是权重的原因, .tab_r ul li a{} 这个的权重是12,而伪类 hover的权重是10 ,所以显示的还是之前定义的颜色。

解决办法

悬停的css代码写成下面形式:

.tab_r ul li a:hover {color: #fe0100; text-decoration:none;}
权重扩展

通配选择符的权值 0,0,0,0
标签的权值为 0,0,0,1
类、属性、伪类的权值为 0,0,1,0
ID的权值为 0,1,0,0
important的权值为最高 1,0,0,0

使用规则:

权值的大小跟选择器的类型和数量有关
样式的优先级跟样式的定义顺序有关
important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值