深入了解CSS伪类选择器的用法(代码示例)

本篇文章给大家带来的内容是关于深入了解伪类选择器的用法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前言

 过去零零星星地了解和使用:link、::after和content等伪类、伪元素选择器,最近看书时发现这方面有所欠缺,于是决定稍微深入学习一下,以下为伪类部分的整理。

伪类

 伪类选择器实质上是让设计师可以根据元素特定的状态,设置不同的视觉效果。具体有:link、:visited、:hover、:active、:focus、:focus-within、:target、:root和:checked。

HTMLAnchorElement的4大经典伪类

:link,用于设置链接初始状态时的样式;

:visited,用于设置链接被点击过后的样式;

立即学习“前端免费学习笔记(深入)”;

:hover,用于设置鼠标悬停在链接上方时,链接的样式;

:active,用于设置鼠标按键按下,但未释放时,链接的样式。

想必各位都和我一样,最初接触到的就是上述4个伪类了吧?!而且还死机硬背它们的设置顺序(LVAH)吧,哈哈。

设置当前目标元素样式

 还记得URL中的井号吗?从井号(#)开始到URL的末尾称为URL的hash或fragment,用于定位页面内某项资源。假设现在页面存在

Target

的元素,那么只要地址栏输入#title浏览器就会不断滚动(滚动不一定存在补间动效)直到元素h3#title位于可视区的特定位置。(注意:请不要和UI Routing混为一谈)
 而上述这个被定位的页面资源,被称为目标元素或当前活动元素!可通过:target设置其样式。
 兼容性:IE9开始支持。

示例:

// 当前URL为http://foo.com#1:target {    color: red;}.title{    color: blue;        &:target{        border: solid 1px red;    }}.title{I'm not target element.}.title#1{Yes, I'm.}

设置元素获得焦点时的样式

:focus用于设置元素处于focus状态下的样式。
兼容性:IE8开始支持。
那么哪些元素支持focus状态呢?那要先弄清楚通过哪些操作可能实现focus。
它们分别是:

鼠标点击;

Tab键;

通过JavaScript的HTMLElement.prototype.focus()方法。

那么传统上支持focus状态的元素必定是a、button、input、select和textareas.
而HTML5中增加当元素设置了contenteditable或tabindex属性时,该元素支持focus状态。
也就是符合以下选择器的元素均支持focus状态。

a,button,input,select,textarea,[contenteditable],[tabindex]

注意:若tabindex属性值小于0,则无法通过Tab键获得焦点。但可以通过鼠标点击 或 脚本时元素获得焦点。

JS获取当前得到焦点的元素

/*  * 加载完成时默认返回body * 若某元素获得焦点时,则返回该元素 */document.activeElement :: HTMLElement

另外还有一个让人误会的属性

// 用于检测文档是否得到焦点,即用户是否正在与页面交互// 页面仅仅位于屏幕可视区域,而用户没有与之交互时返回false。document.hasFocus :: Void -> Boolean

设置子元素获得焦点时,该元素的样式

:focus-within,用于设置当子元素处于focus状态时,该元素的样式。
兼容性:Chrome63开始支持。

示例:二次确认密码时,密码框高亮

.form-control{  &:focus-within > input{    &:focus {      border: solid 1px skyblue;    }        &:not(:focus){      border: solid 1px orange;    }  }}.form-control>input.pwd[type=password]+input.confirm-pwd[type=password]

其他

:root,用于设置元素的样式,从IE9开始支持。

:checked,用于设置单选和复选控件被选中的样式,从IE9开始支持。结合伪元素::before和content属性可以实现灵活高效的自定义单选和复选控件。

:empty,用于设置没有子节点的元素的样式。p{ }为存在TEXT_NODE子节点的元素,而p{}则为没有子节点的元素。

:not,作为谓语表达取反的语义。

:placeholder-shown,用于设置元素placeholder显示时的样式。

以上就是深入了解CSS伪类选择器的用法(代码示例)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1611967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CSS伪元素和Content属性的详细分析(代码示例)
上一篇 2025年12月24日 02:40:23
下一篇 2025年12月24日 02:40:27

相关推荐

  • CSS选择器优先级:a:link 与 footer a:link 的冲突与解析

    本文旨在解决CSS样式表中`a:link`选择器优先级高于`footer a:link`选择器的问题。通过分析CSS选择器特性,解释了`a:link`的特殊性,并提供了正确的选择器使用方法,以实现对特定区域(如页脚)链接样式的精确控制。本文将帮助开发者理解CSS选择器优先级,避免样式冲突,从而更有效…

    2026年5月10日
    000
  • css选择器的优先级从高到低是

    CSS 选择器的优先级从高到低:1. 行内样式;2. ID 选择器;3. 类选择器;4. 类型选择器;5. 通用选择器;6. 属性选择器;7. 伪类选择器;8. 伪元素选择器;当优先级相同,后面声明的样式覆盖前面样式,行内样式优先于外部样式表样式。 CSS 选择器的优先级 CSS 选择器的优先级决定…

    2026年5月10日
    000
  • 父元素active伪类导致子元素onclick失效怎么办?

    父元素active伪类导致子元素点击事件失效的解决方法 问题:当父元素应用active伪类样式时,其子元素的onclick事件无法触发。这是因为active伪类通常在鼠标按下期间生效,如果样式中包含display: none等会隐藏子元素的属性,则子元素将不可见,自然无法响应点击事件。 原因分析:C…

    用户投稿 2026年5月10日
    000
  • CSS技巧:精确控制连续上标()元素的间距

    本文探讨了如何有效减少HTML中连续元素之间不必要的空白间距。通过利用CSS伪类选择器:not(:first-child)结合负外边距margin-left,可以精确控制除第一个上标外的所有后续上标元素的位置,实现更紧凑的视觉效果。文章还建议在可能的情况下,合并多个上标以简化结构。 在网页设计中,上…

    2026年5月10日
    000
  • css3选择符有哪些

    CSS3选择符是CSS3的一部分,用于选择HTML文档中的元素。它们可以根据元素的类型、属性、状态和位置等条件来选择元素。 以下是一些常用的CSS3选择符及其代码示例: 元素选择器(Element Selector):通过元素的名称来选择元素。 示例代码: 立即学习“前端免费学习笔记(深入)”; p…

    2026年5月10日
    000
  • CSS3中有哪些伪类选择器, 伪类选择器nth-child() 怎么使用

    css3中新的属性给我们带来了不少的便利,比如伪类选择器 nth-child(),但是它在ie6-8和ff3.0-浏览器不支持,css3中nth-of-type(n)(比如nth-of-type(1))这个特殊的类选择符可以设置更加个性的标题和段落等,不过,目前nth-of-type(n)只支持火狐…

    用户投稿 2026年5月10日
    000
  • Avue按钮失效了,是什么原因导致的?

    avue按钮失效排查指南 图片: 问题: Avue框架中的按钮点击失效,无报错信息。 可能原因及解决方法: CSS样式冲突: 自定义CSS样式可能意外覆盖了Avue按钮的默认样式,导致按钮无法响应点击事件。 检查你的CSS代码,特别是:disabled和:hover伪类选择器,确保没有错误地覆盖Av…

    2026年5月10日
    000
  • 如何使用 CSS 选择器样式化表格的最后一行

    本文将介绍如何使用 CSS 选择器来样式化 HTML 表格的最后一行。通过使用 :last-child 或 :last-of-type 伪类,可以轻松地为表格的最后一行应用特定的样式,例如更改背景颜色或字体样式。 使用 :last-child 伪类 :last-child 伪类选择器用于选择父元素的…

    2026年5月10日
    000
  • 精准提取HTML元素内特定文本内容教程

    本教程详细阐述了如何使用CSS选择器从复杂的HTML结构中精准提取特定文本内容,同时忽略嵌套在子元素中的文本。通过利用::text伪元素在解析器中(如Scrapy的lxml后端)仅选择直接文本子节点的特性,结合对HTML结构的理解和适当的后处理,实现高效、准确的数据抓取。 1. 理解问题:精准提取H…

    2026年5月10日
    200
  • 为什么“元素的内容是蓝色而不是红色或绿色?

    “类选择器颜色设置”疑惑 有人提问,如下面的 html 代码中,为什么 元素的内容是蓝色,而不是红色或绿色? 展示的内容 .a1 { color: red;}.a2 { color: green;}.a3 { color: blue;} 解答 这是因为 css 样式具有层叠性。当多个样式应用于同一元…

    2025年12月24日
    000
  • 为什么CSS中多个类选择器声明时,最后声明的样式会覆盖前面的样式?

    探究类选择器样式的覆盖规则 给定如下html和css代码: html: 展示的内容立即学习“前端免费学习笔记(深入)”; css: .a1 { color: red;}.a2 { color: green;}.a3 { color: blue;} 元素的文本显示为蓝色,这是为什么? 答案: 由于cs…

    2025年12月24日
    300
  • 如何在 input 标签内重写外部样式?

    如何在 input 标签内重写外部样式? 在编写 css 样式表时,有时需要重写外部样式,以覆盖特定元素的样式。通常,我们可以通过在元素的 style 属性中设置样式来实现。然而,在 input 标签中,此方法存在局限性。 问题中提到的示例中,尝试在 input 标签的 style 属性中添加 ch…

    2025年12月24日
    100
  • 如何对齐 HTML 中的中括号 【】 及其第二行文本内容?

    中括号文字如何与第二行对齐,既美观又牢靠? 问题 如何在 html 中对齐中括号 【】 和第二行的文本内容? 尝试过的解决方法 可以使用 margin-left 属性给中括号添加负边距,实现对齐。 更好的方法 1. 使用 text-indent 缩进第二行 立即学习“前端免费学习笔记(深入)”; 主…

    2025年12月24日
    500
  • 如何让中括号【】与下面内容垂直对齐?

    中括号与下面内容的垂直对齐 问题:中括号(【】)如何与下面的文本内容垂直对齐? 解决方法: 针对中文符号,第一行使用text-indent进行缩进效果更佳。 div:nth-child(1) { text-indent: 10px;} 或者,可以给第一行添加负的缩进。 div:nth-child(1…

    2025年12月24日
    000
  • 如何覆盖 HTML 中 “ 标签的外部样式?

    如何在 input 标签内覆盖外部样式 在 html 中, 标签的样式通常通过外部 css 样式表定义。但是,有时候我们需要在 标签内定义样式以覆盖外部样式。 解决方案 不能直接覆盖 立即学习“前端免费学习笔记(深入)”; 不幸的是,我们无法直接在 标签内部覆盖外部样式。这是因为 标签不支持 :af…

    2025年12月24日
    200
  • 如何使用 CSS 伪类选择器实现 span 标签点击后的高亮选中效果?

    如何实现span标签点击后的高亮选中效果? 在网页设计中,span元素经常用于强调或划分文本。为了增强用户体验,开发者常常需要为span元素添加点击事件,让其在被点击时具有突出的视觉效果,例如高亮、边框变色等。本文将介绍如何使用css伪类选择器实现span标签点击后的高亮选中状态。 css伪类选择器…

    2025年12月24日
    500
  • 如何使用 CSS 伪类选择器为 span 按钮添加点击高亮状态?

    让点击的span按钮高亮 在使用span元素创建按钮时,为点击的按钮添加选中高亮状态是常见的需求。为了实现这一效果,可以利用 css 伪类选择器。 伪类选择器 使用 :hover, :active 和 :focus 伪类选择器可以分别在悬停、点击和聚焦时触发特定的样式。 立即学习“前端免费学习笔记(…

    2025年12月24日
    000
  • CSS 如何选择特定 class 的孙子元素,同时排除最后一个?

    如何用 CSS 选择特定 class 的孙子元素并排除最后一个 为了选择一个 class 为 “parent” 的 div 中,所有拥有 class 为 “interline” 的 p 元素,但排除最后一个,我们可以使用以下 CSS 代码: ` .pa…

    2025年12月24日
    100
  • 如何修复 CSS :hover 高亮错误导致单元格高亮的问题?

    css 中 :hover 高亮错误的修复 在 html 中,使用 :hover 伪类可以实现当鼠标悬停在元素上时触发特定样式。然而,有时 :hover 高亮的错误现象会导致意外的结果。 问题描述 如问题所述,要在表格上鼠标悬停时高亮它的外边框,但使用以下 css 代码时却导致表格中的单元格 (td)…

    2025年12月24日
    100
  • CSS 中如何使对象为空时的样式失效?

    css中,当对象为空时如何使样式不生效? 在数组中的对象name为空的情况下,css中的样式失效可以采用以下解决方法: 使用v-show 在vue中,可以使用v-show指令来控制元素的显示和隐藏。当对象name为空时,可以通过v-show指令将其隐藏掉。代码如下: 立即学习“前端免费学习笔记(深入…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信