定义 伪类 CSS 伪类 是添加到选择器的关键字,指定要选择的元素的特殊状态。 例如,:hover 可被用于在用户将鼠标悬停在按钮上时改变按钮的颜色。...伪元素 伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。 下例中的 ::first-line 伪元素可改变段落首行文字的样式。 /* 每一个 元素的第一行。...,而且还允许你根据诸如像导航历史这样的外部因素来应用样式(例如 :visited),同样的,可以根据内容的状态(例如在一些表单元素上的 :checked),或者鼠标的位置(例如 :hover 让你知道是否鼠标在一个元素上悬浮... 如果想要给该段落的第一个字母添加样式,可以在第一个字母中包裹一个元素,并设置该span元素的样式: Hello World, and...总结 1.伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息; 2.伪元素本质上是创建了一个有内容的虚拟容器; 3.CSS3中伪类和伪元素的语法不同; 4.可以同时使用多个伪类,而只能同时使用一个伪元素
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。...伪类的种类 伪元素的种类 区别 这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。...,然后定义这个类的样式。... 总结 伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。...:Pseudo-classes::Pseudo-elements 但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。
直译过来就是:css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。...下面分别对伪类和伪元素进行解释: 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。...虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。 伪元素用于创建一些不在文档树中的元素,并为其添加样式。...比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。...实际上,伪元素使用单冒号还是双冒号很难说得清谁对谁错,你可以按照个人的喜好来选择某一种写法。 4.伪类与伪元素的具体用法 这一章以含义解析和例子的方式列出大部分的伪类和伪元素的具体用法。
伪类的常见用法和实例解析 CSS伪类和伪元素是一种特殊类型的选择器,可以用于在元素状态或者文档树中的特定位置添加样式。它们允许开发者选择一个元素的部分或者元素的部分状态,从而改变它们的样式。...下面将介绍一些常见的伪类和伪元素的用法和实例。 伪类: 伪类是一种特殊类型的选择器,可以用于选择一个元素的部分状态。例如,当鼠标悬停在元素上时,可以使用伪类 :hover 来改变元素的样式。...]:checked { background-color: lightgray; } 以上就是CSS伪类和伪元素的常见用法和实例,它们为开发者提供了更多的样式控制选项,可以在特定的状态下或位置应用特定的样式...伪元素的常见用法和实例解析 ::before伪元素 ::before伪元素用于在某个元素的内容的前面插入一个元素,并为其设置样式。比如,我们可以在段落前面添加一个标签,并为其设置样式。...本文深入探讨了CSS中伪类和伪元素的常见用法和实例解析,并附上了具体的代码示例。通过合理运用伪类和伪元素,我们可以更灵活地控制页面的样式,实现更丰富的交互效果和视觉效果。
其实上面提到的这些伪类和伪元素都是CSS1和CSS2中的概念,CSS1和CSS2中对伪类的伪元素的区别比较模糊,甚至经常有同行将:before、:after称为伪类。...CSS3对这两个概念做了相对较清晰地概念,并且在语法上也很明显的讲二者区别开。...伪类 - pseudo classes 首先看看CSS2中对伪类的定义: CSS 伪类用于向某些选择器添加特殊的效果。 单单看定义完全不懂在讲什么。...使用两个冒号::是为了区别伪类和伪元素(CSS2中并没有区别)。当然,考虑到兼容性,CSS2中已存的伪元素仍然可以使用一个冒号:的语法,但是CSS3中新增的伪元素必须使用两个冒号::。...最后,总结一下伪类与伪元素的特性及其区别: 伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息; 伪元素本质上是创建了一个有内容的虚拟容器; CSS3中伪类和伪元素的语法不同; 可以同时使用多个伪类
left: 0; right: 0; top: 0; height: 2px; } 最近在看一篇文章,网站中有一个图标,鼠标划上去会出现一个彩色的小边...效果如下: www.w3h5.com 查看代码发现标签上有一个:hover,鼠标划入时添加一个:after伪类,给这个伪类设置背景渐变、绝对定位和高度,实现了这种“炫酷”的效果。...html部分代码: www.w3h5.com 样式部分代码: code{ display: inline-block; ...声明:本文由w3h5原创,转载请注明出处:《利用css中的伪类 给元素设置特殊样式效果》 https://www.w3h5.com/post/51.html
伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。...但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。 双冒号是在当前规范中引入的,用于区分伪类和伪元素。...不过浏览器需要同时支持旧的已经存 在的伪元素写法,比如:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的伪元素则不允许再支持旧的单冒号的写法。...常见的伪类和伪元素元素和 伪类种类(分为结构性伪类和状态性伪类) 伪类 作用 :active 将样式添加到被激活的元素 :focus 将样式添加到被选中的元素 :hover 当鼠标悬浮在上方时,向元素添加样式...伪元素种类 伪元素 作用 ::first-letter 将样式添加到文本的首字母 ::first-line 将样式添加到文本的首行 ::before 在某元素之前插入内容 ::after 在某元素之后插入内容
相信很多CSS新手对伪类和伪元素这两个一直分不太清,MDN文档说的太官方也读不明白,那么就让我带你用2分钟的事件分清伪类和伪元素!...一.伪类 1.定义:MDN中对伪类的定义 感兴趣的可以看看,不过不一定能看懂 2.伪类种类: 3.伪类小例子:伪类小例子 二.伪元素 1.定义:MDN中对伪元素的定义 2.伪元素种类:...3.伪元素小例子:伪元素小例子 三.区别 这里以伪类 :first-child 和伪元素 :first-letter 为例。...: red} hello world 我们发现如果我们不用伪类的话,要想实现预期效果就要手动在已有的元素添加一个类...三.总结 这下再看官方的定义不就清楚明白多了,这俩的区别是如果不用伪类和伪元素写样式,前者想要选中某个目标不需要新加元素标签,后者需要。
id 的用途是在页面标记中唯一地标识一个特定的元素。 类是可以应用给任意多个页面中的任意多个 HTML 元素的公共标识符 。...我们在chrome、firfox开发者工具中任意右键点击一个元素会看到一个菜单。接下来我们介绍一下伪类。Are you ready ? 链接伪类 在浏览器中样式的时候它们可以帮助我们快速的进行变换。...(:)一个冒号代表伪类,请务必区分和伪元素(::)的写法,稍后看这个。...,伪元素是在你的文档上时有时无的元素。...介绍几个常用的,并且区分一下伪类与伪元素的区别,一些小技巧。 请记得和伪类(:)的写法区分,伪元素的写法(::),虽然浏览器对于一个:也是支持的但是为了避免大家混乱,请遵守规则。
其实上面提到的这些伪类和伪元素都是CSS1和CSS2中的概念,CSS1和CSS2中对伪类的伪元素的区别比较模糊,甚至经常有同行将:before、:after称为伪类。...CSS3对这两个概念做了相对较清晰地概念,并且在语法上也很明显的讲二者区别开。 伪类 - pseudo classes 首先看看CSS2中对伪类的定义: CSS 伪类用于向某些选择器添加特殊的效果。...简单翻译一下: 伪元素在DOM树中创建了一些抽象元素,这些抽象元素是不存在于文档语言里的(可以理解为html源码)。...使用两个冒号::是为了区别伪类和伪元素(CSS2中并没有区别)。当然,考虑到兼容性,CSS2中已存的伪元素仍然可以使用一个冒号:的语法,但是CSS3中新增的伪元素必须使用两个冒号::。...最后,总结一下伪类与伪元素的特性及其区别: 伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息; 伪元素本质上是创建了一个有内容的虚拟容器; CSS3中伪类和伪元素的语法不同; 可以同时使用多个伪类
我们常用CSS 3.0中的伪元素来修饰一些细节,让页面看起来效果更好,比如下面这个图片中的面包屑导航中的符号,还有任务清单前的序列符号,都是用伪元素实现的。 ?...以下是代码实现,希望能对初学者有一个简单的认识。 CSS 3.0中伪元素...after和before的妙用 /* 面包屑导航 */ .breadcrumb {
目录 一、属性选择器 二、关系选择器 三、结构化伪类选择器 四、伪元素选择器 五、链接伪类 CSS选择器的作用就是从HTML页面中找出特定的某类元素。...常用的几类CSS选择器如下表所示。 伪选择器比较特殊,分为伪元素和伪类元素两种。...选择器中的两个元素有同一个父亲,但第二个元素不必紧跟第一个元素。 三、结构化伪类选择器 :root选择器 :root选择器用于匹配文档根元素,在HTML中,根元素始终是html元素。...:after选择器 :after伪元素选择器用于在某个元素之后插入一些内容,使用方法与:before选择器相同。 五、链接伪类 1.链接伪类 在CSS中,通过链接伪类可以实现不同的链接状态。...所谓伪类并不是真正意义上的类,他的名称是由系统定义的,通常由标记名、类名或id名加“:”构成。超链接标记的伪类有4种,具体如下表所示。
BFC(块格式化上下文) 常见布局的实现 1. 伪类和伪元素 为什么引入? css引入伪类和伪元素概念是为了格式化文档树以外的信息。伪类和伪元素是用来修饰不在文档树中的部分。...伪类 伪类 用于当元素处于某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,用户悬停在指定的元素时,我们可以通:hover来描述这个元素的状态。...虽然它和普通的css类类似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。 ?...图片来源网络 伪元素 伪元素 用于创建不在文档树中的元素,并为其添加样式,比如说,我们可以通过:before来在一个元素前添加一些文本,并为这些文本添加样式。...图片来源网络 CSS3 规范中的要求使用双冒号 (::) 表示伪元素,以此来区分伪元素和伪类,比如::before 和::after 等伪元素使用双冒号 (::),:hover 和:active 等伪类使用单冒号
&还允许你在父选择器上定位伪元素和伪类。...Sass编译的代码与此相同: .parent1 .child1, #parent2 .child1 { } 在本例中,.parent1 中的 .child1 元素的特异性为 002,因为它匹配两个类(.../div> 由于CSS解析器会执行以下操作,因此MATCH会改变样式: 在DOM层次结构中的任意位置,找到所有类为child的元素,同时祖先元素的类为parent。...在找到包含MATCH的元素后,解析器会检查该元素是否有一个祖先为grandparent的元素--同样是在DOM层次结构中的任意位置。找到后,解析器会相应地对该元素应用样式。...在Sass中不是这种情况,最终会编译成这样: .grandparent .parent .child {} 上面的HTML没有样式化,因为元素的类没有遵循严格的grandparent、parent和child
(2)PostCss:PostCss 是如何工作的?我们在什么场景下会使用 PostCss? 它和预处理器的不同就在于,预处理器处理的是 类CSS,而 PostCss 处理的就是 CSS 本身。...因为只有完成了编译过程,才可以对 css 代码进行插入;若提前插入了未编译的代码,那么 webpack 是无法理解这坨东西的,它会无情报错。 伪元素和伪类的区别和作用?...伪元素:在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。...;} p::first-line {background:red;} p::first-letter {font-size:30px;} 伪类:将特殊的效果添加到特定选择器上。...例如: a:hover {color: #FF00FF} p:first-child {color: red} 总结: 伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变
这四种 CS 选择器有修饰上的优先级,即:内联选择器 > id选择器 > 类选择器 > 标签选择器如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。...伪类CSS 伪类是用来添加一些选择器的特殊效果。由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。...在CSS1和CSS2中,伪元素和伪类都采用单冒号进行表示,在CSS3中为了区分伪元素和伪类,规定使用双冒号代表伪元素,单冒号代表伪类,即CSS3标准中应该这么写:selector.class::pseudo-element...后面可以跟4个属性值,即上右下左,若跟2个属性值,即上下和右左,若1个属性值,则是所有方向。样式分组和嵌套在样式表中有很多具有相同样式的元素。...该文件可以以不同的方式显示在屏幕上,在纸张上,或听觉浏览器等等。 @media 规则允许在相同样式表为不同媒体设置不同的样式。
HTTPS 降低一定用户访问速度(实际上优化好就不是缺点了)。HTTPS 消耗 CPU 资源,需要增加大量机器。伪元素和伪类的区别和作用?...伪元素:在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。...;}p::first-line {background:red;}p::first-letter {font-size:30px;}伪类:将特殊的效果添加到特定选择器上。...例如:a:hover {color: #FF00FF}p:first-child {color: red}总结: 伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变。...(2)PostCss:PostCss 是如何工作的?我们在什么场景下会使用 PostCss? 它和预处理器的不同就在于,预处理器处理的是 类CSS,而 PostCss 处理的就是 CSS 本身。
document.querySelectorAll()[4]返回所有匹配的HTML元素,这些元素位于类数组NodeList[5]中。 伪类选择器根据HTML元素的当前状态来定位它们。...也许最广为人知的是 :hover,它在光标移到一个元素上时应用样式,所以它被用来高亮可点击的链接和按钮。...MDN解释::is()CSS伪类函数将选择器列表作为参数,并选择该列表中任意一个选择器可以选择的元素。这对于以更紧凑的形式编写大型选择器非常有用。 你经常需要在不止一个元素上面应用相同的样式。...任何选择器的语法错误都会破坏所有元素的样式。 像Sass这样的CSS预处理器允许嵌套(这也将出现在原生CSS[6]中)。...在JavaScript中添加、删除或修改元素可能会影响整个页面的样式,直到闭合的 标签为止。
前言 继上篇《CSS魔法堂:稍稍深入伪类选择器》记录完伪类后,我自然而然要向伪元素伸出“魔掌”的啦^_^。本文讲讲述伪元素以及功能强大的Contet属性,让我们可以通过伪元素更好地实现更多的可能!...初识伪元素 说起伪元素我第一想到的莫过于::before和::after这两个了,它俩其实就是在其附属的选择器命中的元素上插入第一个子节点和追加最后一个子节点。...原因就是伪元素并不存在于DOM中,而是位于CSSOM,HTML代码和DOM Tree中均没有它的身影,量少了自然效率有所提升。...::是CSS3的写法,其实除了::selection外,其他伪元素既两种前缀都是可以的,为兼容性可选择使用:,为容易区分伪元素和伪类则使用::,但我还是建议使用::来提高可读性,兼容性就让postcss...的内容无法被用户选中的; 伪元素和伪类结合使用形如:.target:hover::after。
于是就有了这个问题和如下的一连串问题。 .最外层父元素{height:auto;background:url(.....本来想用css3的background-image属性的多个背景图的功能,可是想想还要兼容ie就很烦 于是利用了css的伪类选择器来完成这一巨大的使命。...可以看出来,before和after的背景图片没有加载进来,或者可以说,在ie(以下皆指ie8及以下)中,before和after没起作用。 ?...我想了想,清除浮动时,虽然也用了after伪类,但他在正常的clearfix类里边还设置了*zoom:1;*overflow:hidden;这个万能的iebug调试法,我这里也试下看行不?...但我觉得最好的方法还是用css好,不过针对ie下伪类不能用的问题,网上还是有很多教程说明,让引入js文件来解决的。 1 .class{background:url(..
领取专属 10元无门槛券
手把手带您无忧上云