我们都知道,在CSS中有很多选择器,例如id(#), class(.),属性[attr],这些虽然可以满足一些需要,但有时候还力有未逮。伪类和伪元素就提供了一个有益的补充,可以使我们更高效编码。伪类和伪元素是预定义的、独立于文档元素的,它们不是从DOM中获取的,不是基于元素本身特征的(id,类,属性等)。它们从元素的特殊状态来获取,比如元素的兄弟元素,子元素,文本元素的第一个字符等。

CSS伪类: 和一般的DOM中的元素样式不一样,它并不需要任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见。伪类产生的样式效果我们也可以通过添加一个class来实现。伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,亦或是它所处的环境,而不是元素本身所具有的id、class、属性等静态的标志。当元素的状态变化时,由伪类定义的元素样式也会随之变化,这是和由id(#), class(.),属性[attr]选择器定义的样式是大不相同的。此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

一、UI元素状态伪类

  1.  E:hover用于当用户把鼠标移动到元素上面时的效果;
  2.  E:active用于用户点击元素那一下的效果(正发生在点的那一下,松开鼠标左键此动作也就完成了);
  3.  E:focus用于元素成为焦点,这个经常用在表单元素上。
  4. E:enable  指定当元素处于可用状态时的样式;
  5.  E:disable 指定当元素处于不可用状态时的样式;
  6. E:read-only  指定当元素处于只读状态时的样式;
  7.  E:read-write 指定当元素处于非只读状态时的样式;
  8. E:checked  指定当表单中的radio单选框或checkbox复选框处于选取状态时的样子(FF中要写成:-moz-checked);

  9. E:default  指定当页面打开时默认处于选区状态的radio或checkbox控件的样式;

  10. E:indeterminate  指定当页面打开时,如果一组单选框中任何一个单选框都没有被设定为选取状态时整组单选框的样式,如果用户选取了一个单选框,则该样式被取消;

  11. E::selection  指定当元素处于选中状态时的样式.

二、结构伪类

  1. E:first-child选择某个元素的第一个子元素;
  2. E:last-child选择某个元素的最后一个子元素;
  3. E:nth-child()选择某个元素的一个或多个特定的子元素;
  4.  E:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
  5. E:nth-of-type()选择指定的元素;
  6. E:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;
  7. E:first-of-type选择一个上级元素下的第一个同类子元素;
  8. E:last-of-type选择一个上级元素的最后一个同类子元素;
  9. E:only-child选择的元素是它的父元素的唯一一个了元素;
  10. E:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;
  11. E:empty选择的元素里面没有任何内容。

三、否定选择器

  1. E :not() 可以让你定位不匹配该选择器的元素。

CSS伪元素与伪类类似,它可以用来选择元素的某些部分,这些部分可能不包含在<div>或者<span>中,不方便用其他方法来选择。比如,:first-letter伪元素可以用来选择一个元素中文本的第一个字符,这样就可以创建一些特效。

CSS伪元素有:

  1. E:first-letter 伪元素向文本的第一个字母添加特殊样式;
  2. E:first-line 伪元素向文本的首行添加特殊样式;
  3. E:before 伪元素在元素之前添加内容;
  4. E:after 伪元素在元素之后添加内容。

那么在CSS3中,也对伪元素进行了一定的调整,在以前的基础上增加了一个“:”也就是现在变成了::first-letter,::first-line,::before,::after。另外他还增加了一个::selection::selection用来改变浏览网页选中文的默认效果。

奇妙的CSS之伪类与伪元素的更多相关文章

  1. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  2. CSS伪类和伪元素

    一.伪类 CSS伪类用于向某些选择器添加特殊的效果,在W3规范中,CSS伪类有如下几个: CSS2.1 :active:向被激活的元素添加样式(激活是指点击鼠标那一下) :focus:向拥有键盘输入焦 ...

  3. CSS 属性 - 伪类和伪元素的区别

    伪类和伪元素皆独立于文档结构.它们获取元素的途径也不是基于id.class.属性这些基础的元素特征,而是在处于特殊状态的元素(伪类),或者是元素中特别的内容(伪元素).区别总结如下: ①写法不一样: ...

  4. CSS 伪类和伪对象选(五)

    一.伪选择器 伪选择器包括:伪类选择器和伪对象选择器,以冒号(:)作为前缀,冒号后紧跟伪类或者伪对象名称,冒号前后没有空格,否则解析为包含选择器 如: div:hover{ font-size:12p ...

  5. 详解 CSS 属性 - 伪类和伪元素的区别[转]

    首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...

  6. CSS 属性 - 伪类和伪元素

    CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果.这里特殊指的是两者描述了其他 cs ...

  7. 关于css中伪类及伪元素的总结

    css中的伪类和伪元素总是混淆,今天参考了很多资料,也查看了部分文档,现将伪类及伪元素总结如下: 一.由来: 伪类和伪元素的引入都是因为在文档树里有些信息无法被充分描述,比如CSS没有"段落 ...

  8. CSS的伪类和伪元素

    伪类 W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2). 属性 描述 CSS :active 向被激活的元素添加样式. 1 :focus 向 ...

  9. 详解 CSS 属性 - 伪类和伪元素的区别(再也不用概念盲了!!!)

    首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...

随机推荐

  1. C++调Python示例(转载)

    C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...

  2. supervisor "unix:///var/run/supervisor/supervisor.sock no such file" 解决方法

    如果是没有开启 supervisord 服务的情况下出现这种报错,可以先 systemctl start supervisor 试试, 如果不是,那就 sudo touch /var/run/supe ...

  3. mac 必备工具

    iTerm 可以在一个窗口中垂直.水平分割窗口,而不用切换来切换去 一些基本功能如下: 1.分窗口操作:shift+command+d(横向)command+d(竖向) 2.查找和粘贴:command ...

  4. Java基础-日期格式化DateFormat类简介

    Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...

  5. Excel 中 VLOOKUP() 函数小结

    应用场景: 数据仓库上游源系统的数据库表变更,现在需要拆分一部分数据出来,单独放到一张新表中.假设原表为A,新表为B,B表和A表结构大部分一样,只有字段的前缀不同,那么我们如何找出到底有哪些字段不同呢 ...

  6. jubeeeeeat

    http://cdqz.openjudge.cn/2016/0003/ 总时间限制: 1000ms 内存限制: 256000kB 描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏.这是个音乐游戏 ...

  7. 51nod 1534 棋子游戏

    1534 棋子游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 http://www.51nod.com/onlineJudg ...

  8. 七、新时间日期 API

    一.使用 LocalDate. LocalTime. LocalDateTime LocalDate. LocalTime. LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO- ...

  9. python核心编程笔记——Chapter2

    对于.py文件,任何一个空的式子都不会有什么输出,如下: #!/usr/bin/env python #-*-coding=utf-8-*- #无任何效果,空语句 1 + 2 * 4 对于i++,++ ...

  10. F. Make It Connected(krustra+)

    题目链接:http://codeforces.com/contest/1095/problem/F 题目大意:首先给你n个点,然后给你每个点的权值,再给你m条边,这些边可以选也可以不选,然后问你要使这 ...