HTML中常见伪类和伪元素的区别

HTML中常见伪类和伪元素的区别,第1张

提到伪类,在人们的印象中最常用的不过是:hover、:active、:link、:visited,还有css3里的常用伪类选择器:last-child、:first-child、nth-child(n)等等!

w3c上对伪类和为元素的定义分别为:

伪类:伪类用于向某些选择器添加特殊的效果。伪元素:伪元素用于将特殊的效果添加到某些选择器

css3为了明确伪类和伪元素的区别,已经明确了单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素

span:hover //伪类

span::before //伪元素

但是,为了保证兼容性,现在伪元素普遍还是使用单引号。下面我将用单引号的形式给大家做介绍

常见的伪类(pseudo-classes)和伪元素(pseudo-elements)

HTML中常见伪类和伪元素的区别

伪元素的兼容性

Chrome 2+,

Firefox 3.5+ (3.0 had partial support),

Safari 1.3+,

Opera 9.2+,

IE8+ (with some minor bugs),

几乎所有的移动浏览器。

伪元素:before和:after的定义和基本用法

定义:

:before 选择器在被选元素的内容前面插入内容。

:after 选择器在被选元素的内容后面插入内容。

使用:

使用 content 属性来指定要插入的内容。content有几个比较有用的值:[String] – 使用引号包括一段字符串,将会向元素内容中添加字符串。示例

a:after { content: "↗"}

attr() – 调用当前元素的属性,可以方便的比如将图片的 Alt 提示文字或者链接的 Href 地址显示出来。示例:

a:after { content:"(" attr(href) ")"}

url() / uri() – 用于引用媒体文件。示例:

h1::before { content: url(logo.png)}

counter() – 调用计数器,可以不使用列表元素实现序号功能。具体请参见 counter-increment 和 counter-reset 属性的用法。示例:

h2:before { counter-increment: chaptercontent: "Chapter " counter(chapter) ". " }

:active 表示一个被用户激活的元素(比如一个按钮)。当使用鼠标时,“activation”通常在用户按下鼠标主按钮时开始。

:active 通常用于 a 和 button 元素。这个伪类的其他常见目标包括被激活元素中包含的元素,以及通过关联的 label 被激活的表单元素。

由 :active 定义的样式将被后续与链接相关的伪类(:link,:hover,或:visited)覆盖,这些伪类至少具有相同的特性。为了适当地样式化链接,将:active规则放在所有其他与链接相关的规则之后,正如 lvha 命令: :link - :visited - :hover - :active 所定义的那样。

示例:

CSS

:checked 伪类选择器表示 radio checkbox option 元素,选中或切换到打开状态。

注意: 对于 option不同浏览器对 :checked 伪类实现上会有差别。

例子:

HTML

CSS

:disabled 表示任何被禁用的元素。如果一个元素不能被激活(选中、点击、输入,等等)或接受焦点,那么它就是禁用的。元素还有一个 enabled 状态,在这个状态下,它可以被激活或接受焦点。

示例:

HTML

CSS

:empty 表示任何没有子元素的元素。子元素可以是元素节点,也可以是文本(也包括空格)。注释、处理指令和CSS内容并不影响元素是否为空。

例子:

HTML

CSS

:first-child 表示一组同级元素中的第一个元素。

:last-child 表示一组同级元素中的最后一个元素。

示例:

HTML

CSS

:first-of-type 表示一组同级元素中该类型的第一个元素。

:last-of-type 表示一组同级元素中该类型的最后一个元素。

示例:

HTML

CSS

:focus 表示一个接收到焦点的元素(比如表单输入)。它通常在用户单击、点击元素或用键盘的Tab键选择元素时触发。

示例:

HTML

CSS

:hover 通常在用户用光标(鼠标指针)悬停在元素上时触发。

示例:

HTML

CSS

:link 表示尚未访问的元素。它匹配每一个具有href属性的未访问 a 或 area 元素。

默认情况下,大多数浏览器对访问的链接应用一个特殊的颜色值。可能只有在访问它们之前才具有特殊的字体颜色。(之后,你需要清除浏览器历史记录才能再次看到它们。)然而,background-color的值可能会保留,因为大多数浏览器默认不会在访问过的链接上设置该属性。

示例:

HTML

CSS

:not() 表示不匹配选择器列表的元素。因为它阻止特定项被选中,所以它被称为否定伪类。

需要注意的是: :not() 有许多 怪癖、技巧和意想不到的结果 ,在使用它之前应该注意这些问题。

示例:

HTML

CSS

:nth-child() 表示根据元素的位置匹配同级的元素。

:nth-of-type() 根据元素在相同类型(标记名)的兄弟元素中的位置匹配它们。接收的参数类似于 :nth-child() 。

说明:

示例:

:only-child 表示没有兄弟元素的元素。

示例:

HTML

CSS

:only-of-type 表示没有相同类型的兄弟元素。

示例:

HTML

CSS

匹配文档树的根元素。对于 HTML 来说, :root 表示 <html> 元素,除了 优先级 更高之外,与 html 选择器相同。

示例: 在声明 全局 CSS 变量 时 :root 会很有用:

使用:

:target 表示一个唯一的元素(目标元素),其id与URL的片段匹配。

示例:

下面的URL有一个片段(用#符号表示),它指向一个名为section2的元素:

当当前URL等于上面的URL时,下面的元素将被a:target选择器选中:

:visited 表示用户已经访问过的链接。出于隐私的原因,可以使用这个选择器修改的样式非常有限。

MDN Pseudo-classes


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8287927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存