在CSS中定义a:link、a:visited、a:hover、a:active顺序
来源:互联网 发布:java双引号转义字符 编辑:程序博客网 时间:2024/05/06 18:11
转载自: http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/09/06/1819624.html
以前用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时遵循的“就近原则”。
举例来说:
我想让未访问链接颜色为蓝色,活动链接为绿色,已访问链接为红色:
我想,原因就在于浏览器解释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 .
- 在CSS中定义A:active/A:link/A:visited/A:hover顺序【zz】
- 在CSS中定义A:link/A:visited/A:hover/A:active顺序(LVHA)
- 在CSS中定义A:active/A:link/A:visited/A:hover顺序
- 在CSS中定义A:active/A:link/A:visited/A:hover顺序- 费吉德-
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
- 在CSS中定义a:link、a:visited、a:hover、a:active正确顺序
- CSS中定义a:link、a:visited、a:hover、a:active顺序问题探讨【经验】
- (经验)在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序
- CSS中a标签样式原则 a:link a:visited a:hover a:active执行顺序
- 悟透JavaScript之初看原型 --- (2)
- 【hdu】 find the most comfortable road (并查集)
- 悟透JavaScript之初看原型 --- (3)
- 我本将心对明月
- C#中的多线程使用 -- Thread 类: 使用回调函数从一个线程中检索数据
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
- Linux+Nginx+Php架设高性能WEB服务器
- IIS
- native修饰符
- 链表中倒数第k个结点
- Linux shell的sar工具
- 【汇编】 汇编程序设计中的英文缩写
- VMware环境下,在RHEL5上安装oracle10g图文版
- 基础备忘:带参数的main 函数