css中的类和伪类
作者:YanKaven 来源:蓝色理想 发布时间:2008-06-12 13:12:00
在CSS中,模式(pattern)匹配规则决定那种样式规则应用于文档树(document tree)的哪个元素。这些模式叫着选择符(selector)。 一条CSS规则(rule)是选择器{属性:值;属性:值;}(selector {property:value;property1:value2;}),即选择符决定了{}中的声明(declaration)匹配哪个元素。
在CSS2.1中的选择符语法见下图,由语法形成了各种选择符。
类:在HTML中当表现class属性的时候,人们可以用点(.)号来作为~=号的一个替代选择,所以div.value等同于div[class~=value]。此时.value只能严格的应用于HTML中的class属性,所以此类选择符叫类选择符。
在CSS2.1中样式通常依附与一个元素在文档树中的位置,这个简单的模型对于许多情况来说是足够的,但是一些常见的版式状态不能应用于文档树的结构。例如,在HTML中,没有元素能够引用一个段落的第一行,所以也没有简单的CSS选择符应用它。
所以,CSS引进了伪类(pseudo-class)和伪元素(pseudo-element)来允许基于文档树意外信息的格式化。
伪类:伪类对元素进行分类是基于特征(characteristics)而不是它们的名字、属性或者内容;原则上特征是不可以从文档树上推断得到的。在感觉上伪类可以是动态的,当用户和文档进行交互的时候一个元素可以获取或者失去一个伪类。例外的是":first-child"能通过文档树推断出来,":lang"在一些情况下也在从文档树中推断出来。
伪类有::first-child ,:link:,vistited,:hover:,active:focus,:lang
伪元素:伪元素是创造关于文档语言能够指定的文档树之外的抽象。例如文档语言不能提供访问元素内容第一字或者第一行的机制。伪元素允许设计师引用它们,否则这是难以办到的。伪元素还提供样式设计师给在源文档中不存在的内容分配样式(例如::before和:after能够访问产生的内容)。
伪元素有::first-line,:first-letter,:before,:after (在苏沈小雨编的CSS2.0中文手册中把:first-line,:first-letter列为伪类应该是理解上的错误)
伪类和伪元素都不出现在源文件和文档树中。
总结上面可以知道:
类选择器可以看着属性选择器在HTML应用中的一种快捷方式,从逻辑和功能上理解有传统类的含义,其被HTML元素预定义的属性class引用,所以叫着类选择器。
伪类可以独立于文档的元素来分配样式,且可以分配给任何元素,逻辑上和功能上类类似,但是其是预定义的、不存在于文档树中且表达方式也不同,所以叫伪类。
伪元素所控制的内容和一个元素控制的内容一样,但是伪元素不存在于文档树中,不是真正的元素,所以叫伪元素。


猜你喜欢
- 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
- 本文实例讲述了Python实现统计文本文件字数的方法。分享给大家供大家参考,具体如下:统计文本文件的字数,从当前目录下的file.txt取文
- 1.读取CSV文件到Listdef readCSV2List(filePath): try: file=open(filePat
- 经常会有小朋友问我,“我想做个黑客,我该学什么编程语言?”,或者有的小朋友会说:“我要学c,我要做病毒”。其实对于这些小朋友而言他们基本都没
- 本文实例讲述了通过 jQuery EasyUI框架创建一个RSS阅读器,分享给大家供大家参考。具体如下:运行效果截图如下:我们将使用以下插件
- PyQt5中QInputDialog的使用,Qt的QInputDialog类提供了一种简单方面的对话框来获得用户的单个输入信息,它提供了4种
- <script language=javascript> </script>
- 一、前言今天学习视频时课后作业是找出1000以内既是素数又是回文数的数,写代码这个很容易,结果一运行遇到了bug,输出结果跟预期不一样,调试
- 本文实例讲述了php字符串过滤strip_tags()函数用法。分享给大家供大家参考,具体如下:strip_tags — 从字符串中去除 H
- 故事的开始:.count()假设你有一个Notification Model类,保存的主要是所有的站内通知:class Notificati
- <?php class Mysql { private $conn; private $host; private $username
- 两列布局的定宽自适应已经详解了,三列浮动中有两列定宽一列自适应的也详解了,那么该说说三列浮动中两列自适应一列定宽的布局了。中间定宽,左右两侧
- python中获取字典的key列表和value列表 # -*- coding: utf-8 -*-# 定义一个字典dic = {'剧
- 实例如下所示:>> A=[1,2,3;4,5,6;7,8,9]A = 1 2 3  
- 在项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。这样做不但便于调试,而且增加健壮性。因
- 本文实例讲述了SQL Server存储过程中编写事务处理的方法。分享给大家供大家参考,具体如下:SQL Server中数据库事务处理是相当有
- 线程Threading用于提供线程相关的操作。线程是应用程序中工作的最小单元,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程
- 2005转到2000的步骤 1. 生成for 2000版本的数据库脚本 2005 的manger s
- 最简单的方法当然可以直接print(net),但是这样网络比较复杂的时候效果不太好,看着比较乱;以前使用caffe的时候有一个网站可以在线生
- 文章首先使用pycharm的 PyQt5 Designer 做一个简单的界面,然后引入所谓的“mvc框架”。一、设计登录界面下面开始第一个话