理解是最好的记忆方法 之 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控制,源码中看 ...
随机推荐
- MAC系统下配置环境变量
环境变量初始值 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 使用export 可以设置暂时的环境变量 如果要追加PATH的话添加新的变量到文件中expor ...
- 【linux】linux下运行java程序
参考了http://www.cnblogs.com/howard-queen/archive/2012/01/30/2331795.html 第一步:用vim先写一个java程序 first.jav ...
- eclipse 中添加工程 Some projects cannot be imported because they already exist in the workspace
第一次从外部文件导入HelloWorld工程到workspace目录中,成功. 删除后,再次从外部导入workspace目录提示 Some projects cannot be imported be ...
- Android Service 与 IntentService
Service 中的耗时操作必须 在 Thread中进行: IntentService 则直接在 onHandleIntent()方法中进行
- Linux 压缩系列常用命令
tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...
- mysql的存储过程
mysql5中开始引入存储过程,存储过程是一组为了完成特定功能的sql语句集,经编译后存储在数据库中. 存储过程的特点(优点): 1:减小网络通信量.调用一个行数不多的存储过程与直接高用SQL语名的网 ...
- Eclipse 控制console
http://blog.csdn.net/leidengyan/article/details/5686691
- ASP.NET Web Api 使用CacheCow和ETag缓存资源(转载)
转载地址:http://www.cnblogs.com/fzrain/p/3618887.html 前言 本文将使用一个开源框架CacheCow来实现针对Http请求资源缓存,本文主要介绍服务器端的缓 ...
- windows消息机制(MFC)
消息分类与消息队列 Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型, 而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据 ...
- MVP社区巡讲照片集
今天MVP社区巡讲在北京利星行微软大厦连同SQL PASS社区合办了一次线下活动,这次互动汇集了在北京大多数的微软MVP,他们都是微软认可的有着各微软产品和技术特长的技术专家,无论是MVP社区巡讲还是 ...