超链接a标签中的伪类区别及用法

2024-08-30 08:18

本文主要是介绍超链接a标签中的伪类区别及用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先 “超链接” 就是我们 html 中的 a 标签,这个应该大家都没问题。

  1. 再接着,"伪类":什么是伪类?
  2. css 对于伪类的解释是用于向某些选择器添加特殊的效果。
  3. 简单点说,就是你没定义这个类,但它确实作为一个类来使用。
  4. 再简单点就是你可以利用伪类为我们的元素添加各种不同的效果。
  5. 比如:
  6. a:hover { }
  7. 这段代码就是给 a 这个标签选择器添加了一个效果,这个效果在鼠标悬停于 a 标签上方时被触发。
  8. 并且,伪类还有权重(特殊性),《css权威指南》中指出,其特殊性为:0,0,1,0
  9. 也就是说伪类的权重和class的权重是一样的。这一点一定要注意,这一点一定要注意 一定要注意;敲黑板划重点!
  10. 再回到问题,css1 在给 a 定义伪类的时候,一共有四个伪类,分别是:link,visited,hover,active。并且这四个伪类一直延续到现在
  11. 其各自代表不同的意思:
  12. a:link 表示未被访问的链接 (在页面上写了,还没有访问过)
  13. a:visited 表示已经被访问过后的链接 (访问过了,注:判断是否访问过,是以浏览器的浏览记录为依据)
  14. a:hover 表示鼠标指针位于其上的链接
  15. a:active 表示活动链接 (当鼠标点下时的链接)
  16. 用中文表达就是:你在页面上写了一个链接,你打开这个页面的时候,这个链接处于 link 状态
  17. 当你要去点击它的时候,首先会把鼠标移到连接上去,这时候是 hover 状态
  18. 当你把鼠标点下去,还没抬起来的那一瞬间是 active 状态
  19. 完事之后就是 visited 状态了
  20. 看到这大家应该就要明白题中的 L,V,H,A 四个字母分别代表的就是 a 标签的四个伪类了。
  21. 考题第二点:顺序?
  22. a 标签的四个伪类书写顺序很重要么?当然重要!!!
  23. CSS设计指南》说到四个伪类的书写顺序一定要正确,否则浏览器可能不会显示预期的结果。
  24. 首先来看前面两个伪类:link visited 分别代表未访问的链接和已经访问的链接,那么一个链接不可能同时存在这两个状态,所以实际上这两个伪类的顺序是可以随意一点的
  25. 再来看 visited hover
  26. 假设 hover 写在 visited 的前面 并且这个链接已经被访问过了
  27. a:visiteda:hover 这两个选择器在权重上是一样的。那么根据 css 规则,权重一样的两个选择器选中同一个元素的时候,后者覆盖前者,所以 visited 一定要在前面。那么以此类推,link hover 之间的顺序也就毋庸置疑了
  28. 再来看 hover active
  29. 试想当我们要点击一个元素的时候,是不是一定会移动到这个元素身上?
  30. 也就是说想要触发 active 必定会触发 hover 伪类,还是权重一样,后者覆盖前者
  31. 那么四个元素的顺序就出来了 前面 link visited 后面 hover active
  32. 假设 hover 写在 visited 的前面 并且这个链接已经被访问过了,那么这时候鼠标移动到 a 标签身上,触发 hover,其颜色变成粉色(假设)。但是不要忘了,后面还有一个 visited 并且 a:visiteda:hover 这两个选择器在权重上是一样的。那么根据 css 规则,权重一样的两个选择器选中同一个元素的时候,书写在后面的选择器会覆盖前面的效果。所以这时候 hover 的样式会被 visited 覆盖。其导致的结果就是:当一个链接被访问过后,鼠标移动到这个链接身上将不会有任何的效果(表现为 hover 失效了)。那么以此类推,link hover 之间的顺序也就毋庸置疑了
  33. 再来看 hover active
  34. 试想当我们要点击一个元素的时候,是不是一定会移动到这个元素身上?也就是说必定会触发 hover 伪类
  35. 这时候如果 active 伪类写在 hover 伪类前面 在点击这个元素的时候,样式发生改变了,但是后面的 hover 权重和它一样高,又被覆盖了,所以这两个伪类之间的顺序也就很明显了 先写 hover 后写active
  36. 那么四个元素的顺序就出来了 前面 link visited 后面 hover active
  37. 最后再多嘴一句,既然 link visited 的顺序无所谓,那为什么一般都要把 link 放在前面呢?
  38. 一个链接,页面一上来其状态一定是未访问。从视觉顺序来排,link 在前面。)
  39. 教大家一个小技巧:Lv!(路易威登,一个世界知名奢侈品品牌,女孩对其防御力为负无穷大!俗称泡妞利器)
  40. lv! haha...(如果你送女朋友一个lv,那她一定开心得哈哈大笑)


这篇关于超链接a标签中的伪类区别及用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120278

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy