奇妙的CSS之伪类与伪元素
我们都知道,在CSS中有很多选择器,例如id(#), class(.),属性[attr],这些虽然可以满足一些需要,但有时候还力有未逮。伪类和伪元素就提供了一个有益的补充,可以使我们更高效编码。伪类和伪元素是预定义的、独立于文档元素的,它们不是从DOM中获取的,不是基于元素本身特征的(id,类,属性等)。它们从元素的特殊状态来获取,比如元素的兄弟元素,子元素,文本元素的第一个字符等。
CSS伪类: 和一般的DOM中的元素样式不一样,它并不需要任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见。伪类产生的样式效果我们也可以通过添加一个class来实现。伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,亦或是它所处的环境,而不是元素本身所具有的id、class、属性等静态的标志。当元素的状态变化时,由伪类定义的元素样式也会随之变化,这是和由id(#), class(.),属性[attr]选择器定义的样式是大不相同的。此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。
一、UI元素状态伪类
- E:hover用于当用户把鼠标移动到元素上面时的效果;
- E:active用于用户点击元素那一下的效果(正发生在点的那一下,松开鼠标左键此动作也就完成了);
- E:focus用于元素成为焦点,这个经常用在表单元素上。
- E:enable 指定当元素处于可用状态时的样式;
- E:disable 指定当元素处于不可用状态时的样式;
- E:read-only 指定当元素处于只读状态时的样式;
- E:read-write 指定当元素处于非只读状态时的样式;
E:checked 指定当表单中的radio单选框或checkbox复选框处于选取状态时的样子(FF中要写成:-moz-checked);
E:default 指定当页面打开时默认处于选区状态的radio或checkbox控件的样式;
E:indeterminate 指定当页面打开时,如果一组单选框中任何一个单选框都没有被设定为选取状态时整组单选框的样式,如果用户选取了一个单选框,则该样式被取消;
E::selection 指定当元素处于选中状态时的样式.
二、结构伪类
- E:first-child选择某个元素的第一个子元素;
- E:last-child选择某个元素的最后一个子元素;
- E:nth-child()选择某个元素的一个或多个特定的子元素;
- E:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
- E:nth-of-type()选择指定的元素;
- E:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;
- E:first-of-type选择一个上级元素下的第一个同类子元素;
- E:last-of-type选择一个上级元素的最后一个同类子元素;
- E:only-child选择的元素是它的父元素的唯一一个了元素;
- E:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;
- E:empty选择的元素里面没有任何内容。
三、否定选择器
- E :not() 可以让你定位不匹配该选择器的元素。
CSS伪元素与伪类类似,它可以用来选择元素的某些部分,这些部分可能不包含在<div>或者<span>中,不方便用其他方法来选择。比如,:first-letter伪元素可以用来选择一个元素中文本的第一个字符,这样就可以创建一些特效。
CSS伪元素有:
- E:first-letter 伪元素向文本的第一个字母添加特殊样式;
- E:first-line 伪元素向文本的首行添加特殊样式;
- E:before 伪元素在元素之前添加内容;
- E:after 伪元素在元素之后添加内容。
那么在CSS3中,也对伪元素进行了一定的调整,在以前的基础上增加了一个“:”也就是现在变成了::first-letter,::first-line,::before,::after。
另外他还增加了一个::selection
,::selection
用来改变浏览网页选中文的默认效果。
奇妙的CSS之伪类与伪元素的更多相关文章
- CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
- CSS伪类和伪元素
一.伪类 CSS伪类用于向某些选择器添加特殊的效果,在W3规范中,CSS伪类有如下几个: CSS2.1 :active:向被激活的元素添加样式(激活是指点击鼠标那一下) :focus:向拥有键盘输入焦 ...
- CSS 属性 - 伪类和伪元素的区别
伪类和伪元素皆独立于文档结构.它们获取元素的途径也不是基于id.class.属性这些基础的元素特征,而是在处于特殊状态的元素(伪类),或者是元素中特别的内容(伪元素).区别总结如下: ①写法不一样: ...
- CSS 伪类和伪对象选(五)
一.伪选择器 伪选择器包括:伪类选择器和伪对象选择器,以冒号(:)作为前缀,冒号后紧跟伪类或者伪对象名称,冒号前后没有空格,否则解析为包含选择器 如: div:hover{ font-size:12p ...
- 详解 CSS 属性 - 伪类和伪元素的区别[转]
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
- CSS 属性 - 伪类和伪元素
CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果.这里特殊指的是两者描述了其他 cs ...
- 关于css中伪类及伪元素的总结
css中的伪类和伪元素总是混淆,今天参考了很多资料,也查看了部分文档,现将伪类及伪元素总结如下: 一.由来: 伪类和伪元素的引入都是因为在文档树里有些信息无法被充分描述,比如CSS没有"段落 ...
- CSS的伪类和伪元素
伪类 W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2). 属性 描述 CSS :active 向被激活的元素添加样式. 1 :focus 向 ...
- 详解 CSS 属性 - 伪类和伪元素的区别(再也不用概念盲了!!!)
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
随机推荐
- java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解
java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解 我用的是office word 2016版 XWPFRun是XWPFDocument中的一段文本对象(就是一段文 ...
- 编程语言教程书该怎么写: 向K&R学习!
原文地址:Lax Language TutorialsAndrew Binstock 每年在评审Jolt Awards图书的时候,我都会被一些语言教程类图书弄得心力交瘁.从这些年的评审经验来看,这些语 ...
- samba和nginx服务
samba和nginx服务 1.s配置amba samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件. 1.1配置环境 关闭防火墙和selinux systemc ...
- 科学计算三维可视化---Mayavi入门(Mayavi管线)
一:Mayavi管线 mlab.show_pipeline() #显示管线层级,来打开管线对话框 (一)管线中的对象scene Mayavi Scene:处于树的最顶层的对象,他表示场景,配置界面中可 ...
- Redis总体 概述,安装,方法调用
1 什么是redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset( ...
- Java消息队列三道面试题详解!
面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析 其实面试官主要是想看看: ...
- 51 nod 1243 排船的问题
1243 排船的问题http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1243 题目来源: Codility 基准时间限制:1 ...
- 动态规划:树形DP-选课(树形背包)
学校开设了N(N<300)门的选修课程,每个学生可选课程的数量M是给定的.学生选修了这M门课并考核通过就能获得相应的学分.在选修课程中,有些课程可以直接选修,有些课程需要一定的基础知识,必须在选 ...
- Django中url()
使用django的时候,如果我们希望我们编写的view可以被正常访问,就需要配置url. 在django的官方文档中,url()的例子如下: polls/urls.py from django.con ...
- nodejs出现events.js:72中抛出错误 Error: listen EADDRINUSE
<pre>events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoExce ...