css3的伪类和伪元素的区别是什么
区别:1、伪类用于已有元素处于某种状态时为其添加对应的样式,而伪元素用于创建一些不在DOM树中的元素并为其添加样式;2、伪元素会创建一个文档树之外的元素,伪类不会;3、伪元素使用双冒号“::”表示,伪类使用单冒号“:”表示。
本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。
什么是伪类和伪元素
提到“伪”字,你想到了什么?“假的”,“汪精卫伪政府”,“不存在的”······
伪类:用于已有元素处于某种状态时(滑动、点击等)为其添加对应的样式,这个状态是根据用户行为而动态变化的。我的理解就是:本身不存在,只有在特定的情况(滑动、点击)下才会被触发的状态,可以用css去修饰这个状态下的对象。例如:当用户悬停在指定元素时,可以通过:hover来描述这个元素的状态,虽然它和一般css相似,可以为已有元素添加样式,但是它只有处于DOM树无法描述的状态下才能为元素添加样式,所以称为伪类。
伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。例如,我们可以通过:before来在一个元素之前添加一些文本,并为这些文本添加样式,虽然用户可以看见这些文本,但是它实际上并不在DOM文档中。
伪类和伪元素的区别:
请看下面例子:
例一:
<ul> <li>第一列</li> <li>第二列</li> </ul>
如果我们想要给第一列添加样式,我们可以通过以下两种方式:
(1)给第一列添加一个类,并在该类中定义样式:
<ul> <li class="first-item">第一列</li> <li>第二列</li></ul> </ul> .first-item{color:orange;}
(2)如果不用添加类的方法,我们可以通过给第一个
<ul> <li>第一个</li> <li>第二个</li> </ul> li:first-child{color:orage;}
例二:
<p>Hello World, and wish you have a good day!</p>
想要给该段落第一个字母添加样式,可以有以下方法:
(1)給第一个字母包裹元素,并给span设置样式:
<p> <span class="first">H</span>ello World, and wish you have a good day! </p> .first{color:red;}
(2)如果不创建元素,我们可以通过给 元素设置P:first-letter伪元素为其添加样式,这时看起来像创建了一个虚拟的span元素并为其添加样式,但实际上在DOM数中并不存在这个span元素 从上述例子中我们可以看出:伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档树外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。 伪元素使用单冒号还是双冒号? css3规范中要求使用双冒号(::)表示伪元素,以此来区分伪类和伪元素,比如::before和::after等伪元素使用双冒号(::),:hover和:active伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。 然而除了少部分伪元素如::backdrop必须使用双冒号(::),大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after一样可以正常运行。 w3c标准中说到,虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。为了向后兼容,我们建议你在目前还是使用单冒号的写法。 常用伪类有: :active 选择正在被激活的元素(匹配指定状态) :hover 选择被鼠标悬浮着的元素(匹配指定状态) :link 选择未被访问的元素 (匹配指定状态) :visited 选择已被访问的元素(匹配指定状态) :first-child 选择满足是其父元素的第一个子元素的元素 :lang(value) 选择带有指定 lang 属性的元素 :focus 选择拥有键盘输入焦点的元素 :enable 选择每个已启动的元素 :disable 选择每个已禁止的元素 :checked 选择每个被选中的元素 :target 选择当前的锚点元素 :first-of-type 选择满足是其父元素的第一个某类型子元素的元素 :last-of-type 选择满足是其父元素的最后一个某类型子元素的元素 :only-of-type 选择满足是其父元素的唯一一个某类型子元素的元素 :nth-of-type(n) 选择满足是其父元素的第n个某类型子元素的元素 :nth-last-of-type(n) 选择满足是其父元素的倒数第n个某类型的元素 :only-child 选择满足是其父元素的唯一一个子元素的元素 :last-child 选择满足是其父元素的最后一个元素的元素 :nth-child(n) 选择满足是其父元素的第n个子元素的元素 :nth-last-child(n) 选择满足是其父元素的倒数第n个子元素的元素 :empty 选择满足没有子元素的元素 :in-range 选择满足值在指定范围内的元素 :out-of-range 选择值不在指定范围内的元素 :invalid 选择满足值为无效值的元素 :valid 选择满足值为有效值的元素 :not(selector) 选择不满足selector的元素 :optional 选择为可选项的表单元素,即没有“required”属性 :read-only 选择有"readonly"的表单元素 :read-write 选择没有"readonly"的表单元素 :root 选择根元素 常用伪元素 ::first-letter 选择指定元素的第一个单词 ::first-line 选择指定元素的第一行 ::after 在指定元素的内容前面插入内容 ::before 在指定元素的内容后面插入内容 ::selection 选择指定元素中被用户选中的内容 (学习视频分享:css视频教程) 以上是css3的伪类和伪元素的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!<p>Hello World, and wish you have a good day!</p>
p:first-letter{color:red;}

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

纯CSS3怎么实现波浪效果?本篇文章就来给大家介绍一下使用 SVG 和 CSS 动画制作波浪效果的方法,希望对大家有所帮助!

两种方法:1、利用display属性,只需给元素添加“display:none;”样式即可。2、利用position和top属性设置元素绝对定位来隐藏元素,只需给元素添加“position:absolute;top:-9999px;”样式。

在css中,可以利用border-image属性来实现花边边框。border-image属性可以使用图片来创建边框,即给边框加上背景图片,只需要将背景图片指定为花边样式即可;语法“border-image: url(图片路径) 向内偏移值 图像边界宽度 outset 是否重复;”。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

伪元素失效了的原因:1、选择器问题;2、样式冲突;3、继承问题;4、语法错误;5、浏览器兼容性问题等。详细介绍:1、选择器问题,伪元素的选择器可能不正确,导致无法选择到目标元素;2、样式冲突,如果在CSS中存在样式冲突,可能会导致伪元素失效;3、继承问题,伪元素可能无法继承某些样式属性;4、语法错误,如果在CSS中存在语法错误,可能会导致伪元素失效;5、浏览器兼容性问题等等。

自适应布局又称“响应式布局”,是指可以自动识别屏幕宽度、并做出相应调整的网页布局;这样的网页能够兼容多个不同的终端,而不是为每个终端做一个特定的版本。自适应布局是为解决移动端浏览网页而诞生的,能够为使用不同终端的用户提供很好的用户体验。

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式,具体代码示例如下:HTML代码:<divid="container"><divclass="item">第一个子元素</div><divclass="item"&
