2009-08-15 25 views

回答

5

在CSS术语中,一个类是一个以句号开始的选择器,例如,

.foo { ... } 

这将在形式使用

<div class="foo"> 

此使用的“类”,更在这个意义上“具有一组或一类事物的共同特征,并通过一种从他人分化或质量“,而不是借用OO术语。

由于用户代理定义何时和/或有多少内容符合要求(如:hover,:active等),伪类“不太真实”。

4

这是因为你没有做它;浏览器'创建'它,并允许您设置它以改变链接的外观,当它处于该状态时。

+0

但为什么它是一个类?如果您一次只能悬停或屏幕上的一个区域,则只有一个p可以随时采用CSS规则。没有阶级意味着属于某个共同组的几个元素,而阶级风格规则意味着所有这些元素都会继承该规则? – Anthony 2009-08-15 08:50:20

+0

@Anthony:伪类可以假定为一个状态。并且每个具有state * hover *的元素都可以通过':hover'进行分类。因此,无论何时'a'元素获得状态*悬停*,都可以通过':hover'选择。 – Gumbo 2009-08-15 08:59:16

1

w3c CSS2 selector spec

CSS引入了伪元素和伪类的概念,基于该位于文档树以外的信息以允许格式。

  • 伪元素创建有关文档树的抽象超出文档语言指定的抽象。例如,文档语言不提供访问元素内容的第一个字母或第一行的机制。 CSS伪元素允许样式表设计者引用这个不可访问的信息。伪元素还可以为样式表设计者提供一种将样式分配给源文档中不存在的内容的方法(例如:before和after之后,伪元素允许访问生成的内容)。

  • 伪类分类上比它们的名称等特性的元素,属性或内容;原则上不能从文档树中推导出来的特征。伪类可以是动态的,即在用户与文档交互时元素可以获取或丢失伪类。例外是可以从文档树中推导出的':first-child'和':lang()',在某些情况下可以从文档树推导出来。

因此,基本上,一个伪类的东西,你可以附加一个风格,但是你从来没有在HTML打印出来自己。另外,取决于用户与UI的交互,伪分类可以被获取并丢失。

1

随着CSS2/3允许更复杂的元件的规则(之类的东西的输入[类型=复选框]等中,术语伪类似乎越来越过时了。

然而,伪类是只有CSS标识符(或多或少)可以随着用户交互而可靠地改变。对于属性选择器以及什么不是,大多数浏览器倾向于在页面加载时使用所有元素的状态,并且忽略所做的任何改变。但是对于伪类,当伪类变为真(或不真实)时,它们实际上会改变样式。

因此,考虑到这个特定的定义,它们是类,因为规则适用于共享相同“状态”的任何元素,因此可以被认为是“类”,但它是伪的,因为它不是真的属性定义的类,并且因为在任何给定的时间页面被查看,“类”可能是也可能不是真的。

我认为,在某些基于UI的伪类(我特别想到:hover)时,在任何给定时间只有一个元素可以真正拥有这个“类”,所以它几乎更多一个伪ID,基于我的上述定义。

相关问题