理解是最好的记忆方法 之 CSS中a链接的④个伪类为何有顺序
理解是最好的记忆方法 之 CSS中a链接的④个伪类为何有顺序
在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之后,hover和a:active之前,它的位置,只能在第二位了。
以上便是我们分析出的lvha顺序的由来。
笔者希望通过这简短的文章,能让一些死记硬背的前端er理解,为什么要按照lvha顺序来写样式。因为在笔者的认知里,理解是最好的记忆方法。
转自http://www.cnblogs.com/KilerMino/archive/2016/11/21/6086940.html
理解是最好的记忆方法 之 CSS中a链接的④个伪类为何有顺序的更多相关文章
- 理解是最好的记忆方法 之 CSS中a链接的4个伪类为何有顺序
在CSS中,a标签有4种伪类,分别为: a:link, a:visited, a:hover, a:active 对其稍有了解的前端er都知道,4个伪类是有固定顺序的(LVHA),否则很容易出现预期之 ...
- (4)《Head First HTML与CSS》学习笔记---文本的CSS规则和盒模型;div与span;<a>元素的链接色;伪类
1.每个font-family包含一组共同特征的字体.共五个字体系列: sans-serif----这个系列包括了没有衬线的字体,与serif相比,通常认为这个系列更容易在计算机上识读. serif- ...
- css中class后面跟两个类,这两个类用空格隔开
css中class后面跟两个类,这两个类用空格隔开,那么这两个类对这个元素都起作用,如果产生冲突,那么后面的类将替代前面的类.
- 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- CSS基础知识(颜色、伪类、盒子模型)
6.设置颜色单位 L 普通英文单词 {color : 属性值red;} 此方法简单,便捷.但设置的颜色在不同浏览器中,可能显示的颜色出现差异 * 三原色 - 红.绿.蓝 L 颜色的八进制方式 ...
- CSS魔法堂:稍稍深入伪类选择器
前言 过去零零星星地了解和使用:link.::after和content等伪类.伪元素选择器,最近看书时发现这方面有所欠缺,于是决定稍微深入学习一下,以下为伪类部分的整理. 伪类 伪类选择器实质上 ...
- CSS快速入门-鼠标悬浮(hover伪类)
一.概述 hover伪类:在鼠标移到元素上时向此元素添加特殊的样式.比较普通的就是一个url,当你鼠标放上去后,会变颜色. 在现实的应用场景也非常之多.最常见的是网站的悬浮导航,当鼠标放到导航条上时, ...
- CSS链接四种状态注意顺序、UI伪类选择器的顺序
css定义超链接是要有先后顺序的.否则,可能会出现某个或某几个样式不起作用的bug.例如:visited与hover顺序颠倒了,则不能显示hover和active的样式了. 正确的顺序: a:link ...
- CSS中的before和:after伪元素深入理解
1.定义: “伪元素”,顾名思义.就是它创建了一个虚假的元素,并且将其虚假的元素插入到目标元素的内容之前或之后. 2:特点: a.它在实际文档中不改变什么,但是对用户可见,可以通过css控制,源码中看 ...
随机推荐
- 【转】CV_EXPORT定义的作用,lib及dll的区别
http://blog.csdn.net/viewcode/article/details/8021989 在core.hpp中,CV_EXPORT是出现频率最高的词之一. 1. CV_EXPORT是 ...
- 【linux】ps
来源:http://blog.chinaunix.net/uid-25681671-id-3201927.html Linux下PS命令详解 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情 ...
- IOS-CoreAnimation
核心动画 •Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! •使用它需要先添加QuartzCore.framework和引入对应的框架 ...
- weblogic无需用户名密码启动Server
创建了Server-0. 但每次启动需要手工输入管理账户和密码. 并不方便. 现在要让它自动输入并启动.一. 新建security文件夹 # cd $WEBLOGIC_HOME/servers/Ser ...
- Mysql控制语句
14.6.5.1 CASE Syntax 14.6.5.2 IF Syntax 14.6.5.3 ITERATE Syntax 14.6.5.4 LEAVE Syntax 14.6.5.5 LOOP ...
- 瞧一瞧迷一般的SQLDA
With static SQL, host variables used in embedded SQL statements are known at application compile tim ...
- REORG TABLESPACE on z/os
这个困扰了我两天的问题终于解决了,在运行这个job时:总是提示 A REQUIRED DD CARD OR TEMPLATE IS MISSING NAME=SYSDISC A REQUIRED DD ...
- NotePad ++的妙用:添加代码行数和格式不变复制代码
NotePad ++ 不仅安装包小而且功能强大,可以支持很多语言.这里简单阐述下两个功能: 一.在代码前添加行数: 1.用NotePad ++打开一个文件,一般NotePad ++会自动识别这是什么语 ...
- EditPlus
# 批量更改文件编码 原文:EditPlus批量更改文件编码 # 标签位置设置到顶部 工具-参数设置-布局-文档选择器-位置
- ASP.NET MVC中Controller返回值类型ActionResult
1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.c ...