• hover样式失效的解决方法


         提到 css 的hover 选择器,想必大家都不陌生(:hover 用于设置鼠标指向某元素上后显示的样式)

       除了常用的 hover 选择器,还有3个可以和它搭配使用的选择器:

      :link 设置未被访问页面的链接

      :visited 用于设置已被访问的页面链接

      :active 用于活动链接

      一般 hover 某元素后,应该会显示设置的样式,如下面的"点我"。鼠标指上去后会显示设置的样式,这里为字体变成红色

      

      问题:最近遇到一个问题,hover 以后的样式怎么都不生效,代码如下

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                a:hover {
                    color: red;
                }
                a:link {
                    color: #000;
                }
                
                a:visited {
                    color: #ccc;
                }
                
                a:active {
                    color: blue;
                }
                
                a {
                    font-size: 30px;
                }
            </style>
        </head>
    
        <body>
            <a href="#">点我</a>
        </body>
    
    </html>

      开始我以为是代码写错了,仔细检查后,发现代码并没有错,这令我十分费解

      后来无意中在w3c找到了答案,以前完全没有注意的一句话:

      注:在 CSS 定义中,:hover 必须位于 :link 和 :visited 之后(如果存在的话),这样样式才能生效

      这时候在看我上面的代码,hover 写在 link 和 visited 的前面,此刻茅塞顿开,修改后的代码如下  

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                a:link {
                    color: #000;
                }
                a:visited {
                    color:#ccc ;
                }
                a:hover {
                    color: red;
                }
                a:active {
                    color: blue;
                }
            </style>
        </head>
        <body>
            <!--被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)-->
            <a href="#">点我</a>
        </body>
    </html>

      

  • 相关阅读:
    HTTP 错误 404.2
    SQL Server 2008 R2如何开启数据库的远程连接(转)
    CSS中font-family:中文字体对应的英文名称
    15/18位身份证号码正则表达式(详细版)
    C#获取系统时间及时间格式
    C#正则表达式判断输入日期格式是否正确
    Linux查看机器负载
    模拟HTTP请求超时时间设置
    MySQL show命令的用法
    innodb事务隔离级别
  • 原文地址:https://www.cnblogs.com/tu-0718/p/10029773.html
Copyright © 2020-2023  润新知