而与类选择器不同,id选择器在HTML文档仅仅使用一次,控制单个元素的样式。
.class1.class2 id和class选择器和选择器连写的时候中间没有分隔符,. 和 # 本身充当分隔符的元素
element#id id和class选择器和选择器连写的时候中间没有分隔符,. 和 # 本身充当分隔符的元素
*属性选择器
*伪类选择器
*伪元素选择器
优先级:从高到低
在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。
alink 表示未被访问状态
a:hover 表示鼠标悬停状态
a:active 表示活动状态
avisited 表示已被访问状态
他们的顺序应该是"LVHA"的顺序.
E:first-child 匹配元素E的第一个子元素
E:link 匹配所有未被点击的链接
E:visited 匹配所有已被点击的链接
E:active匹配鼠标已经其上按下、还没有释放的E元素
E:hover 匹配鼠标悬停其上的E元素
E:focus 匹配获得当前焦点的E元素
E:lang(c) 匹配lang属性等于c的E元素
E:enabled 匹配表单中可用的元素
E:disabled 匹配表单中禁用的元素
E:checked 匹配表单中被选中的radio或checkbox元素
E::selection匹配用户当前选中的元素
E:root 匹配文档的根元素,对于HTML文档,就是HTML元素
E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1
E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,第一个编号为1
E:nth-of-type(n)与:nth-child()作用类似,但是仅匹配使用同种标签的元素
E:nth-last-of-type(n) 与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素
E:last-child匹配父元素的最后一个子元素,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
E:only-child匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
E:empty 匹配一个不包含任何子元素的元素,文本节点也被看作子元素
E:not(selector) 匹配不符合当前选择器的任何元素
参考
CSS中通过四个伪类来定义链接的样式,分别是:a:link 链接默认的样式
a:visited链接已被访问过时的样式
a:hover 鼠标悬浮在链接上的样式
a:active 点击链接时候的样式
一般定义这四种样式的是“LVHA”的顺序来写样式,不然可能出现样式覆盖问题;
定义class样式一般分两种,一种在a标签上,一种在a标签外面,实例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<style type="text/css">LVHA
.aaa a:link{color:redtext-decoration:nonefont-size:14px}
.aaa a:visited{color:yellowtext-decoration:nonefont-size:14px}
.aaa a:hover{color:bluetext-decoration:nonefont-size:14px}
.aaa a:active{color:greentext-decoration:nonefont-size:14px}
</style>
<div class="aaa"><a href="#">在a标签外的标签加class</a></div><br />
<style type="text/css">LVHA
a.bbb:link{color:redtext-decoration:nonefont-size:14px}
a.bbb:visited{color:yellowtext-decoration:nonefont-size:14px}
a.bbb:hover{color:bluetext-decoration:nonefont-size:14px}
a.bbb:active{color:greentext-decoration:nonefont-size:14px}
</style>
<a href="#" class="bbb">在a标签加</a>
!important firefox IE7 支持; \0 IE8支持 * IE6 IE7支持 _ IE6支持 所以写兼容“IE7”时 后面 要有 “_” 让“IE6”读出。来覆盖“IE6” 读出的“*”的值; 举个例子: #hack{ color:#0000FF\9IE6 IE7 IE8支持color:#0000FF\0IE8支持*color:#FFFF00IE6 IE7支持_color:#FF0000IE6支持“这样写必须有顺序” } color:#f00!importantIE7 FireFox 支持; *color:#f00!important仅仅只有IE7 支持; _color:#f00\9仅仅只有IE6 支持; color:#f00\0仅仅只有IE8 支持; 你按照这样写hack就没问题了,至于你说的代码规范,一般注意css的命名,类和id的使用,还有组合标签,尽量减少冗余代码