4月份一直忙,一直想抽时间来写博文,现在终于挤出来了,回忆在小钱包项目中遇到各种困难的问题,对a:hover.class与a:hover .class的用法不是很理解,写法的区别在于在hover与.class中间是否多一个空格。以前每次我都宁愿多写个class来避开这种写法,后来为了使用css sprite技术的背景图,花了点时间去研究下,终于了解其中的原理,文章内容简单,高手就当做路过,不清楚的同学请留意下,或许对你有帮助。
看下面的2组结构和样式...
第一组
<a href="#"><span class="ico-manage">管理</span></a>
使用样式一:
a:hover{color:black}
a:hover.ico-manage{color:red;}
此时鼠标经过”管理“2字,颜色为黑色
使用样式二:
a:hover{color:black}
a:hover .ico-manage{color:red;} //注意空格
此时鼠标经过”管理“2字,颜色为红色
第二组
<a href="#" class="ico-manage">管理</a>
使用样式一:
a:hover{color:black}
a:hover.ico-manage{color:red;}
此时鼠标经过”管理“2字,颜色为红色
使用样式二:
a:hover{color:black}
a:hover .ico-manage{color:red;} //注意空格
此时鼠标经过”管理“2字,颜色为黑色
对于第一组的a与.ico-manage, .ico-manage属于span标签的,与a不同级;而对于第二组的a与.ico-manage, .ico-manage属于a标签的,即是与a同级,由此可得出一个结论:
1.当class为当前标签中一个属性时,则样式写为:标签+class名
2.当class为子标签的一个属性时,则样式写为:标签+空格+class名
作者:白树