CSS3 选择器

html-css016

CSS3 选择器,第1张

css3中,追加了三个属性选择器分别为:

结构性伪类选择器由两部分构成,一是伪类选择器,一是伪元素选择器。

伪类选择器 ,要注意命名不要与系统定义好的选择器重名,例如link、hover

伪元素选择器 中包含 first-line、first-letter、before、after。

当root和body起冲突时,body就对内容区域生效,在内容区外则是root生效。

格式:not(selector)

1. first-child 对一个父元素中的 第一个 子元素进行样式的指定

2. last-child 对一个父元素中的 最后一个 子元素进行样式的指定

3. nth-child(positon) 对一个父元素中的 指定序号 的子元素进行样式的指定

4. nth-last-child 对一个父元素中的 指定倒数序号 的子元素进行样式的指定

2)使用nth-of-type(odd)和nth-of-type(even)

1)使用nth-child

2)使用nth-child(an+b),a表示每次循环中,包括几种样式,b表示指定的样式在循环中所处的位置。

only-child选择器,在元素只有一个子元素时,可以代替使用 nth-child(1)/nth-last-child(1) 。

在css3选择器中,除了结构性伪类选择器外,还有一种UI元素状态选择器——只有当元素处于某种状态下才起作用,在默认状态下不起作用。

通过js改变输入框的可输入和不可输入状态,通过css样式改变输入框可输入和不可输入状态时的背景颜色。

用来位于同一个父元素之下的,给与一个子元素平级的另一个子元素设定样式

一、css3之前的选择器

ID选择器,#

类选择器,.

包含选择器(E F)

伪类选择器(:link,visited,hover,active,focus,first-child)

伪元素选择器(::first-line,first-letter,before,after)

通配选择器(.)

属性选择器(foo[name='martin'])

子包含选择器(E>F)

相邻兄弟选择器(E+F)

二、css3新增选择器

新增属性选择器:

E[foo^='bar'] 匹配E元素,该元素包含foo属性,且foo属性值以bar开头

E[foo$='bar'] 匹配E元素,该元素包含foo属性,且foo属性值以bar结尾

E[foo*='bar'] 匹配E元素,该元素包含foo属性,且foo属性值包含bar字符串

新增结构伪类选择器:

E:root 匹配文档所在的根元素

E:nth-child(n) 匹配E所在父元素第n个匹配E的元素,非E的子元素也参与排序,若第n个子元素不是E元素,则该语句没有效果(注意这里的n从1开始)

E:nth-last-child(n) 匹配E所在父元素倒数第n个匹配E的元素

E:nth-of-type(n) 匹配E所在父元素第n个匹配E的元素,非E的子元素不参与排序(n同样是从1开始)注意区别nth-child(n)

E:last-child

E:first-of-type

E:last-of-type

E:only-child

E:only-of-type

E:empty

另外,使用前要考虑浏览器版本,新增css3选择器存在兼容性问题。平时多多练习,多动手。