以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面。出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确。
给出我试的顺序,可能会对大家有一些帮助:
代码
A:link{
color:#000000;
TEXT-DECORATION:none
}
A:visited{
COLOR:#000000;
TEXT-DECORATION:none
}
A:hover{
COLOR:#ff7f24;
text-decoration:underline;
}
A:active{
COLOR:#ff7f24;
text-decoration:underline;
}
今天看到一位匿名朋友的问题,又去查了一些资料,这个人讲的非常透彻:引自灵眸●第一炉沉香博客
a :link、a:hover、a:visited这几个元素,定义CSS时候的顺序不同,也会直接导致链接显示的效果不同。
我想,原因就在于浏览器解释CSS时遵循的“就近原则”。
举例来说:
我想让未访问链接颜色为蓝色,活动链接为绿色,已访问链接为红色:
- 第一种情况:我定义的顺序是a:visited、a:hover、a:link,这时会发现:把鼠标放到未访问过的蓝色链接上时,它并不变成绿色,只有放在已访问的红色链接上,链接才会变绿。
- 第二种情况:我把CSS定义顺序调整为:a:link、a:visited、a:hover,这时,无论你鼠标经过的链接有没有被访问过,它都会变成绿色啦。
这是因为,一个鼠标经过的未访问链接同时拥有a:link、a:hover两种属性,在第一种情况下,a:link离它最近,所以它优先满足a:link,而放弃a:hover的重复定义。
在第二种情况,无论链接有没有被访问过,它首先要检查是否符合a:hover的标准(即是否有鼠标经过它),满足,则变成绿色,不满足,则继续向上查找,一直找到满足条件的定义为止。
一句话:在CSS中,如果对于相同元素有针对不同条件的定义,宜将最一般的条件放在最上面,并依次向下,保证最下面的是最特殊的条件。
这样,浏览器在显示元素时,才会从特殊到一般、逐级向上验证条件,才会使你的每一个CSS语句都起到效果。
当然,如果故意打乱顺序,也会造成一些特殊的效果。比如,可以为链接制造出下划线颜色与文字颜色的差异。
近日突然发现,原来这个CSS问题早已有高人提出啦。还是个老外呢。他给总结了一个便于记忆的“爱恨原则”(LoVe/HAte),即四种伪类的首字母:LVHA。
再重复一遍正确的顺序:a:link、a:visited、a:hover、a:active.
分享到:
相关推荐
a标签样式 一组专门的预定义的类称为伪类,主要用来处理超链接的状态。超链接文字的状态可以通过伪类选择符+样式规则来控制。伪类选择符包括: 总: a 表示所有状态下的连接 如 .mycls a{color:red} ① a:link:...
a标签样式 和 a标签属性 .docx
a标签连接样式表 a标签样式 是页面变得随心所欲
JQuery 控制动态A标签输出内容样式
主要介绍了vue 动态修改a标签的样式的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
表示所有状态下的连接 如 a{color:red} ① a:link:未访问链接 ,如 a:link {color:blue} ② a:visited:已访问链接 ,如 a:visited{color:blue} ③ a:active:激活时(链接获得焦点时)链接的颜色 ,如a:active{...
因为我们要定义链接样式,所以其中必不可少的就是超级链接中的锚标签–a,锚标签和伪类链接起来书写的方法就是定义链接样式的基础方法,它们的写法如下: 复制代码代码如下: a:link,定义正常链接的样式; a:...
html标签样式重置reset.css文件,取消标签原来特殊样式方便自定义,例如a标签下划线,span标签前面的小圆点,清除浮动解决塌陷的兼容样式
HTML5网页让所有的浏览器都能识别标签样式
NULL 博文链接:https://tzwzero-163-com.iteye.com/blog/1136912
a标记显示样式
用在线编辑器或许都会存在一个问题,即内容发表后呈现的...自定义的样式往往和浏览器默认的样式不同,具体的差异主要表现在body 的字体、p 的间距、a 链接的样式、列表项ul ol li 的样式以及h1 – h6 标题的样式上。
在使用a标签的时候,会出现无法继承父元素样式的情况。 例如: div{ width: 300px; height: 100px; border: 1px solid pink; color: orange; text-align: center; } 我是p元素 我是a元素 效果图: p元素...
比方说index.html页面的时候,会在index导航的a标签一个.active样式,然后第二个Posts.html页面的时候会在Posts导航的a标签一个.active样式。这个虽然效果实现了,但是有个很大的缺点 – 导航不能调用一个,每个页面...
a标签中有四个: link、visited、hover、active 未移入a标签链接时:link 移入a标签链接时:link、hover 点击a标签链接时:link、hober、active 点击后未移入a标签连接时:link、visited 点击后移入a标签连接...
删除标签样式: var striphtml = require('js-striphtml'); striphtml.striptags('<body>I am a <b>HTML</b> string.<div class=clear></div></body>', [ 'b' ]); // Returns I am a <b>...
实现效果:循环为带有ml-praise样式类的a标签添加事件,并且在点击a标签后,相应的数量增加1。 Html结构如下所示: <li><a>数量:<span class=ding-num>100</span></a> <li><a>数量:<span class=ding-num>200...