热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

走心的a元素伪类顺序分析

还记得我们刚学习css的时候,初识状态伪类时,用鼠标移入,点击a元素都会使它改变样式。,这可能使我们最早接触的网页“特效”了。众所周知a元素有4种常见状态伪类,:link:

    还记得我们刚学习css的时候,初识状态伪类时,用鼠标移入,点击a元素都会使它改变样式。,这可能使我们最早接触的网页“特效”了。
众所周知a元素有4种常见状态伪类,:link :visited :hover :active。几乎在接触这些伪类的同时,我们也被告知了,这四个伪类的设置是有顺序的,也就是我们常说的lv好。之后,我们就一直这么用着,一直享受着这种设计带给我们的便利,但这其中的原理和思路有什么呢,让我们一起去看看,为什么lv包这么好。

1- 首先我们要明白用状态伪类设置样式的实质
状态伪类虽然是根据状态设置样式的,但接受这些样式的是一个具体的Dom元素,如,在文档中有测试
对它添加以下样式

    a.test:hover{color:#CCC}
此时鼠标浮上测试a元素,颜色会改变,但这条语句实际上为一个具体的a元素设置样式,这不过这种样式是触发性的。这种样式会与其他作用在这个a元素上的相同(color)样式做优先级判断,优先级高的生效。最直观验证方式的是后面(前面也可)添加
    #test{color:#000;}
此时鼠标浮上测试a元素,颜色不会改变,始终为黑色,这里我们就可以看出状态伪类选择器和一般的选择器没有本质的区别,他们共同遵循选择器的优先级对样式生效的影响。明确这一点我们就能继续下面得讨论。

2- 我们要达到什么效果,我们想要什么
事实上我们想要的效果,非常的简单,我们不理你你就显示默认样式;我们触碰你你显示被触碰的样式;点你你显示被点的样式;点过你之后,不再理你,就显示被点过的样式。
看上去很简单,那来看看我们是怎么实现的。用专业点的话说,就是我们需要,(关键的来了)鼠标触碰(:hover)的样式覆盖默认样式(:link)和的点击过(:active)的样式。我们需要按下点击不放时(:active)的样式覆盖(:hover)的样式。我想到这里大部分的读者都应该已经明了,在样式的优先级相同时,后面设置的样式会覆盖之前设置的。
如果到这里还有疑惑那就再往下看看
3-多余的解释:状态共存和触发性
如果还有啥不理解的那可能就是状态共存和状态伪类样式的触发性了
举个两个栗子吧
点击(按住不放)一个被点击过的a元素,这个a元素实际上有:visited,:hover,:active 三个状态共存,三个状态的样式都有生效的机会,现在就是拼优先级(不好意思,你们仨优先级相等)和位置(后来居上)的时候了,这就是状态共存。
至于触发性就是给:hover设置了样式,如果不以鼠标“事件”触发,它只能在小黑屋等着,连和:link,:visited竞争的机会都没有。
如果觉得有点用的话给顶一下呗


推荐阅读
  • 本文详细介绍了如何利用CSS技术对链接下划线进行个性化定制和美化,涵盖了多种实用技巧和方法。通过对CSS属性的灵活运用,可以实现不同风格的下划线效果,提升网页的视觉体验。文中不仅提供了基础的代码示例,还结合实际案例进行了深入解析,帮助读者更好地理解和应用这些技巧。此外,文章还引用了《CSS2.0中文手册》中的相关内容,增加了技术的权威性和实用性。 ... [详细]
  • CSS伪类详解:定义与应用
    本文将深入解析CSS伪类的定义及其应用场景。CSS伪类通过为已存在的元素在特定状态下添加特殊样式,能够动态响应用户的交互行为,从而提升网页的视觉效果和用户体验。 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 在本文中,我们将深入探讨 jQuery 中的 DOM 操作与事件处理技术,通过实现类似 Yahoo 邮箱登录框的提示效果来展示其强大功能。我们将详细介绍如何利用简洁的 jQuery 代码提升用户体验,并分享一些实用的示例。同时,我们还会解析这些示例中涉及的具体操作和事件处理方法。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 为开发者提供了一系列实用的参考网站和资源链接,包括HTML速查手册( 和 ),帮助开发者快速查找和学习相关技术知识。此外,还涵盖了其他重要的开发工具和文档,为编程工作提供全面支持。 ... [详细]
  • 织梦系统多条件联动筛选功能详细教程及删除操作指南
    多条件联动筛选功能广泛应用于图片展示、装修设计、机械设备和在线商城等场景,通常筛选条件应聚焦于用户最关心的要素,而非涵盖所有可能的选项。在DedeCMS中,多条件筛选的PHP开发并未内置删除已选条件的功能,但通过理解PHP筛选与JS筛选的不同机制,实现这一功能相对简单且易于操作。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • 本文介绍了在PHP环境中优化表格列表和表单Label样式的技巧,通过CSS代码提升表单的视觉效果。具体包括为每个标签添加箭头背景,并在标签获得焦点时实现背景高亮的效果。示例代码展示了如何为“姓名”和“邮件”字段应用这些样式,适用于phpStudy开发环境。 ... [详细]
  • 深入理解 CSS 盒模型、box-sizing 属性及定位元素的水平和垂直居中技巧
    深入理解 CSS 盒模型、box-sizing 属性及定位元素的水平和垂直居中技巧 ... [详细]
  • 精通jQuery:深入解析事件处理机制与应用技巧
    本文详细探讨了jQuery的事件处理机制及其应用技巧,通过具体的代码示例,逐一解析了每个jQuery代码片段与其对应的HTML结构。文章以标记为基准,CSS作为通用样式,确保每段代码都能独立运行。HTML和CSS代码统一放置在文章末尾,方便读者参考和实践。 ... [详细]
  • 使用React与Ant Design 3.x构建IP地址输入组件
    本文深入探讨了利用React框架结合Ant Design 3.x版本开发IP地址输入组件的方法。通过详细的代码示例,展示了如何高效地创建具备良好用户体验的IP输入框,对于前端开发者而言具有较高的实践指导意义。 ... [详细]
author-avatar
zhuyiming69751
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有