CSS选择器

优先级

1.在属性后面使用!important会覆盖页面内任何位置定义的样式

2.作为style属性写在元素内的样式

3.id选择器

4.类选择器

5.标签选择器

6.通配符选择器 *

第一等:代表内联样式,如: style=””,权值为1000。

第二等:代表ID选择器,如:#content,权值为100。

第三等:*代表类,伪类和属性选择器,如.content,权值为10。

第四等:代表类型选择器和伪元素选择器,如div p,权值为1。

同一级别,后面的会覆盖前面的样式

基础选择器

*:通用元素选择器

#id:匹配特定id元素

.class:匹配class类的元素

element:标签选择器

组合选择器

E,F : 多元素选择器(逗号分隔)

E F :后代选择器 (空格分隔)E的所有后代F

E>F : 直接子元素选择器 E的所有直接子元素

E+F :直接相邻选择器 E之后的相邻的同级元素F

E~F :普通相邻选择器 E之后的所有同级元素F

属性选择器

E[attr] :匹配具有attr属性的所有元素

E[attr = value] :匹配attr属性为value的所有元素

E[attr ~= value] :匹配attr属性有多个空格分隔,其中一个值为value的所有元素

E[attr = value] :匹配attr属性有多个“-”分隔,其中一个值为value的所有元素(测试 不好使。。)

E[attr ^= value] :匹配attr属性以value开头的所有元素 (开头就行,是不是一个词都行)

E[attr $= value] :匹配attr属性以value结尾的所有元素

E[attr *= value] :匹配attr属性包含value的所有元素 (包含value字就行)

伪类选择器

E:first-child 匹配E的父元素的第1个子元素

E:link 选择未被访问的链接

E:visited 已访问的链接

E:hover 鼠标移动到链接上

E:focus 选择获得焦点的输入字段

E:active 选定的链接

E:nth-child(n) 匹配E的父元素的第n个子元素,第一个编号为1

E:nth-last-child(n) 匹配E的父元素的倒数第n个子元素,最后一个编号为1

E:last-child 匹配父元素的最后一个子元素,等同于nth-last-child(1)

E:root 匹配文档的根元素

伪元素选择器

E:first-line 匹配E元素内容的第一行

E:first-letter 匹配E元素内容的第一个字母

E:before 在E元素之前插入生成的内容 (用content:插入)

E:after 在E元素之后插入生成的内容

书写CSS要注意的问题

1.选择器是 从右到左解析的。

2.ID最快,通配符最慢。解析速度由快到慢:ID,class,tag,通配符。

3.不要ul #main{…},因为ID已经唯一,不需要tag在标识,会使速度变慢。

4.后代选择器最糟糕。类似 html body ul

5.ID是最快的,但不能为了效率而牺牲可读性和可维护性。

Table of Contents