CSS之选择器

228 阅读5分钟

元素选择符

分类 语法
通配选择符 * { sRules }
类型选择符 E { sRules }
ID选择符 E#myid { sRules }
类选择符 E.myclass { sRules }

关系选择符

分类 语法 说明
包含选择符 E F { sRules } E包含F(子孙)
子选择符 E>F { sRules }
相邻选择符 E+F { sRules } 选择紧贴在E元素之后F元素,元素E与F必须同属一个父级
兄弟选择符 E~F { sRules } 选择E元素后面的所有兄弟元素F,元素E与F必须同属一个父级。

属性选择符

分类 语法 说明
E[att] E[att] { sRules } 选择具有att属性的E元素
E[att='val'] E[att="val"] { sRules } 选择具有att属性且属性值等于val的E元素
E[att~='val'] E[att~="val"] { sRules } 选择具有att属性且属性值为一用空格分隔的字词列表,其中一个等于val的E元素(包含只有一个值且该值等于val的情况)
E[att^="val"] E[att^="val"] { sRules } 选择具有att属性且属性值为以val开头的字符串的E元素
E[att$="val"] E[att$="val"] { sRules } 选择具有att属性且属性值为以val结尾的字符串的E元素
E[att="val"]* E[att*="val"] { sRules } 选择具有att属性且属性值为包含val的字符串的E元素
E[att|="val"] E[att|="val"] { sRules } | 选择具有att属性,其值是以val开头并用连接符"-"分隔的字符串的E元素;如果值仅为val,也将被选择

伪类选择符

分类 语法 说明
E:link E:link { sRules } 设置超链接a未被访问前的样式
E:visted E:visted { sRules } 设置超链接a在其超链接地址已被访问过时的样式
E:hover E:hover { sRules } 设置元素在其鼠标悬停时的样式
E:active E:active { sRules } 设置元素在被用户激活时的样式
E:focus E:focus { sRules } 设置对象在成为输入焦点时的样式
E:lang(fr) E:lang(fr) { sRules } 匹配使用特殊语言的E元素
E:not(s) E:not(s) { sRules } 匹配不含有s选择符的元素E
E:root E:root { sRules } 匹配E元素在文档的根元素。在HTML中,根元素永远是HTML
E:first-child E:first-child { sRules } 匹配父元素的第一个子元素E
E:last-child E:last-child { sRules } 匹配父元素的最后一个子元素E
E:only-child E:only-child { sRules } 匹配父元素仅有的一个子元素E
**E:nth-child(n) ** E:nth-child(n) { sRules } 匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效
E:nth-last-child(n) E:nth-last-child(n) { sRules } 匹配父元素的倒数第n个子元素E,假设该子元素不是E,则选择符无效
E:first-of-type E:first-of-type { sRules } 匹配同类型中的第一个同级兄弟元素E
E:last-of-type E:last-of-type { sRules } 匹配同类型中的最后一个同级兄弟元素E
E:only-of-type E:only-of-type { sRules } 匹配同类型中的唯一的一个同级兄弟元素E
E:nth-of-type(n) E:nth-of-type(n) { sRules } 匹配同类型中的第n个同级兄弟元素E
E:nth-last-of-type(n) E:hover { sRules } 匹配同类型中的倒数第n个同级兄弟元素E
E:empty E:empty { sRules } 匹配没有任何子元素(包括text节点)的元素E
E:checked E:checked { sRules } 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
E:enabled E:enabled { sRules } 匹配用户界面上处于可用状态的元素E
E:disabled E:disabled { sRules } 匹配用户界面上处于禁用状态的元素E
E:target E:target { sRules } 匹配相关URL指向的E元素
@page:first @page:first { sRules } 设置在打印时页面容器第一页使用的样式。仅用于@page规则
@page :left @page :left { sRules } 设置页面容器位于装订线左边的所有页面使用的样式。仅用于@page规则
@page:right @page:right { sRules } 设置页面容器位于装订线右边的所有页面使用的样式。仅用于@page规则。

*伪对象选择符*

分类 语法 说明
E:first-letter/E::first-letter E:first-letter/E::first-letter { sRules } 设置对象内的第一个字符的样式,此伪对象仅作用于块对象,该伪类常被用来配合font-size属性和float属性制作首字下沉效果
E:first-line/E::first-line E:first-line/E::first-line { sRules } 设置对象内的第一行的样式式,此伪对象仅作用于块对
E:before/E::before E:before/E::before { sRules } 设置在对象前(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用,并且必须定义content属性
E:after/E::after E:after/E::after { sRules } 设置在对象后(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用,并且必须定义content属性
E::placeholder E::placeholder{ sRules } 设置对象文字占位符的样式,需要注意的是,除了Firefox是 ::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder,Firefox支持该伪元素使用text-overflow属性来处理溢出问题
E::selection E::selection { sRules } 设置对象被选择时的样式。需要注意的是,::selection只能定义被选择时的background-color,color及text-shadow(IE11尚不支持定义该属性)