选择器的优先级:!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 * > 继承 > 浏览器默认属性同一级别。
一、基本选择器
(1)* :通用元素选择器,匹配任何元素。
(2)E:标签选择器,匹配所有E标签的元素。
(3).info , E.info:Class选择器。
(4)#info:ID选择器。
二、组合选择器
(1)E,F:多元素选择器,同时匹配所有E,F元素。
(2)E F:后代元素选择器,匹配所有属于E元素的后代元素的F元素。
(3)E>F:子元素选择器,匹配所有属于E元素的子元素的F元素。
(4)E+F:毗邻元素选择器,匹配所有紧随E元素之后的同级元素F。
(5)E~F:兄弟选择器,即E为兄,F为弟,匹配任何在E元素之后的同级F。
三、属性选择器
(1)E[att]:匹配所有具有att属性的E元素,不考虑它的值(注:E在此处可以省略)。
(2)E[att=val]:匹配所有att属性等于val的E元素,如 div[class="error"]{ color:#fff;}。
(3)E[arr~=val]:匹配所有att属性具有多个空格分隔的值、其中一个值等于val的E元素。
(4)E[att|=val]:匹配所有att属性具有多个连字号分隔的值、其中一个值等于val的E元素,主要用于lang属性,如 p[lang|=en]{ color:#fff;}。(上面是CSS 2.1的,下面是CSS3)
(5)E[att^='val']:属性att的值以val开头的元素,如 div[id^='nav']{color:#000;}。
(6)E[att$='val']:属性att的值以val结尾的元素。
(8)E[att*='val']:属性att的值包含val的元素。
四、伪类选择器(很多,只列出常用的;一般作用在整个元素)
(1)E:first-child:匹配父元素的第1个子元素。
(2)E:nth-child(n):匹配父元素的第n个子元素E。
(3)E:link:匹配所有未被单击的链接。
(4)E:visited:匹配所有已单击的链接。
(5)E:active:匹配鼠标已经在其上按下、还没有释放的E元素。
(6)E:hover:匹配鼠标悬停其上的E元素。
(7)E:focus:匹配获得当前焦点的E元素。
五、伪元素选择器(一般作用在元素的内容上)
(1)E:first-line:匹配E元素的第1行。
(2)E:first-letter:匹配E元素的第1个字母。
(3)E:before:在E元素之前插入生成的内容。
(4)E:after:在E元素之后插入生成的内容。
六、用户界面伪类选择器
(1)E:checked:匹配表单中被选中的radio或checkbox元素。
(2)E:enabled:匹配表单中激活的元素。
(3)E:disabled:匹配表单中禁用的元素。
(4)E::selection:匹配用户当前选中的元素。
七、结构性伪类选择器
(1)E:nth-child(n):匹配父元素的第n个子元素E。
(2)E:empty:匹配一个不包含任何子元素的元素。注意,文本节点也被看做子元素。
(3)E:only-child:匹配父元素下仅有的一个子元素。
(4)E:not(s):匹配不符合当前选择器的任何元素。如:not(p){border:1px solid #ccc;}
(5)E:target:匹配文档中特定'id'单击后的效果。