简单概括一下CSS的选择器
基本选择器
* | 通配符选择器 | 选择所有元素 |
---|---|---|
E | 元素选择器 | 文档元素 |
.class | 类选择器 | 选择一个类下的所有元素 |
#id | ID选择器 | 选择一个id下的所有元素 |
E F | 后代选择器 | 可以选择某个元素的后代元素 |
E > F | 子元素选择器 | 选择直接的子元素(不包含后代元素) |
E + F | 相邻兄弟元素选择器 | 选择紧接一个元素后的元素(在 e,f具有相同的父元素,且相邻) |
E ~ F | 通用兄弟元素选择器 | 选择相邻元素后的所有元素 |
属性选择器
E[attr] | 筛选具有attr属性的元素 |
---|---|
E[attr="value"] | 筛选具有attr属性,且该属性的值为value的元素 |
E[attr~="value"] | 属性值为用空格分隔的字词列表,其中一个等于value的元素(包含只有一个值且该值等于val的情况) |
E[attr^="value"] | 筛选attr属性值以value开头的元素 |
E[attr$="value"] | 筛选attr属性值以value结尾的元素 |
E[attr*="value"] | 筛选attr属性值中包含value的元素 |
E[attr|="value"] | 筛选attr属性值以val开头并且其后紧跟着 “-” 的元素 |
伪类选择器
动态伪类
常用的四个锚点伪类
:link | 选取未被访问的链接 |
---|---|
:hover | 用于当用户把鼠标移动到元素上面时的效果 |
:active | 用于用户点击元素那一下的效果 |
:focus | 用于元素成为焦点(表单元素上常用) |
UI元素状态伪类
-
:enabled与:disabled
表单元素中的可用与不可用的两种状态
-
:checked
状态选择器
PS:IE6至IE8均不支持以上三种选择器
nth选择器
CSS3结构类,CSS的新特性,一种支持变量计算的选择器,可以实现复杂的选择需求
:first-child | 选择某个元素的第一个子元素 |
---|---|
:last-child | 选择某个元素的最后一个子元素 |
:nth-child() | 选择某个元素的一个或多个特定的子元素 |
:nth-last-child() | 选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算 |
:nth-of-type() | 选择指定的元素 |
:nth-last-of-type() | 选择指定的元素,从元素的最后一个开始计算 |
:first-of-type | 选择一个上级元素下的第一个同类子元素 |
:last-of-type | 选择一个上级元素的最后一个同类子元素 |
:only-child | 选择的元素是它的父元素的唯一一个了元素 |
:only-of-type | 选择一个元素是它的上级元素的唯一一个相同类型的子元素 |
:empty | 选择的元素里面没有任何内容 |
否定选择器
:not, 选择器匹配非指定元素/选择器的每个元素。
PS:IE6-8不支持
伪元素
::first-line | 选择元素的第一行 |
---|---|
::first-letter | 选择文本块的第一个字母 |
::before | 在元素前插入内容 |
::after | 在元素后插入内容 |
::selection | 用来改变浏览网页选中文的默认效果 |
PS:CSS3中用两个":"代表伪元素,若同时想兼容老的浏览器,最好还是使用一个":",但像CSS3的新伪元素(如::selection)还是要用来两冒号