深入了解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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:40:23
下一篇 2025年12月24日 02:40:27

相关推荐

  • 为什么“元素的内容是蓝色而不是红色或绿色?

    “类选择器颜色设置”疑惑 有人提问,如下面的 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日
    000
  • 如何在 input 标签内重写外部样式?

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

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

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

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

    中括号与下面内容的垂直对齐 问题:中括号(【】)如何与下面的文本内容垂直对齐? 解决方法: 针对中文符号,第一行使用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日
    000
  • 如何使用 CSS 伪类选择器实现 span 标签点击后的高亮选中效果?

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

    2025年12月24日
    000
  • 如何使用 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日
    000
  • 如何修复 CSS :hover 高亮错误导致单元格高亮的问题?

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

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

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

    2025年12月24日
    000
  • 如何优雅地将中括号与第二行文本内容对齐?

    中括号与第二行文本内容对齐进阶方法 如何将开头中括号与第二行文本内容进行对齐是一个常见的排版问题。除了使用 margin-left:-12px 偏移第一行之外,还有更优雅的解决方案。 1. 利用 text-indent 对于第二行文本,可以使用 text-indent 进行缩进。这样可以实现与第一行…

    2025年12月24日
    000
  • 对象为空时如何禁用 CSS 样式?

    对象为空时禁用 css 样式 在解决数组中对象名称为空不会禁用 css 样式的问题时,使用了以下方法: 解决方案 通过使用 v-show 属性将其隐藏掉。当 name 为空时,v-show 表达式为 false,元素将被隐藏,从而禁用 css 样式。 立即学习“前端免费学习笔记(深入)”; 代码展示…

    2025年12月24日
    000
  • 如何让中括号与第二行文本内容精准对齐?

    中括号与第二行文本内容精准对齐 中括号作为常见的分隔符号,如何使其与第二行文本内容精准对齐,一直是困扰开发者的难题。 问题解析 最直接的解决方法是使用 margin-left 负缩进,然而这种方式存在局限性。例如,当 【 符号并非每次出现时,负缩进会影响其他文本内容的显示。 最佳实践 考虑到中文符号…

    2025年12月24日
    000
  • CSS 选择器:针对复杂元素的定位难题如何解决?

    css 选择器难题解析 css 中存在各种选择器,它们提供强大的方式来为页面元素指定样式。在这个示例中,我们遇到一个复杂的 css 选择器: .slides input[type=’radio’]:nth-of-type(3):checked ~ .controls-visible label:nt…

    2025年12月24日
    000
  • 如何针对第三个选中的 radio 输入应用背景色样式?

    css 选择器疑难解答 问题:理解 css 选择器规则 提供的 css 规则如下: .slides input[type=’radio’]:nth-of-type(3):checked ~ .controls-visible label:nth-of-type(3) { background-col…

    2025年12月24日
    000
  • CSS 选择器:您设计网页的新好朋友

    欢迎来到 css 的奇妙世界! 如果您是 web 开发新手,您可能会想,“css 选择器到底是什么,我为什么要关心?”好吧,css 选择器就像 web 开发领域中值得信赖的魔杖。它们可让您挑选网页上的特定元素并对其进行时尚改造。 让我们深入了解基础知识,学习如何让您的网站看起来很棒! 1. 通用选择…

    2025年12月24日
    000
  • css3选择器的优先级

    CSS3 选择器优先级决定了哪条规则将应用于 HTML 元素时优先级。优先级规则包括:特殊性规则:ID 选择器权重最高,标签选择器权重最低。来源规则:外部样式表的权重为 1,内联样式的权重为 100。声明顺序规则:后面声明的规则优先级高于前面声明的规则,除非前面规则具有更高的特殊性或来源权重。 CS…

    2025年12月24日
    000
  • css选择器的优先级从高到低是

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

    2025年12月24日
    000
  • css选择器的种类

    CSS选择器根据元素属性可分为:根据元素名称选择根据元素属性选择根据元素结构选择根据元素状态选择根据元素位置选择通用选择器 CSS 选择器的种类 CSS 选择器是用于从网页中选择特定元素的语法。根据元素的不同属性,CSS 选择器可以分为以下几类: 根据元素名称选择 全称选择器:选择特定元素名称,如 …

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信