CSS样式表中a:link,a:visited,a:hover,a:active属性

CSS样式表中a:link,a:visited,a:hover,a:active属性含义 a:link,a:visited,a:hover,a:active 分别是什么意思,有什么用途
明了的:
 link:连接平常的状态   
   active:连接被按下的时候   
   visited:连接被访问过之后   
   hover:鼠标放到连接上的时候
详细的: 
:hover版本:CSS1/CSS2     兼容性:IE4+    NS4+   
   语法:     
   Selector    :    hover    {    sRules    }     
   说明:     
   设置对象在其鼠标悬停时的样式表属性。     
   在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作用。在CSS2中此伪类可以应用于任何对象。     
   目前IE5.5+仅支持CSS1中的:hover。    
 
   :active版本:CSS1/CSS2     兼容性:IE4+   
   语法:     
   Selector    :    active    {    sRules    }     
   说明:     
   设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式表属性。     
   在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作用。在CSS2中此伪类可以应用于任何对象。并且:active状态可以和:link以及:visited状态同时发生。     
   目前IE5.5+仅支持CSS1中的:active。     
 
   :link版本:CSS1     兼容性:IE4+    NS4+   
   语法:     
   Selector    :    link    {    sRules    }     
   说明:     
   设置a对象在未被访问前的样式表属性。     
   IE3将:link伪类的样式表属性作用于visited伪类。     
   默认值由浏览器决定。     
   对于无href属性(特性)的a对象,此伪类不发生作用。   
 
   :visited版本:CSS1     兼容性:IE4+    NS4+   
   语法:     
   Selector    :    visited    {    sRules    }     
   说明:     
   设置a对象在其链接地址已被访问过时的样式表属性。     
   IE3将:link伪类的样式表属性作用于visited伪类。     
   默认值由浏览器决定。定义网页过期时间或用户清空历史记录将影响此伪类的作用。     
   对于无href属性(特性)的a对象,此伪类不发生作用。

在CSS中定义A:active/A:link/A:visited/A:hover顺序
以前用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 . 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值