在CSS中,a标签有4种伪类,分别为:

a:link, a:visited, a:hover, a:active

对其稍有了解的前端er都知道,4个伪类是有固定顺序的(LVHA),否则很容易出现预期之外的效果。

大部分人,都会用自己的方式,对这个顺序死记硬背。

熟记顺序,无疑是写样式时最快捷的方法,牛人们的记忆方法也是五花八门。

我见过有酱婶的:lv的包包hao,这倒是实话。

比较奇葩的,我在baidu上输入lvha,竟然自动关联出鹿晗。

还有歪果仁们,则戏称LvHa为爱恨原则。

记是记住了,但是疑惑也就来了,我知道这顺序一定是有说法的,本着往祖坟上刨的原则,下面就来探究一下,到底为什么。

首先,我再把4个伪类的效果唠叨一遍:

a:link是a链接的默认样式,即a链接未被点击过时a标签内容在页面上呈现的视觉效果。

a:visited是a链接被访问过后的样式,即a链接被点击后a标签内容在页面上呈现的视觉效果。

a:hover是鼠标移动到a链接上面时的样式,即鼠标悬浮在a标签内容上方时,其在页面上呈现的视觉效果。

a:active是鼠标点击a链接时的样式,即从鼠标按键按下到鼠标按键弹起的过程中,a标签内容在页面上呈现的视觉效果。

我们来分析一下,一个a链接要发生所有的样式,是怎样一个过程:

  • 首次进入页面时,a链接未被点击过,应该呈现a:link的效果,
  • 当鼠标移动到a链接上时,应该呈现a:hover的效果,
  • 当鼠标点击a链接时,应该呈现a:active的效果,
  • 最后,a链接应该呈现a:visited的效果。
如果,a:link 写在 a:hover 之后,依据 CSS 层叠特性,a:link 将覆盖 a:hover 样式,鼠标移动到a链接上时a:hover将不会生效,这不是我们预期的效果,所以 a:link 要写在 a:hover 前。

如果,a:link 写在 a:active 之后,同理,a:link 覆盖了 a:active 样式,鼠标点击a链接时,a:active 将不会生效,所以,a:link 要写在 a:active 前。

如果,a:hover 写在 a:active 之后,那么,a:hover 讲覆盖 a:active 样式,要想点击a链接,一定会先经过鼠标移动到a链接之上这个步骤,所以,当点击a链接时,a:active 将不会生效,所以,a:hover 要写在 a:active 前。

而 a:visited,跟 a:link 类似,它发生在 a:link 之后,a:hover 和 a:active 之前,它的位置,只能在第二位了。

以上便是我们分析出的lvha顺序的由来。

希望通过这简短的文章,能让一些死记硬背的前端er理解,为什么要按照lvha顺序来写样式。因为在笔者的认知里,理解是最好的记忆方法。

各位看官,您是否赞同我的认知呢?

理解是最好的记忆方法 之 CSS中a链接的4个伪类为何有顺序的更多相关文章

  1. 理解是最好的记忆方法 之 CSS中a链接的④个伪类为何有顺序

    理解是最好的记忆方法 之 CSS中a链接的④个伪类为何有顺序 在CSS中,a标签有4种伪类,分别为: a:link, a:visited, a:hover, a:active 对其稍有了解的前端er都 ...

  2. CSS躬行记(2)——伪类和伪元素

    一.伪类选择器 伪选择器弥补了常规选择器的不足,能够实现一些特殊情况下的样式,例如在鼠标悬停时或只给字符串中的第一个字符指定样式.与类选择器类似,可以从HTML元素的class属性中查看到,但伪选择器 ...

  3. CSS样式学习-3、轮廓、伪类/元素、display-flex布局

    一.轮廓 outline绘制于元素周围的一条线,位于边框边缘外围. 属性规定元素轮廓的样式.颜色.宽度. outline-width轮廓宽度,属性:thin细轮廓.medium中等(默认值).thic ...

  4. CSS 高级:尺寸、分类、伪类、伪元素

    CSS 尺寸:允许你控制元素的高度和宽度.同样,还允许你增加行间距. CSS 分类:允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的 ...

  5. CSS 选择器之基本选择器 属性选择器 伪类选择器

    CSS 选择器 常见的选择器列表图 CSS选择器笔记 基本选择器 通配符选择器(*) 元素选择器(E) 类选择器(.className)    所有浏览器都支持类选择器,但多类选择器(.classNa ...

  6. CSS链接四种状态注意顺序、UI伪类选择器的顺序

    css定义超链接是要有先后顺序的.否则,可能会出现某个或某几个样式不起作用的bug.例如:visited与hover顺序颠倒了,则不能显示hover和active的样式了. 正确的顺序: a:link ...

  7. CSS入门(定位之浮动定位、伪类之鼠标悬停、光标修改和透明度修改和列表样式)

    一.定位 所为定位,实际上就是定义元素框相对于其正常位置,应该出现在哪儿 定位就是改变元素在页面上的默认位置 分类: 普通流定位(元素默认的定位方式) 浮动定位 相对定位 绝对定位 固定定位 1.普通 ...

  8. css宽度+字体+颜色+边框+文本+光标+伪类选择器

    常用属性: width:宽 height:高 min-width:最小宽度 :可以设置如果宽度变小了,有个滑动效果(常常在我们布局的过程中需要去设置) min-height;最小高度 max-widt ...

  9. CSS 属性 :before && :after的用法,伪类和伪元素的区别

    一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...

随机推荐

  1. git merge rebase的区别及应用场景

    前两天和同事交流发现他在日常开发中跟上游保持同步每次都是用git pull操作,而我一直习惯git fetch然后rebase,发现这两种操作后的log是有些区别的.他每次pull操作之后都会自动生成 ...

  2. SDUTOJ 2775 小P的故事——奇妙的饭卡

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUl9NaXNheWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  3. Python技术公众号100天了

    公众号100天了,是个值得一提的日子! 我从2017年10月31日开始做这个公众号,到今天2018年2月7日,差不多100天时间 .虽然公众号很早就申请了,但直到去年10月31日,我才有真正把这个公众 ...

  4. MTU的概念,什么是路径MTU? MTU发现机制,TraceRoute(了解)

    1.MTU的概念      MTU即Maximum Transmission Unit 最大传输单元.它是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位). 2.路径MTU     ...

  5. 趣味 console.log

    第三方趣味console,比我的强太多了,使用这个吧: https://github.com/yy0608/console 我的console效果图: ;(function (global, fact ...

  6. 自己动手开发更好用的markdown编辑器-04(实时预览)

    这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/04/25/hexomd-04/   程序打包   文章目录 1. 打开新窗口 ...

  7. 单页应用seo收录神器 -- seo-mask

    前言 看到标题的人肯定会问,seo-mask是什么,为什么可以解决单页应用seo无法被收录的难题呢? 简单来讲seo-mask做的就是为已经发布线上运营的的单页应用项目建立另一个简单的利于seo的镜像 ...

  8. CSS3 :nth-child()伪类选择器

    CSS3 :nth-child()伪类选择器 CSS3的强大,让人惊叹,人们在惊喜之余,又不得不为其艰难的道路感到可惜:好 的标准只有得到行业浏览器的良好支持才算得上“标准”.CSS3标 准已提出数年 ...

  9. jquery的val()

    jQuery 属性操作 - val() 方法 jQuery 属性操作参考手册 实例 设置输入域的值: $("button").click(function(){ $(": ...

  10. C++获取二维数组的元素个数

    C/C++获取二维数组的大小/长度/元素个数 ][]; ]) /