Heim  >  Artikel  >  Web-Frontend  >  CSS 类、伪类和伪元素区别详解_html/css_WEB-ITnose

CSS 类、伪类和伪元素区别详解_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:30:181095Durchsuche

CSS中的类(class)是为了方便过滤(即选择)元素,以给这类元素添加样式,class是定义在HTML文档树中的。

但是这在一些情况下是不够用的,比如用户的交互动作(悬停、激活等)会导致元素状态发生变化,class对这些动态变化无能为力。


为此,CSS引入了伪类(pseudo-class)的概念用来支持根据文档树以外的信息来过滤元素的能力。

伪类是一个抽象类,本质上还是一个类,因此其主要作用仍然是用来选择元素而后设定具体的样式。

伪类的定义使用:单冒号加上名称,如 mydiv:hover。

伪类的选择对象可能会随着用户操作文档而发生变化,比如当用户删除某些节点后,会影响子元素(nth-child)伪类的选择。

伪类选择元素的依据不是名称、属性或内容,而是根据特征(比如状态或顺序)。(:lang除外)


伪元素(pseudo-element)是另外一个概念,其设计意图和伪类一样,是为了能支持根据文档树以外的信息来进行格式化。

伪元素本质上是一个元素,只是它一般需要依附在一个已有元素上,作为这个元素的“部分”或“补充”。比如::first-line或::after。

CSS2.1规范中引入的新的伪元素语法是双冒号::,但为了和历史版本兼容,一些之前引入的伪元素仍然可以使用单冒号语法。

和伪类用来过滤元素不同,伪元素用来过滤内容或创建补充内容,在这些内容外包装一个虚拟的容器,然后应用特定的样式。

我们可以在伪元素上应用伪类。


这里有一个在线实例,可以很直观的理解两者的使用方式:http://wow.techbrood.com/fiddle/15719


要了解更多伪类、伪元素的用途、实例和区别。

请参考阅读在线教程:http://techbrood.com/Guide/h5b2a?p=css-pseudo-elements


by iefreer

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn